ฉันมีชุดข้อมูล มีค่าที่ขาดหายไปมากมาย สำหรับบางคอลัมน์ค่าที่หายไปถูกแทนที่ด้วย -999 แต่คอลัมน์อื่น ๆ ค่าที่หายไปถูกทำเครื่องหมายเป็น 'NA'
ทำไมเราต้องใช้ -999 เพื่อแทนที่ค่าที่หายไป?
ฉันมีชุดข้อมูล มีค่าที่ขาดหายไปมากมาย สำหรับบางคอลัมน์ค่าที่หายไปถูกแทนที่ด้วย -999 แต่คอลัมน์อื่น ๆ ค่าที่หายไปถูกทำเครื่องหมายเป็น 'NA'
ทำไมเราต้องใช้ -999 เพื่อแทนที่ค่าที่หายไป?
คำตอบ:
นี่คือการค้างชำระจากครั้งก่อนเมื่อซอฟต์แวร์คอมพิวเตอร์จัดเก็บเวกเตอร์ตัวเลขเป็นเวกเตอร์ตัวเลข ไม่มีจำนวนจริงมีความหมาย "ฉันหายไป" ดังนั้นเมื่อซอฟต์แวร์เชิงสถิติในช่วงต้นต้องแยกความแตกต่างระหว่างตัวเลข "ของจริง" และค่าที่หายไปพวกเขาวางสิ่งที่ "ชัดเจน" ไม่ใช่ตัวเลขที่ถูกต้องเช่น -999 หรือ -9999
แน่นอนว่า -999 หรือ -9999 ย่อมาจากค่าที่หายไปไม่ใช่ "ชัดเจน" เลย บ่อยครั้งที่มันสามารถเป็นค่าที่ถูกต้องได้อย่างแน่นอน หากคุณไม่ตรวจสอบค่าดังกล่าวอย่างชัดเจนคุณสามารถมีข้อผิดพลาด "น่าสนใจ" ทุกประเภทในการวิเคราะห์ของคุณ
ทุกวันนี้เวกเตอร์ตัวเลขที่สามารถมีค่าที่หายไปจะถูกแสดงภายในว่าเป็นเวกเตอร์ตัวเลข "ที่มีการผสาน" เช่นเวกเตอร์ตัวเลขพร้อมข้อมูลเพิ่มเติมเกี่ยวกับค่าที่หายไป หลักสูตรนี้ดีกว่ามากเนื่องจากค่าที่หายไปจะได้รับการปฏิบัติเช่นนี้และไม่ถือว่าผิดพลาดว่าถูกต้อง
น่าเสียดายที่ซอฟต์แวร์บางตัวยังคงใช้หลักการดังกล่าว และผู้ใช้บางคนได้ดื่มด่ำกับการประชุมครั้งนี้ผ่านการดูดซึมอย่างไม่เป็นทางการและป้อน -999 แทน NA แม้ว่าซอฟต์แวร์ของพวกเขาจะสนับสนุนการป้อนค่าที่หายไปอย่างหมดจด
คุณธรรม: อย่าเข้ารหัสค่าที่ขาดหายไปเป็น -999
ค่าดังกล่าวมีไว้สำหรับฐานข้อมูล ฐานข้อมูลส่วนใหญ่นานมาแล้วและอีกหลาย ๆ วันนี้จัดสรรจำนวนหลักสำหรับข้อมูลที่มีค่าจำนวนเต็ม ตัวเลขอย่างเช่น -999 เป็นขนาดที่เล็กที่สุดที่สามารถเก็บไว้ในสี่ตัวอักษร -9999 ในห้าตัวอักษรเป็นต้น
(ควรไปโดยไม่บอกว่า - ตามคำจำกัดความ - ฟิลด์ตัวเลขไม่สามารถเก็บอักขระที่เป็นตัวอักษรและตัวเลขเช่น "NA" รหัสตัวเลขบางตัวต้องใช้เพื่อแสดงข้อมูลที่หายไปหรือไม่ถูกต้อง)
เหตุใดจึงต้องใช้จำนวนลบมากที่สุดที่สามารถจัดเก็บเพื่อแสดงถึงค่าที่ขาดหายไป เพราะหากคุณถือว่าเป็นหมายเลขที่ไม่ถูกต้องคุณต้องการให้ผลลัพธ์ไม่ถูกต้องอย่างมาก ยิ่งรหัสของคุณสำหรับค่าที่หายไปนั้นเพิ่มขึ้นจากความเป็นจริงความปลอดภัยของคุณก็ยิ่งมากขึ้นเท่านั้น (วิธีการทางสถิติที่แข็งแกร่งนั้นเป็นข้อยกเว้นที่น่าทึ่ง!)
ความผิดพลาดดังกล่าวเกิดขึ้นได้อย่างไร? สิ่งนี้เกิดขึ้นตลอดเวลาเมื่อมีการแลกเปลี่ยนข้อมูลระหว่างระบบ ระบบที่ถือว่า -9999 แทนค่าที่หายไปจะส่งออกค่านั้นเมื่อคุณเขียนข้อมูลในรูปแบบส่วนใหญ่เช่น CSV ระบบที่อ่านว่าไฟล์ CSV อาจไม่ "รู้" (หรือไม่ใช่ "บอก") ในการรักษาค่าดังกล่าวว่าหายไป
อีกเหตุผลหนึ่งคือว่าข้อมูลทางสถิติที่ดีและแพลตฟอร์มการคำนวณยอมรับค่าที่ขาดหายไปหลายประเภท: NaNs ค่าที่ขาดหายไปอย่างแท้จริง overflows อันเดอร์โฟลว์การไม่ตอบกลับ ฯลฯ โดยการจัดสรรค่าที่เป็นไปได้เชิงลบมากที่สุด (เช่น -9999, - 9998, -9997 และอื่น ๆ ) คุณสามารถทำการค้นหาค่าที่ขาดหายไปทั้งหมดจากตารางหรืออาร์เรย์ใด ๆ
อีกอย่างหนึ่งก็คือค่าดังกล่าวมักจะปรากฏในการแสดงผลกราฟิกเป็นค่าผิดปกติมาก ในค่าทั้งหมดที่คุณสามารถเลือกให้โดดเด่นในกราฟิกค่าที่เป็นไปได้เชิงลบมากที่สุดคือโอกาสที่ยิ่งใหญ่ที่สุดที่จะอยู่ห่างจากข้อมูลของคุณ
มีความหมายที่เป็นประโยชน์และภาพรวม:
ใช้กฎมาตรฐานของประเภทนี้เพื่อให้ง่ายต่อการคิดค้นรหัส NoData ในสถานการณ์ใหม่ (เมื่อคุณออกแบบซอฟต์แวร์ฐานข้อมูลของคุณเอง)
ออกแบบซอฟต์แวร์และระบบของคุณให้ล้มเหลวอย่างมากหากไม่ผ่านเลย ข้อผิดพลาดที่เลวร้ายที่สุดคือข้อผิดพลาดที่ไม่ต่อเนื่องแบบสุ่มหรือเล็ก ๆ เพราะพวกมันไม่สามารถตรวจจับได้และยากที่จะตามล่า
คุณสามารถใช้อะไรก็ได้เพื่อเข้ารหัสค่าที่หายไป ซอฟต์แวร์บางตัวเช่น R ใช้ค่าพิเศษเพื่อเข้ารหัสข้อมูลที่หายไป แต่ยังมีแพ็คเกจซอฟต์แวร์เช่น SPSS ซึ่งไม่มีรหัสพิเศษสำหรับข้อมูลที่ขาดหายไป ในกรณีที่สองคุณจำเป็นต้องเลือกโดยพลการสำหรับค่าดังกล่าว คุณสามารถเลือกอะไรก็ได้แต่โดยทั่วไปคุณควรเลือกค่าบางอย่างที่แตกต่างอย่างเห็นได้ชัดจากข้อมูลของคุณ (เช่นข้อมูลของคุณเป็นเปอร์เซ็นต์ในช่วง 0-100 ดังนั้นคุณเลือก 999 สำหรับการเข้ารหัสข้อมูลที่หายไปหรือข้อมูลของคุณเป็นอายุของมนุษย์และ คุณใช้ค่าลบสำหรับการสังเกตที่ขาดหายไป) แนวคิดเบื้องหลังคือการทำเช่นนั้นคุณควรจะสังเกตได้ว่ามีบางอย่างผิดปกติและตัวเลขไม่เพิ่มขึ้น
ปัญหาเกี่ยวกับการเข้ารหัสเช่นนั้นจริง ๆ แล้วคุณไม่สามารถสังเกตเห็นการเข้ารหัสพิเศษและจบลงด้วยผลลัพธ์ขยะ
มีตัวแปรที่คำนวณในชุดข้อมูลหรือไม่ หรือนี่เป็นชุดข้อมูลการวิเคราะห์ที่มาจากการผสาน / เรียงลำดับข้อมูลหรือไม่ ซอฟต์แวร์บางตัวใช้ค่าลบจำนวนมากเพื่อแสดงข้อมูลที่ขาดหายไป แต่ซอฟต์แวร์อื่น ๆ สร้างค่าที่ขาดหายกับ NA .
หรือ เมื่อพวกเขาไม่ลงรอยกันโดยปกติการโพสต์โพสต์จะนำไปสู่ความขัดแย้ง
แน่นอนใน SPSS ค่าที่ขาดหายไป 999 หรืออะไรก็ตามที่ติดแท็กเป็นรหัสที่หายไปพิเศษและจัดการแยกต่างหากจากค่าอื่น ๆ มันอาจจะเป็นตารางแยกหรือแยกออกทั้งหมด ความแตกต่างเกิดจากผลลัพธ์ของสิ่งต่าง ๆ เช่นการหารศูนย์หรือบันทึก (0)