เราสามารถพล็อต statsmodels การถดถอยเชิงเส้น (OLS) ด้วยเส้นโค้งที่ไม่เป็นเชิงเส้น แต่มีข้อมูลเชิงเส้น
ขั้นตอน
-
กำหนดขนาดรูปและปรับช่องว่างภายในระหว่างและรอบๆ แผนผังย่อย
-
หากต้องการสร้างใหม่ เราสามารถใช้ seed() วิธีการ
-
เริ่มต้นจำนวนตัวอย่างและตัวแปรซิกมา
-
สร้างจุดข้อมูลเชิงเส้น x, X, เบต้า, t_true , y และ ความละเอียด ใช้ numpy
-
ความละเอียด เป็นอินสแตนซ์คลาส Least Square ธรรมดา
-
คำนวณค่าเบี่ยงเบนมาตรฐาน ช่วงความเชื่อมั่นสำหรับการคาดคะเนใช้กับ WLS และ OLS ไม่ใช่กับ GLS ทั่วไป นั่นคือการสังเกตที่แยกจากกันแต่ไม่เหมือนกัน
-
สร้างร่างและชุดแผนย่อยโดยใช้ subplot() วิธีการ
-
วาดเส้นโค้งทั้งหมดโดยใช้ plot() เมธอดด้วย (x, y), (x, y_true), (x, res.fittedvalues), (x, iv_u) และ (x, iv_l) จุดข้อมูล
-
วางตำนานบนโครงเรื่อง
-
หากต้องการแสดงรูป ให้ใช้ show() วิธีการ
ตัวอย่าง
import numpy as np from matplotlib import pyplot as plt from statsmodels import api as sm from statsmodels.sandbox.regression.predstd import wls_prediction_std plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True np.random.seed(9876789) nsample = 50 sig = 0.5 x = np.linspace(0, 20, nsample) X = np.column_stack((x, np.sin(x), (x - 5) ** 2, np.ones(nsample))) beta = [0.5, 0.5, -0.02, 5.] y_true = np.dot(X, beta) y = y_true + sig * np.random.normal(size=nsample) res = sm.OLS(y, X).fit() prstd, iv_l, iv_u = wls_prediction_std(res) fig, ax = plt.subplots() ax.plot(x, y, 'o', label="data") ax.plot(x, y_true, 'b-', label="True") ax.plot(x, res.fittedvalues, 'r--.', label="OLS") ax.plot(x, iv_u, 'r--') ax.plot(x, iv_l, 'r--') ax.legend(loc='best') plt.show()
ผลลัพธ์