的OLSResults
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个小数位。
我需要为Distance
,CarrierNum
等每个属性提取p值,并以科学计数法打印出来。
我可以使用fit.params[0]
或fit.params[1]
等提取系数
需要获得所有P值。
所有P值为0的意思是什么?
答案 0 :(得分:9)
我们需要fit.pvalues[i]
来获得答案,其中i
是自变量的数量。
我们还可以使用dir(<object>)
查找对象的所有属性。这是另一个有用的知识。
答案 1 :(得分:2)
您可以在 for 循环中使用 fit.pvalues[attributeIndex] 来打印所有特征/属性的 p 值,而不是使用 fit.summary(),如下所示:
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 值表明预测变量的变化与响应的变化无关。