如何从Python中的OLSResults获取变量中的P值?
研究结果如何从Python中的OLSResults获取变量中的P值?,python,linear-regression,statsmodels,Python,Linear Regression,Statsmodels,研究结果 df2 = pd.read_csv("MultipleRegression.csv") X = df2[['Distance', 'CarrierNum', 'Day', 'DayOfBooking']] Y = df2['Price'] X = add_constant(X) fit = sm.OLS(Y, X).fit() print(fit.summary()) 显示每个属性的p值,小数点后仅保留3位 我需要提取每个属性的p值,如距离,CarrierNum等,并以科学记数法打印
df2 = pd.read_csv("MultipleRegression.csv")
X = df2[['Distance', 'CarrierNum', 'Day', 'DayOfBooking']]
Y = df2['Price']
X = add_constant(X)
fit = sm.OLS(Y, X).fit()
print(fit.summary())
显示每个属性的p值,小数点后仅保留3位
我需要提取每个属性的p值,如距离
,CarrierNum
等,并以科学记数法打印
我可以使用fit.params[0]
或fit.params[1]
等方法提取系数
需要为所有的p值获取它
另外,所有p值为0意味着什么?我们必须进行
fit.pvalues[i]
来得到答案,其中i
是自变量的数量
我们还可以使用
dir()
查找对象的所有属性,而不是使用fit.summary()。您可以在for循环中使用fit.pvalues[attributeIndex]打印所有特征/属性的p值,如下所示:
df2 = pd.read_csv("MultipleRegression.csv")
X = df2[['Distance', 'CarrierNum', 'Day', 'DayOfBooking']]
Y = df2['Price']
X = add_constant(X)
fit = sm.OLS(Y, X).fit()
for attributeIndex in range (0, numberOfAttributes):
print(fit.pvalues[attributeIndex])
==========================================================================
所有p值都为0意味着什么
这可能是个好结果。每个项的p值检验零假设,即系数(b1,b2,…,bn)等于零,不会对拟合方程y=b0+b1x1+b2x2产生影响。。。较低的p值(<0.05)表示可以拒绝无效假设。换句话说,具有低p值的预测值很可能是对模型的有意义的补充,因为预测值的变化与响应变量(y)的变化相关
另一方面,较大的(不显著的)p值表明预测值的变化与响应的变化无关。
dir(fit)
并寻找可能的候选对象因为pvalues
是一个系列,可以使用fit.pvalues.loc['Price']