Как выполнить частичный F-тест в питоне только для некоторых переменных модели

Я хочу построить модель регрессии с 65 переменными в python. Затем я хочу выполнить частичный F-тест только для двух выбранных переменных в python.

В частичном F-тесте H0 будет гипотезой о том, что две бета (коэффициент выбранной переменной в модели) двух переменных равны 0. H1 будет гипотезой о том, что хотя бы одна из бета не равна 0.

Я искал везде и не нашел ответа на свой вопрос. Я был бы рад вашей помощи.


person Yarden Hochenberg    schedule 06.01.2021    source источник


Ответы (1)


Для получения дополнительной информации вы можете проверить справочная страница для f-теста по результатам статистических моделей.

Например, ваши данные такие (я использую только 5 переменных):

import numpy as np
import pandas as pd
import statsmodels.api as sm

np.random.seed(999)

data = pd.DataFrame(np.random.uniform(0,1,(50,6)),
                   columns=['x1','x2','x3','x4','x5','y'])

Мы можем подогнать регрессию, и результаты будут выглядеть так:

results = sm.OLS(endog= data['y'],exog=sm.add_constant(data.iloc[:,:5])).fit()
results.summary()

    coef    std err t   P>|t|   [0.025  0.975]
const   0.7432  0.201   3.700   0.001   0.338   1.148
x1  -0.0345 0.147   -0.235  0.816   -0.331  0.262
x2  -0.1758 0.151   -1.165  0.250   -0.480  0.128
x3  -0.1472 0.150   -0.982  0.331   -0.449  0.155
x4  -0.2735 0.144   -1.905  0.063   -0.563  0.016
x5  0.1143  0.135   0.845   0.403   -0.158  0.387

Установите гипотезу, в этом случае x3 и x4 равны нулю, затем выполните тест:

hypotheses = '(x3 = 0), (x4 = 0)'
f_test = results.f_test(hypotheses)
print(f_test)

<F test: F=array([[2.64119819]]), p=0.08255414803527926, df_denom=44, df_num=2>
person StupidWolf    schedule 28.02.2021
comment
Благодарю вас! Есть ли способ сделать это с помощью sklearn.linear_model.LinearRegression? - person Yarden Hochenberg; 06.05.2021