ตรวจสอบความเป็นปกติด้วย Q-Q plot

Visualize

ตรวจสอบความเป็นปกติด้วย Q-Q plot

Created: Last updated: Read time: 1 min

scipy.stats.probplot ช่วยวาด Q-Q plot เพื่อเทียบการแจกแจงของข้อมูลกับการแจกแจงทฤษฎี (ที่นี่คือโค้งปกติ) ถ้าจุดเบี่ยงออกจากเส้นตรงมาก แสดงว่าไม่เป็นไปตามสมมติฐาน

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

data = np.random.normal(loc=0, scale=1, size=500)

fig, ax = plt.subplots(figsize=(5, 5))
stats.probplot(data, dist="norm", plot=ax)

ax.set_title("Q-Q plot เทียบกับการแจกแจงปกติ")
ax.grid(alpha=0.2)

fig.tight_layout()

plt.show()

Q-Q plot ของการแจกแจงปกติ

วิธีอ่าน #

  • ถ้าจุดเรียงตามเส้น 45 องศา แสดงว่าข้อมูลใกล้เคียงการแจกแจงที่เลือก ปลายเส้นที่โค้งขึ้น/ลงบอกว่าหางหนักหรือเบา
  • เปลี่ยน dist เพื่อลองเทียบกับการแจกแจงอื่น เช่น t หรือ exponential
  • ควรรายงานค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานควบคู่ เพื่อช่วยตีความลักษณะของข้อมูล