Statsmodels OLS रिग्रेशन परिणामों को Matplotlib में प्लॉट करें: डेटा पॉइंट्स, ट्रू लाइन, फिटेड वैल्यूज़, और कॉन्फिडेंस इंटरवल।
चरण
- फिगर साइज़ सेट करें, रैंडम सीड फिक्स करें।
- सिंथेटिक डेटा जनरेट करें (लीनियर + नॉन-लीनियर टर्म्स)।
sm.OLS(y, X).fit()से मॉडल फिट करें।wls_prediction_stdसे प्रेडिक्शन स्टैंडर्ड एरर और कॉन्फिडेंस इंटरवल प्राप्त करें।ax.plot()से सभी कर्व्स प्लॉट करें: डेटा, ट्रू, OLS फिट, ऊपरी/निचली सीमाएं।- लीजेंड जोड़ें और
plt.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()
आउटपुट
OLS फिट, ट्रू फंक्शन, और 95% कॉन्फिडेंस बैंड्स के साथ स्कैटर प्लॉट।