การแสดงภาพความเหมาะสมของโมเดล

การถดถอยเบื้องต้นด้วย statsmodels ใน Python

Maarten Van den Broeck

Content Developer at DataCamp

คุณสมบัติของค่าคงเหลือในโมเดลที่เหมาะสม

  • ค่าคงเหลือมีการแจกแจงแบบปกติ
  • ค่าเฉลี่ยของค่าคงเหลือเท่ากับศูนย์
การถดถอยเบื้องต้นด้วย statsmodels ใน Python

กลับมาดู Bream และ Perch

Bream: โมเดล "ดี"

mdl_bream = ols("mass_g ~ length_cm", data=bream).fit()

กราฟกระจายของมวล bream เทียบกับความยาว พร้อมเส้นแนวโน้ม ซึ่งแสดงไว้ก่อนหน้านี้แล้ว

Perch: โมเดล "ไม่ดี"

mdl_perch = ols("mass_g ~ length_cm", data=perch).fit()

กราฟกระจายของมวล perch เทียบกับความยาว พร้อมเส้นแนวโน้ม ซึ่งแสดงไว้ก่อนหน้านี้แล้ว

การถดถอยเบื้องต้นด้วย statsmodels ใน Python

ค่าคงเหลือ vs. ค่าพยากรณ์

Bream

กราฟกระจายของค่าคงเหลือโมเดล bream เทียบกับค่าพยากรณ์ พร้อมเส้นแนวโน้ม LOWESS เส้นแนวโน้มอยู่ใกล้แกน x

Perch

กราฟกระจายของค่าคงเหลือโมเดล perch เทียบกับค่าพยากรณ์ พร้อมเส้นแนวโน้ม LOWESS เส้นแนวโน้มมีรูปทรงตัว V

การถดถอยเบื้องต้นด้วย statsmodels ใน Python

กราฟ Q-Q

Bream

กราฟ Q-Q ของค่าคงเหลือมาตรฐานโมเดล bream เทียบกับควอนไทล์เชิงทฤษฎี จุดข้อมูลส่วนใหญ่อยู่ใกล้เส้นอ้างอิง ยกเว้นค่าผิดปกติสองจุด

Perch

กราฟ Q-Q ของค่าคงเหลือมาตรฐานโมเดล perch เทียบกับควอนไทล์เชิงทฤษฎี จุดข้อมูลไม่ได้อยู่ใกล้เส้นอ้างอิง โดยเฉพาะบริเวณด้านขวาของกราฟ

การถดถอยเบื้องต้นด้วย statsmodels ใน Python

กราฟ Scale-location

Bream

กราฟกระจายของรากที่สองของค่าคงเหลือมาตรฐานโมเดล bream เทียบกับค่าพยากรณ์ พร้อมเส้นแนวโน้ม LOWESS เส้นแนวโน้มเพิ่มขึ้นเล็กน้อยตามค่าพยากรณ์

Perch

กราฟกระจายของรากที่สองของค่าคงเหลือมาตรฐานโมเดล perch เทียบกับค่าพยากรณ์ พร้อมเส้นแนวโน้ม LOWESS เส้นแนวโน้มขึ้นลงหลายครั้งตามค่าพยากรณ์

การถดถอยเบื้องต้นด้วย statsmodels ใน Python

residplot()

sns.residplot(x="length_cm", y="mass_g", data=bream, lowess=True)
plt.xlabel("Fitted values")
plt.ylabel("Residuals")

กราฟกระจายของค่าคงเหลือโมเดล bream เทียบกับค่าพยากรณ์ พร้อมเส้นแนวโน้ม LOWESS เส้นแนวโน้มอยู่ใกล้แกน x

การถดถอยเบื้องต้นด้วย statsmodels ใน Python

qqplot()

from statsmodels.api import qqplot
qqplot(data=mdl_bream.resid, fit=True, line="45")

กราฟ Q-Q ของ bream ตามที่แสดงก่อนหน้านี้

การถดถอยเบื้องต้นด้วย statsmodels ใน Python

กราฟ Scale-location

model_norm_residuals_bream = mdl_bream.get_influence().resid_studentized_internal

model_norm_residuals_abs_sqrt_bream = np.sqrt(np.abs(model_norm_residuals_bream))
sns.regplot(x=mdl_bream.fittedvalues, y=model_norm_residuals_abs_sqrt_bream, ci=None, lowess=True)
plt.xlabel("Fitted values") plt.ylabel("Sqrt of abs val of stdized residuals")

กราฟ scale-location ของ bream ตามที่แสดงก่อนหน้านี้

การถดถอยเบื้องต้นด้วย statsmodels ใน Python

มาฝึกกันเถอะ!

การถดถอยเบื้องต้นด้วย statsmodels ใน Python

Preparing Video For Download...