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()

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