statsmodels.othermod.betareg.BetaResults.f_test

BetaResults.f_test(r_matrix, cov_p=None, invcov=None)

计算联合线性假设的F检验。

这是wald_test的一个特殊情况,它总是使用F分布。

Parameters:
r_matrix{array_like, str, tuple}

其中之一:

  • array : 一个 r x k 的数组,其中 r 是待检验的限制数量,k 是回归量的数量。假设线性组合等于零。

  • str : 完整的假设可以通过字符串给出。 请参阅示例。

  • tuple : 一个以 (R, q) 形式表示的数组元组,q 可以是标量或长度为 k 的行向量。

cov_parray_like, optional

参数协方差矩阵的替代估计。 如果给定为None,则使用self.normalized_cov_params。

invcovarray_like, optional

一个 q x q 的数组,用于基于限制矩阵指定逆协方差矩阵。

Returns:
ContrastResults

测试结果是此结果实例的属性。

另请参阅

t_test

执行单个假设检验。

wald_test

使用二次型进行Wald检验。

statsmodels.stats.contrast.ContrastResults

测试结果。

patsy.DesignInfo.linear_constraint

指定一个线性约束。

注释

矩阵 r_matrix 被假定为非奇异的。更准确地说,

r_matrix (pX pX.T) r_matrix.T

假设是可逆的。这里,pX 是模型的设计矩阵的广义逆。在非OLS模型中可能会出现问题,其中噪声的协方差秩不是满秩的。

示例

>>> import numpy as np
>>> import statsmodels.api as sm
>>> data = sm.datasets.longley.load()
>>> data.exog = sm.add_constant(data.exog)
>>> results = sm.OLS(data.endog, data.exog).fit()
>>> A = np.identity(len(results.params))
>>> A = A[1:,:]

这测试了每个系数在统计上是否联合显著不同于零。

>>> print(results.f_test(A))
<F test: F=array([[ 330.28533923]]), p=4.984030528700946e-10, df_denom=9, df_num=6>

与此相比

>>> results.fvalue
330.2853392346658
>>> results.f_pvalue
4.98403096572e-10
>>> B = np.array(([0,0,1,-1,0,0,0],[0,0,0,0,0,1,-1]))

这测试了第二个和第三个回归变量的系数是相等的,并且联合测试了第五个和第六个回归变量的系数是相等的。

>>> print(results.f_test(B))
<F test: F=array([[ 9.74046187]]), p=0.005605288531708235, df_denom=9, df_num=2>

或者,您可以使用字符串指定假设检验

>>> from statsmodels.datasets import longley
>>> from statsmodels.formula.api import ols
>>> dta = longley.load_pandas().data
>>> formula = 'TOTEMP ~ GNPDEFL + GNP + UNEMP + ARMED + POP + YEAR'
>>> results = ols(formula, dta).fit()
>>> hypotheses = '(GNPDEFL = GNP), (UNEMP = 2), (YEAR/1829 = 1)'
>>> f_test = results.f_test(hypotheses)
>>> print(f_test)
<F test: F=array([[ 144.17976065]]), p=6.322026217355609e-08, df_denom=9, df_num=3>

Last update: Oct 16, 2024