[DA Series] ทำไมต้องทำความเข้าใจข้อมูลก่อนวิเคราะห์ ?
แน่นอนว่ามีข้อมูลก็อยากเอามาใช้ประโยชน์ แต่ก็ใช่ว่าข้อมูลทุกชุดจะพร้อมเอามาใช้งานตั้งแต่ต้น การทำความเข้าใจข้อมูล (Data Understanding) และ การเตรียมข้อมูลให้สะอาด (Data Cleansing) จึงเป็นส่วนต้น ๆ ที่สำคัญไม่น้อยไปกว่าส่วนอื่น ๆ
เพราะการเตรียมข้อมูลมีต้นทุนมหาศาล
ทั้งต้นทุนจากการที่ต้องใช้เวลาในการเตรียมข้อมูล รวมไปถึงต้นทุนที่อาจเกิดขึ้นจากการเตรียมข้อมูลที่ผิดพลาดด้วย
บางคนอาจนึกภาพไม่ออก ลองดูตัวอย่างข้อมูลต่อไปนี้กันครับ
นายกาเหว่า เป็น Data Analyst คนใหม่ในบริษัทขายส่งอาหารแห่งหนึ่ง ในวันที่ 5 ของการทำงาน กาเหว่าได้รับไฟล์ยอดขายอาหารจากหัวหน้างาน พร้อมกับข้อความว่า “ช่วยสรุปข้อมูลตัวนี้ส่งผู้บริหารประกอบการประชุมในอีก 30 นาที”
- ยอดขายรวมรายสินค้า
- เป้าหมายรายสินค้า
- รวมยอดขายและเป้าหมายทุกสินค้า
ถ้าเจอเหตุการณ์แบบนี้ ควรทำอย่างไร
ก. แกล้งตาย
ข. บอกหัวหน้าว่าทำไม่ทัน
ค. เปิด LinkedIn หางานใหม่
ง. ถูกทุกข้อ
แน่นอนเราจะไม่เลือกทางเลือกด้านบนแน่นอน แต่ใน Multiverse เราเจอ 2 เส้นเวลาที่แตกแขนงกันไป
เส้นเวลาแรก กาเหว่าเห็นว่าเป็นงานรีบ และสิ่งที่เจ้านายขอก็ไม่ใช่เรื่องยาก จับรวมมันไปก็สิ้นเรื่อง ในเมื่อเป็นยอดขาย กับเป้าหมายอยู่แล้ว กาเหว่าจึงส่งข้อมูลให้หัวหน้าตามนี้
ยอดขายรวมรายสินค้า = SUM(Sales) Group by Product
เป้าหมายรายสินค้า = SUM(Target) Group by Product
รวมยอดขายทุกสินค้า = SUM(Sales)
รวมเป้าหมายทุกสินค้า =SUM(Target)
หลังจากผู้บริหารได้เห็นข้อมูลนี้ก็ตัดสินใจที่จะเลิกกิจการ เพราะยอดขายห่างไกลจากเป้าหมายไปมาก และไม่สามารถโฟกัสไปที่สินค้าใด ๆ ได้เลย
(มองเป็นเรื่องขำ ๆ ไปนะ ชีวิตจริงมันคงไม่มีแบบนี้ 555)
อีกเส้นเวลาหนึ่ง นายกาเหว่าครุ่นคิดพิจารณาถึงตัวข้อมูล ก่อนที่จะเห็นจุดผิดสังเกต จึงนำไปสอบถามกับพี่ในแผนก
อ๋อ ตัวเลขยอดขายเรารวมกันได้เลย เพราะ 1 Row แทนยอดขาย 1 Transaction แต่ตัวเลข Target ที่นี่จะเก็บแบบประหลาดหน่อย คือจริง ๆ แล้ว 1 Product จะมีเลข Target ค่าเดียว อย่างนม (Milk) จริง ๆ Target มันอยู่ที่ 10 หน่วยหน่ะ
…. ใครสั่งใครสอนให้เก็บข้อมูลแบบนี้ กาเหว่าคงได้แต่คิดในใจเป็นหมื่นล้านคำ
เมื่อได้ข้อมูลจากพี่ในทีมแล้ว กาเหว่าจึงไปจัดการข้อมูลและส่งให้หัวหน้าตามนี้
ยอดขายรวมรายสินค้า = SUM(Sales) Group by Product
เป้าหมายรายสินค้า = AVERAGE(Target) Group by Product
รวมยอดขายทุกสินค้า = SUM(Sales)
รวมเป้าหมายทุกสินค้า =SUM(AVERAGE(Target) Group by Product)
ผู้บริหารเห็นข้อมูลแล้ว ทำให้ทราบว่าไส้กรอก (Sausage) สามารถขายได้ดี ในขณะที่นมอาจต้องไปหาเหตุผลต่อว่าทำไมยอดขายถึงลดลง
ข้อมูลเดียวกัน แต่ถ้าไม่เข้าใจข้อมูลนำไปใช้ผิด อาจส่งผลกระทบที่คาดไม่ถึง (ตัวอย่างก็สุดโต่งไปหน่อยแหละ)
มีจุดที่น่าสังเกตจากเรื่องนี้อยู่บ้างในการจัดการข้อมูล เพื่อให้ได้คำตอบที่ถูกตามที่ธุรกิจต้องการ
- ได้ข้อมูลมาแล้ว ควรต้องตรวจเช็คลักษณะของข้อมูลก่อนเป็นอันดับต้น ๆ รวมถึงพยายามคิดว่าเราจะนำข้อมูลนี้ไปใช้ได้เลยไหม ต้องจัดการอย่างไร
- ไม่แน่ใจในตัวข้อมูลพยายามอย่าเดาไปเอง ไปหาคนที่รู้ เพราะแต่ละบริษัทอาจมีรูปแบบในการเก็บข้อมูลที่ต่างกัน รวมไปถึงเหตุผลที่จำเป็นต้องเก็บข้อมูลในลักษณะนั้นด้วย
- ส่วนตัวคิดว่าการแก้ปัญหาข้อมูลแบบนี้ มี 2 ส่วนใหญ่ ๆ ที่ต้องฝึก หนึ่งคือ Logic (ตรรกะ) ดูให้ออกว่าจริง ๆ แล้วผลลัพธ์ที่เราต้องการเป็นแบบไหน และมีขั้นตอนยังไงให้ไปถึงผลลัพธ์นี้ได้บ้าง และสองคือ ความสามารถในการใช้โปรแกรม เพราะแต่ละโปรแกรมจะมีวิธีเตรียมข้อมูลให้ได้มาซึ่งผลลัพธ์ที่เราต้องการต่างกัน
- หลาย ๆ ครั้งวิธีการได้มาซึ่งคำตอบ (หรือ Logic นั่นแหละ) ไม่ได้มีวิธีเดียว และไม่ได้มีผิดหรือถูกซะทีเดียว มีแต่ว่าเหมาะสมกับสถานการณ์นั้น ๆ ไหม
สำหรับใครที่สนใจอยากลองดูแนวคิดเบื้องต้นสำหรับการเตรียมแบบนี้ข้อมูลผ่าน Power BI กดไปดูกันได้ที่ลิงก์นี้เลย
[Power BI] หาค่า Tatget ที่แท้จริงจากข้อมูลซ้ำ
อยากทิ้งท้ายไว้กับประเด็นที่อยากพูดถึงคือข้อ 3 เพราะหลาย ๆ คนมักจะเริ่มศึกษาด้านข้อมูลจากการเริ่มใช้โปรแกรมเลย ส่วนตัวแล้วมักเจอคนที่อยากเข้ามาถามว่าควรเรียน Python / Visualization Tools ก่อนไหม … ก็รู้สึกว่าเป็นคำถามที่ตอบยาก เพราะส่วนตัวแล้ว Tools มีไว้ช่วยอำนวยความสะดวกให้เราทำงานง่ายขึ้น แต่ถ้า Logic เราได้ ส่วนมากเราจะสามารถหาวิธีพลิกแพลงการใช้ Tools จนได้คำตอบที่เราต้องการได้เอง (แม้ว่าบาง Tools อาจต้องเพิ่ม Logic บางส่วน แต่ Main หลัก ๆ จะไม่ได้ต่างกันมากนัก) กลับกัน ใช้ Tools เก่งมาก แต่ไม่สามารถคิดขั้นตอนการเตรียมข้อมูลได้ ก็ต้องรอให้คนอื่นคิดวิธีให้แล้วเราทำตาม ก็ดูจะไม่ค่อยเวิร์คเท่าไร
แต่จากประสบการณ์ส่วนตัว คิดว่าก็เป็นเรื่องยากที่จะไปแนะนำว่า ไปเริ่มจากการศึกษา Logic ก่อนสิ เพราะก็รู้สึกว่ามีแหล่งศึกษา / ฝึกเรื่องนี้ไม่เยอะมาก ส่วนมากถ้าไม่ได้เจอจากการทำงาน ก็ยากที่จะหาใครสอนได้(ซึ่งโชคดีมากที่ช่วงที่ศึกษาเรื่องนี้ได้ทำงานเป็น Consult team ให้กับ Users โดยตรง ทำให้ซึมซับสกิลด้านนี้แบบไม่รู้ตัว)
ถ้าให้แนะนำด้วยประสบการณ์น้อยนิดตอนนี้ (ซึ่งในอนาคตอาจจะเปลี่ยนคำแนะนำ) การพยายามหาโจทย์จริง ๆ มาลองฝึกคิด ฝึกทำ ในขณะเดียวกันกับที่เรียนรู้ทักษะการใช้โปรแกรมเบื้องต้นด้วย น่าจะเป็นการฝึกสกิลด้าน Data ที่ดีไม่น้อย
(โดยส่วนตัวแนะนำให้ลองสิงตาม Community ต่าง ๆ แล้วลองดูคำถามที่มีคนถามมาแล้วลองคิดวิธีแก้ปัญหา / ลองทำโปรเจคตามคนอื่น ๆ น่าจะช่วยได้ไม่มากก็น้อย และดีกว่านั่งเรียนอย่างเดียวโดยไม่ได้ลองทำจริง)
สุดท้ายนี้ ใครที่มีไอเดียอยากให้แชร์เรื่องอะไรทิ้งกันไว้ในข้อความได้นะ เผื่อความรู้น้อย ๆ ที่มีจะมีประโยชน์บ้าง