วิธีแก้ปัญหาการวิเคราะห์ข้อมูล


10

ฉันเจอปัญหาต่อไปนี้แล้วซึ่งฉันพบว่าเป็นเรื่องปกติ

ฉันมีข้อมูลขนาดใหญ่พูดไม่กี่ล้านแถว ฉันเรียกใช้การวิเคราะห์ที่ไม่สำคัญกับมันเช่นแบบสอบถาม SQL ซึ่งประกอบด้วยแบบสอบถามย่อยหลายรายการ ฉันได้รับผลบางอย่างที่ระบุเช่นคุณสมบัติ X นั้นเพิ่มขึ้นเมื่อเวลาผ่านไป

ตอนนี้มีสองสิ่งที่เป็นไปได้ที่อาจนำไปสู่การที่:

  1. X เพิ่มขึ้นตามกาลเวลา
  2. ฉันมีข้อบกพร่องในการวิเคราะห์ของฉัน

ฉันจะทดสอบได้อย่างไรว่าสิ่งที่เกิดขึ้นครั้งแรกไม่ใช่ครั้งที่สอง? ตัวดีบักแบบชาญฉลาดแม้ว่าจะมีอยู่ก็ไม่สามารถช่วยได้เนื่องจากผลลัพธ์ระดับกลางยังคงประกอบด้วยบรรทัดหลายล้านบรรทัด

สิ่งเดียวที่ฉันคิดได้ก็คือสร้างชุดข้อมูลสังเคราะห์ขนาดเล็กที่มีคุณสมบัติที่ฉันต้องการทดสอบและเรียกใช้การวิเคราะห์เป็นชุดทดสอบ มีเครื่องมือในการทำเช่นนี้หรือไม่? โดยเฉพาะอย่างยิ่ง แต่ไม่ จำกัด เฉพาะ SQL


เป็นคำถามที่ดีมาก! ฉันคิดว่านี่เป็นปัญหาที่สำคัญและไม่สำคัญ
Ben

คำตอบ:


4

นี่คือข้อเสนอแนะ:

  • กำหนดรหัสการวิเคราะห์ของคุณในลักษณะที่สามารถทำงานกับตัวอย่างย่อยได้
  • โค้ดชุดคำสั่งเสริมซึ่งสามารถสุ่มตัวอย่างแบบสุ่มหรือตามเวลาหรือตามภูมิภาคหรือ ... นี่อาจเป็นเฉพาะโดเมน นี่คือที่ความรู้ของคุณเข้าสู่
  • รวมทั้งสองเข้าด้วยกันและดูว่าผลลัพธ์มีความเสถียรในชุดย่อยหรือไม่

นั่นไม่ได้หมายความว่าบั๊กของฉันเสถียรตลอดทั้งชุดย่อยหรือไม่
ตาราง Bobby น้อย

นั่นเป็นผลลัพธ์ที่เป็นไปได้ แต่คุณจะรู้เมื่อคุณลอง และถ้าเป็นเช่นนั้นคุณสามารถดีบักชุดข้อมูลที่เล็กลงได้
Dirk Eddelbuettel

1

นี่คือสิ่งที่ฉันทำตามปกติ - ใช้ตัวแปรที่สำคัญที่สุด (พื้นฐานความเข้าใจในธุรกิจของคุณและสมมติฐาน - คุณสามารถแก้ไขได้ในภายหลัง) จัดกลุ่มตามคุณลักษณะเหล่านี้เพื่อลดจำนวนแถวซึ่งสามารถนำเข้าสู่ Pivot ได้ คุณควรรวมผลรวมและจำนวนของตัวชี้วัดที่เกี่ยวข้องในแต่ละแถว

ตรวจสอบให้แน่ใจว่าคุณไม่ได้ใส่ตัวกรองใด ๆ ในขั้นตอนก่อนหน้า เมื่อคุณมีข้อมูลทั้งหมดในระดับสรุปคุณสามารถเล่นในตาราง Pivot และดูว่ามีอะไรเปลี่ยนแปลง / เพิ่มขึ้นหรือลดลง

หากข้อมูลมีขนาดใหญ่เกินไปที่จะสรุปแม้ในพารามิเตอร์ที่สำคัญคุณจะต้องแบ่งพาร์ติชันเป็น 3 - 4 ชุดย่อยจากนั้นทำเช่นนี้อีกครั้ง

หวังว่ามันจะช่วย


1

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

เมื่อมีการตรวจสอบการใช้งานคุณจะต้องตรวจสอบว่ามีความสัมพันธ์ที่สำคัญระหว่างตัวแปรที่คุณพยายามคาดการณ์ หากต้องการทำเช่นนั้นให้กำหนดสมมติฐานว่างและพยายามปฏิเสธสมมติฐานว่างด้วยระดับความเชื่อมั่นที่สำคัญ ( การทดสอบสมมติฐานสำหรับการถดถอยเชิงเส้น )

อาจมีกรอบการทดสอบหน่วยสำหรับการกระจาย SQL ของคุณ แต่การใช้ภาษาโปรแกรมอย่าง R จะง่ายกว่าในการนำไปใช้


1

ฉันชอบกลยุทธ์หลายขั้นตอน:

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

  2. แยกย่อยรหัสของคุณในฟังก์ชั่นขนาดเล็กซึ่งสามารถทดสอบและประเมินผลใน stes ขนาดเล็ก

  3. ค้นหาองค์ประกอบที่เชื่อมโยงกันเช่นจำนวนเคสที่มีเงื่อนไข X คือ Y ดังนั้นเคียวรีนี้ต้องส่งคืน Y ส่วนใหญ่มักจะซับซ้อนกว่านี้ แต่ทำได้

  4. เมื่อคุณรันสคริปต์เป็นครั้งแรกให้ทดสอบด้วยชุดย่อยขนาดเล็กและตรวจสอบอย่างรอบคอบว่าทุกอย่างเป็นไปตามลำดับหรือไม่ ในขณะที่ฉันชอบทดสอบหน่วยในไอทีข้อบกพร่องในสคริปต์สถิติมักจะเด่นชัดว่าพวกเขาจะมองเห็นได้ง่ายทำการตรวจสอบอย่างรอบคอบ หรือเป็นข้อผิดพลาดตามระเบียบวิธีซึ่งอาจไม่เคยถูกทดสอบด้วยหน่วย

นั่นควรพอเพียงเพื่อให้แน่ใจว่างาน "one-off" ที่สะอาด แต่สำหรับซีรีย์ตามที่คุณดูเหมือนฉันจะเพิ่มที่คุณควรตรวจสอบค่าออกจากช่วงรวมกันเป็นไปไม่ได้ ฯลฯ สำหรับฉันสคริปต์ส่วนใหญ่ที่มาถึงขั้นตอนที่ 4 อาจมีข้อผิดพลาดฟรี - และพวกเขาจะอยู่อย่างนั้น การเปลี่ยนแปลงบางอย่าง และบ่อยครั้งที่ข้อมูลกำลังเปลี่ยนแปลง - และนั่นคือสิ่งที่ควรตรวจสอบสำหรับการทำงานทุกครั้ง การเขียนรหัสสำหรับนั้นอาจใช้เวลานานและน่ารำคาญ แต่มันก็เต้นผิดพลาดเล็กน้อยเนื่องจากข้อผิดพลาดในการป้อนข้อมูล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.