โปรแกรม R และหลายเหตุผลคูลๆที่คุณอยากลอง

Standard

ถ้าคุณเป็นคนหนึ่งที่คิดว่าการเขียนโปรแกรม มันคูล (และรู้ตัวว่ากากมาก เรียนทำไหร่ก็ไม่เข้าใจแม่งซักที และโค้ดคือไม่ใช่เพื่อนเรา) และคุณรู้สึกว่าอีโปรแกรมที่ใช้อยู่ทุกวันนี้บางทีมีข้อจำกัดที่หลายๆครั้งอาจจะมีทางเลือกที่ดีกว่า แต่คุณไม่รู้จะเริ่มจากอะไร  เราขอแนะนำให้คุณรู้จัก R Programming

r.jpg

R เป็น programming language ที่ค่อนข้างมาแรง ณ เวลานี้ ส่วนนึงเพราะว่า trend data analytics มาแรงมากๆ (เพราะนางเริ่มต้นจากการเป็นโปรแกรมแสตต) รวมถึง big data และอีกส่วนเพราะมันง่ายมาก (เชื่อเราเหอะ เราเขียนอะไรไม่ได้ซักอย่างแม้กระทั่ง html ง่าวๆๆ แต่เราเขียน r เบสิ๊ก เบสิกได้) แถมส่วนที่ดีที่สุดคือ มันฟรี และมันมี library ดีๆให้เลือกใช้ได้เกือบทุกอย่างที่ต้องการ

ความเก๋ของ R นอกจากความที่นู้ปอย่างเราจะสามารถเรียนได้ในเวลาไม่นานนัก คือมันมีพลังในการจัดการดาต้าได้อย่างเหลือเชื่อมหาศาล แทบจะเรียกได้ว่าครอบคลุมส่วนใหญ่ของการรันดาต้าทั้งหมดแล้ว (แต่นั่นแหละเจ้าของบล็อกก็ชอบ excel มากกว่า เพราะมันขี้เกียจ)

ซึ่งการใช้ R เนี่ย ส่วนใหญ่จะใช้ผ่าน R Studio (อารมณ์เหมือน r คือ html และ เราเขียนผ่าน dreamweaver อะไรประมาณนี้)  เอาเป็นว่าถ้าอยากลองเล่นก็โหลดมันสองอันแล้วก็เปิดแต่ R Studio เอาไว้ทำงานพอ

อันนี้คือสรุปมาให้คร่าวๆ ว่า R / R studio ทำอะไรได้บ้าง ทั้งหมดนี้คือเราเคยลองแตะๆ บางอันก็เยอะ บางอันก็แตะจริงๆ แต่ทุกอันล้วนมีคำตอบใน Google ทั้งนั้น what-r-can-do.JPG

  • Data Import ที่สุดของการดึงดาต้า เราว่ามันเก๋มากตรงต่อ API ไปหาอะไรก็ได้ ต่างกับพวก Tableau หรือ Excel ที่จะมีเซทแห่งความปอปปูล่าร์มาให้ (และก็ไม่มี GA / Google Analytics สุดที่รักของช้านนนน)
  • Data Manipulation ด้วยความที่โปรแกรมมันเป็นโปรแกรมแสตตมาก่อนอ่ะนะ เวลาจัดการดึง ฟิลเตอร์ หรือรวมอะไรอย่างงี้ มันเลยค่อนข้างโอเคเลยทีเดียว (โอเค แต่ Pivot Table ใน Excel ก็ง่ายกว่าอยู่ดี)
  • Modelling เช่นเดียวกัน เพราะเป็นแสตต จึงมีความสามารถในการรันโมเดลมากมาย เช่น regression ที่รันได้ด้วย การพิมพ์อักษรบรรทัดเดียว (ง่ายปะละ) หรือแพคเกจที่เริ่มไปทาง machine learning หน่อยๆ เช่นพวก decision tree หรือ text analytics (ภาษาอังกฤษอ่ะนะ) ก็มีหมดแล้ว และข้อดีสุดๆคืออีพวกนี้หาเรียนได้ฟรี ใน EdX
  • Data Visualization โอ้ย ประมาณหมื่นล้านคนในโลก จริงๆแล้วต้องการดาต้าไม่ได้ต้องการรันโมเดลบ้าบออะไรหรอก แค่ต้องการกราฟง่ายๆ หรือแดชบอร์ดสวยๆเอาไว้ดู และจะได้เอาไปทำงานต่อได้ ซึ่ง การทำ visualization มันน่ารำคาญมากแรกๆ แต่มันค่อนข้าง customize ทำได้ประมาณแปดหมื่นอย่าง ที่อย่างอื่นทำไม่ได้ และที่โหดกว่านั้น คือสามารถเอาไปทำเป็น interactive dashboard ได้ด้วยโค้ดสามสี่บรรทัด ซึ่งประเสริฐมากมาย (แต่นั่นแหละ ด้วยตัวมันเองก็ยังแพ้ Tableau อยู่ แต่ถ้าไปรวมตั้งแต่ข้อแรกมาแล้ว R ก็คือช้อยส์ที่ดีมากถ้าอยากทำ)

แถมขำๆ อันนี้เป็นโปรเจคที่ทำส่งอาจารย์ (ก็ไม่ขำหรอก) แต่ถ้าเอามันไปต่อมันก็พาวเวอร์ฟูลมากๆ ใครสนใจลองหลังไมค์มาได้นะครัชชช

dashboard-from-r.JPG

https://smu-visual-proj.shinyapps.io/e-commerce/

 

 

 

 

 

 

ทำกราฟยังไงให้อ่านง่าย

Standard

ขอออกตัวก่อนว่ามีการบ้านต้องหาข้อมูล นี่คืออู้มาก แต่ว่าไม่ไหวแล้ว ต้องการการระบาย  คือตอนทำการบ้านเราก็จะต้องไปหาข้อมูลจากหลายๆที่ เช่น Consumer BarometereMarketer ซึ่งสิ่งที่เกิดขึ้นคือ เจอกราฟแบบที่มันน่าจะทำให้เล่าเรื่องได้ดีขึ้น หรือสื่อความหมายได้ดีขึ้น เพราะแบบเราเกลียดตาราง เกลียดเลขมาก ยิ่งทำงานไม่ทันแล้วเจองี้ สิ่งที่ทำคือ นั่งพล๊อตใหม่เลยจ้า จะได้อ่านง่าย

1. ถ้าจะเอาข้อมูลใส่ตารางดื้อๆ ช่วยกรุณา conditional format  อันนี้เอาไว้อ่านเองก็ดี เอาไว้ใส่พรีเซ้นก็ได้ (แต่ต้องดูให้มันไม่เลอะเทอะวุ่นวายนะ) ส่วนใหญ่เราจะชอบใช้สำหรับอ่านดาต้าให้เห็นภาพคร่าวก่อนๆ เพียงสามคลิ๊กเท่านั้น เลือกดาต้า แล้วก็เข้าไปกดใน excel ได้เลย เห็นมะ ภาพมาชัดเลยจ้าาาา

conditional_format.JPG(ข้อมูล Digital Consumer Index จาก Passport)

ข้อระวังของอันนี้มีแค่อันเดียว คือ ถ้าเราจะเลือกให้มันไฮไลท์เป็นแถวๆไป เราต้องค่อยๆทำทีละอัน (ไม่งั้นก็ record macro) แต่นั่นแหละ ถ้าลากทั้งแผงมันจะไปหมดเลย อาจจะไม่เห็นเทรนด์ได้เท่าที่ควร

2. หรือถ้าคิดไม่ออกจริงๆก็ Line Chart สำหรับข้อมูลที่เป็น time series และ Bar Chart สำหรับข้อมูลที่ไม่มีความเชื่อต่อ

line.JPG

แค่คลิกสองจึ๊ก LineGraph แบบสิ้นขึ้นก็ปรากฏ และเห็นภาพ เห็น trend ชัดกกว่าตารางด้านซ้ายอย่างชัดเจน ดังนั้น ก็ทำกราฟเถอะนะ สงสารมาร์เกทติ้งหน่อย เราไม่เก่งเลข ทำมาเป็นรูปให้เรานะๆ

อีกอันคือ กราบเลยนะ ขอร้องว่า ถ้าข้อมูลไม่ใช่ต่อเนื่องกัน (เช่น ไม่ใช่ตามเวลา) กรุณาอย่าใช้ Line Graph ให้เลี่ยงไปใช้ Bar แทน เช่น เพศชายกะเพศหญิง คือมึงไม่ได้มีอะไรตรงกลาง มึงจะเป็นเส้นเชื่อมกันไม่ได้!! ตรงกลางมึงคือกระเทยหรอออ!!!

noline.JPG

3. TreeMap กราฟที่ชาวบ้านไม่เคยได้ยิน แต่นางก็ใช้ง่ายอยู่ (และมีใน excel ด้วย)

ขอยกตัวอย่างละกัน ตอนนี้ทำงานเกี่ยวกับอาเซียน (เอ๊ะ มันเปิดยังวะ) อย่างเรื่อง Population เราลองพล็อตด้วยกราฟที่เค้าเรียกกันว่า TreeMap ซึ่งทางเทคนิคแล้ว เค้าเอาไว้พล็อตข้อมูลที่มี Hierarchical เยอะๆเช่น ระดับทวีป > ประเทศ > จังหวัด งี้.. แต่เรานู้ป 555 เอามาพล๊อตธรรมด๊าธรรมดานี่แหละ  เราว่ามันแสดงความแบ่งส่วนๆ Part-whole relationship ได้ดีเหมือนกัน (แอบดีกว่า Pie Chart) และเห็นภาพง่ายสุดดดดด ลองไปเล่นกันดูนะคะ

treemap.JPG

TreeMap จาก Excel

4. ถ้าคุณจะต้องมี Bar หลายอัน จากคำตอบข้อเดียวกัน และรวมกันได้ 100% กรุณาใช้ stacked bar นะคะ (อันนี้ Excel ก็มี)

โลกนี้ก็มีสิ่งประดิษฐ์ที่เรียกว่า stacked bar นะคะ ถ้ามันรวมกัน 100% โดยเฉพาะคำถาม SA (กรุณาเลือกคำตอบเดียว) และคำตอบมันเกี่ยวกัน เราว่ามันดีมากๆเลยถ้าจะรวมกันบน stacked bar อย่างตัวอย่างนี้ ที่เราดึงมาจาก Consumer Barometer โอ้ยดูทีคือ งง แล้วไงอ่ะ อันไหนเยอะกว่า แล้วเยอะกว่าน้อยกว่าไปไหน (ซ้ายมือ) โดยนางแยกให้เราเป็นสามกราฟ (อยากถามว่าแย่กเพื่อ) สิ่งที่ทำคือดาวน์โหลดแม่ง แล้วก็เอาไปทำกราฟใหม่ในเอ็กเซลเอามาโปะๆซะ และก็ค้นพบว่า มีหายไปเกือบ 20% ของ Philippines!!!!  และเห็นภาพชัดขึ้นว่า อ๋อ ที่คนสิงกาโปหายไปจากสมารทโฟน คือนางใช้สองอย่างพอๆกันนะ แค่ฟิลิปปินนี่ นางหายไปคอมพิวเตอร์และหายไปไหนไม่รู้เยอะกว่า

4.1 Stacked bar 2 ชั้นป่ะล่ะนาย

stackedbr.JPG

จากดาต้าข้อแรกอ่ะ คือเราก็อยากทำกราฟ ทีนี้เรารู้ว่ามันรวมกันได้เท่าไหร่ แต่มันมี ปัจจุบันกับอนาคต เลยลองทำโดยการ stack นี่แหละ และโปะมันลงไปสองชั้น (อันนี้ใช้ excel แปะทับโง่ๆเลย) โอเคยอมรับว่ามันแอบงง แต่ก็เป็นไอเดียเผื่อใครเจอดาต้าที่ต้องมองสองสามมุม

5. Scatter Plot

อันนี้เป็นอันที่เราไม่ค่อยใช้เท่าไหร่ ยอมรับเลย มันใช้กับ สองค่าที่เป็นเลข แต่ก็เอามาประยุกต์ได้ (อันนี้เราใช้ Tableau) ข้อดีของ tableau ที่ excel ทำให้เราไม่ได้ คือนางใส่ขนาดของ bubble ได้ด้วย ทำให้เราสามารถเห็นความยิ่งใหญ่ได้ อันนี้ก็พลอตสวยๆแหละเทอ ไม่ได้อะไรมาก แค่ก็ดูง่ายกว่าเลขๆ (ย้ำอีกรอบ เราเป็นมาเกทเต้ออ่อนเลขที่เสือกเรียนโทใช้เลข ฮืออ)

scatter

Hope this helps!!