Chúng tôi có thể vẽ biểu đồ hồi quy tuyến tính theo mô hình thống kê (OLS) với một đường cong phi tuyến tính nhưng với dữ liệu tuyến tính.
Các bước
-
Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô con.
-
Để tạo một cái mới, chúng ta có thể sử dụng seed () phương pháp.
-
Khởi tạo số lượng biến mẫu và biến sigma.
-
Tạo các điểm dữ liệu tuyến tính x, X, beta, t_true , y và res sử dụng numpy.
-
Res là một phiên bản lớp Least Square bình thường.
-
Tính độ lệch chuẩn. Khoảng tin cậy để dự đoán áp dụng cho WLS và OLS, không áp dụng cho GLS chung, nghĩa là, các quan sát độc lập nhưng không phân bố đồng nhất.
-
Tạo một hình và một tập hợp các lô phụ bằng cách sử dụng subplot () phương pháp.
-
Vẽ tất cả các đường cong bằng cách sử dụng plot () phương thức với (x, y), (x, y_true), (x, res.fittedvalues), (x, iv_u) và (x, iv_l) điểm dữ liệu.
-
Đặt chú giải vào cốt truyện.
-
Để hiển thị hình này, hãy sử dụng show () phương pháp.
Ví dụ
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()
Đầu ra