ความแตกต่างระหว่าง Quantiles

Oct 12 2020

เท่าที่ฉันเข้าใจจากคำจำกัดความขอบควอนไทล์ควรแบ่งชุดข้อมูลออกเป็นส่วนเท่า ๆ กัน (หรืออย่างน้อยก็เป็นส่วนที่เกือบเท่ากันหากชุดข้อมูลมีรายการไม่เพียงพอหรือมีองค์ประกอบจำนวนคี่) ฉันใช้pandasฟังก์ชันquantileเพื่อรับควอไทล์จากชุดข้อมูลของฉัน:

tquantiles = rawData['t'].quantile([0.25,0.5,0.75])

เอาต์พุตแสดงค่าเส้นขอบเชิงปริมาณ:

0.25    -3.1
0.50     6.7
0.75    15.6
Name: t, dtype: float64

rawData เป็นผลลัพธ์ของแบบสอบถาม SQL:

rawData = sqlio.read_sql_query('SELECT * ' +
'FROM cards ' +
'INNER JOIN weather ' +
'on ceil_time_3h(event_date) = weather.datetime', conn)

ดังนั้นสมมติว่าควอนไทล์เท่ากันฉันพยายามเปรียบเทียบปริมาณของวัตถุระหว่างค่าที่ตั้งชื่อ:

SELECT count("t") AS "25" FROM cards
INNER JOIN weather
on ceil_time_3h(event_date) = weather.datetime
WHERE t >= 15.6;

นี่คือ 25% แรก การเปลี่ยนค่าฉันเลือกควอไทล์รวมถึงเส้นขอบด้านซ้าย ค่าเหล่านี้ไม่เท่ากัน: 128829, 130150, 130250, 130266 สำหรับต่ำกว่า 25%, 50%, 75% และสูงกว่า 75% ตามลำดับ ยิ่งไปกว่านั้นผลรวมของจำนวนเหล่านั้นจะน้อยกว่าจำนวนองค์ประกอบในชุดข้อมูล

Quantiles แตกต่างกันอย่างไรในกรณีของฉัน เหตุใดผลรวมจึงแตกต่างจากจำนวนองค์ประกอบในชุดข้อมูล

คำตอบ

4 NickCox Oct 18 2020 at 21:07

ดูเหมือนว่าข้อมูลของคุณจะวัดด้วยความละเอียด 0.1 และช่วงนั้นมีค่าอย่างน้อย 18.7 การคาดเดาของฉันเมื่อกล่าวถึง "สภาพอากาศ" คืออุณหภูมิเป็นเซลเซียส

ลองเดาว่าตัวแปรมีช่วง 50 ในหน่วยเหล่านั้นหางที่อยู่เหนือควอไทล์มักจะยาวกว่าความแตกต่างระหว่างควอไทล์ นั่นจะหมายถึงลำดับของค่าที่แตกต่างกัน 500 ค่า

ดูเหมือนว่าขนาดตัวอย่างของคุณจะอยู่ที่ 500000 ดังนั้นโดยเฉลี่ยแล้วค่าที่แตกต่างกันแต่ละค่าจะเกิดขึ้นประมาณ 1,000 ครั้งและความสัมพันธ์จะมีอยู่ทั่วไป

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

ความสัมพันธ์น่าจะเป็นปัญหาพร้อมกับกฎที่ต้องกำหนดค่าเดียวกันให้กับถังขยะเดียวกัน