帖子Retrieve model estimates from statsmodels显示,您可以使用model.pvalues
从线性回归模型中获得beta的p值。具体来说,使用与该帖子相同的示例,您可以直接使用sm.OLS(df['y'], x).fit().pvalues[1]
来获得它。这将基于H0=0
的假设。假设我想知道线性模型的斜率是否明显不同于1?是否可以直接调整H0
并相应地检索p值?
编辑:示例
在上面的帖子和约瑟夫的评论的基础上,这是一个潜在的设置:
代码:
import pandas as pd
import numpy as np
import statsmodels.api as sm
# A dataframe with two variables
np.random.seed(123)
rows = 12
rng = pd.date_range('1/1/2017', periods=rows, freq='D')
df = pd.DataFrame(np.random.randint(100,150,size=(rows, 2)), columns=['y', 'x'])
df = df.set_index(rng)
x = sm.add_constant(df['x'])
model = sm.OLS(df['y'], x).fit()
model.summary()
输出(简称):
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const 176.6364 20.546 8.597 0.000 130.858 222.415
x -0.3572 0.158 -2.261 0.047 -0.709 -0.005
==============================================================================
我从dir(model)
找到了'wald_test'
和'wald_test_terms'
。您如何使用其中的任何(?)来检验beta = 1的假设? H0:beta=1, HA beta!=1
谢谢您的任何建议。