Левое значение pvalue для константы линейной регрессии в statsmodel

Я проверяю несколько нулевых гипотез. Я использую следующий код и понял, что полученные мной P-значения являются двусторонними P-значениями для t-статистики параметров.

Я хотел бы получить значение p для нулевого hp -> h0: константа регрессии ‹= 0 (тест левого хвоста для константы регрессии)

Есть ли кто-нибудь, кто знает, как провести следующий тест?

Вот код ниже:

импортировать statsmodels.api как sm

y = np.array (избыточный_возврат_фонд, dtype = float)

x = np.array (два, dtype = float)

model_p1 = sm.OLS (y, x) .fit (cov_type = 'HAC', cov_kwds = {'maxlags': 1})

model.append (модель_p1)

Заранее благодарю вас.


person Community    schedule 25.02.2020    source источник


Ответы (1)


statsmodels в настоящее время не позволяет t_test в модели иметь альтернативу неравенства.

Обходной путь состоит в том, чтобы разделить p-значение на 2, предполагая, что оценка и тестовая статистика находятся в правильном хвосте.

В качестве альтернативы для одного параметра вы можете использовать tvalue и повторно вычислить p-значение, но с использованием только одного хвоста нормального или t-распределения.

старая открытая проблема https://github.com/statsmodels/statsmodels/issues/1193

person Josef    schedule 25.02.2020
comment
Спасибо, Йозеф. Не могли бы вы предложить другой возможный способ, кроме деления на 2? Другой пакет, который позволяет мне установить H0: постоянная регрессия ‹= 0? - person ; 25.02.2020
comment
Думаю, вы можете просто использовать результаты OLS в _tstat_generic github.com/statsmodels/statsmodels/blob/master/statsmodels/ (у scipy также есть ttests from_stats). Убедитесь, что двусторонний такой же, как у результатов OLSResults. - person Josef; 25.02.2020