首页 > 解决方案 > Statsmodels:当 H0 不为零时检索 p 值

问题描述

从statsmodels检索模型估计后显示,您可以使用model.pvalues. 具体来说,使用与该帖子中相同的示例,您可以直接使用sm.OLS(df['y'], x).fit().pvalues[1]. 这是在假设H0=0. 假设我想知道线性模型的斜率是否与 1 显着不同?是否有一种直接的方法来调整H0并相应地检索 p 值?

编辑:示例

基于上面的帖子和 Josef 的评论,这是一个潜在的设置:

代码:

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

感谢您的任何建议。

标签: pythonstatsmodels

解决方案


推荐阅读