置信区间图与多元回归分析

时间:2019-04-25 12:11:12

标签: python regression confidence-interval

我正在使用python中的statsmodels对4个自变量进行多元回归分析,我已经能够拟合数据以产生预测值和ci / pi,但是,当我尝试绘制拟合值并ci / pi反对自变量之一,我全都搞砸了plot。我想绘制一个图,显示所有数据点的拟合值和ci / pi,如problem所示。

正如上面问题中所建议的,我尝试按一个自变量的值对ci / pi值进行排序,但是不起作用。我的代码:

import pandas as pd

import numpy as np

import statsmodels.api as sm

import matplotlib.pyplot as plt

from statsmodels.stats.outliers_influence import summary_table


#read data
data = pd.read_csv("/../../M02_rawObs_total500.csv")

#drop colomn ship_name
data=data.drop(columns='ship_name')
#drop NaN values
data=data.dropna()

#build a model
indVar=sm.add_constant(data[['ship_slp','distance','UU','VV']])

olsMod = sm.OLS.from_formula("cyclone_slp ~ ship_slp + distance + UU + VV", data)
olsRes = olsMod.fit()

ypred = olsRes.predict(indVar)

st, dat, ss2 = summary_table(olsRes, alpha=0.05)

fittedvalues = dat[:, 2]
predict_mean_se  = dat[:, 3]
predict_mean_ci_low, predict_mean_ci_upp = dat[:, 4:6].T
predict_ci_low, predict_ci_upp = dat[:, 6:8].T

plt.plot(data['ship_slp'], data['cyclone_slp'], 'o')
plt.plot(data['ship_slp'], fittedvalues, '-', lw=2)

plt.plot(data['ship_slp'], predict_ci_low, 'r--', lw=2)
plt.plot(data['ship_slp'], predict_ci_upp, 'r--', lw=2)
plt.show()

我的问题是,这里和其他地方的所有示例都处理一个自变量和因变量。如果它是用于多元回归的正确方法,我真的很困惑,因为一个独立var的相同值仍然可以具有不同的拟合值/ ci / pi,具体取决于其他自变量的值。

此外,在给定自变量值集合的情况下,不仅可以在95%CI之内,我还可以估计获得某个预测变量值的可能性。 数据为here,感谢您的帮助!

0 个答案:

没有答案