Я понимаю, что эта тема поднималась несколько раз, например, здесь , но я все еще не уверен, как лучше интерпретировать мой результат регрессии.
У меня есть очень простой набор данных, состоящий из столбца значений x и столбца значений y , разделенных на две группы в зависимости от местоположения (loc). Точки выглядят так
Коллега выдвинул гипотезу, что мы должны подгонять отдельные простые линейные регрессии к каждой группе, что я и сделал, используя y ~ x * C(loc)
. Результат показан ниже.
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 0.873
Model: OLS Adj. R-squared: 0.866
Method: Least Squares F-statistic: 139.2
Date: Mon, 13 Jun 2016 Prob (F-statistic): 3.05e-27
Time: 14:18:50 Log-Likelihood: -27.981
No. Observations: 65 AIC: 63.96
Df Residuals: 61 BIC: 72.66
Df Model: 3
Covariance Type: nonrobust
=================================================================================
coef std err t P>|t| [95.0% Conf. Int.]
---------------------------------------------------------------------------------
Intercept 3.8000 1.784 2.129 0.037 0.232 7.368
C(loc)[T.N] -0.4921 1.948 -0.253 0.801 -4.388 3.404
x -0.6466 0.230 -2.807 0.007 -1.107 -0.186
x:C(loc)[T.N] 0.2719 0.257 1.057 0.295 -0.242 0.786
==============================================================================
Omnibus: 22.788 Durbin-Watson: 2.552
Prob(Omnibus): 0.000 Jarque-Bera (JB): 121.307
Skew: 0.629 Prob(JB): 4.56e-27
Kurtosis: 9.573 Cond. No. 467.
==============================================================================
Глядя на значения p для коэффициентов, фиктивная переменная для местоположения и член взаимодействия существенно не отличаются от нуля, и в этом случае моя модель регрессии по существу сводится к красной линии на графике выше. Для меня это говорит о том, что подгонка отдельных линий к двум группам может быть ошибкой, и лучшей моделью может быть одна линия регрессии для всего набора данных, как показано ниже.
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 0.593
Model: OLS Adj. R-squared: 0.587
Method: Least Squares F-statistic: 91.93
Date: Mon, 13 Jun 2016 Prob (F-statistic): 6.29e-14
Time: 14:24:50 Log-Likelihood: -65.687
No. Observations: 65 AIC: 135.4
Df Residuals: 63 BIC: 139.7
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [95.0% Conf. Int.]
------------------------------------------------------------------------------
Intercept 8.9278 0.935 9.550 0.000 7.060 10.796
x -1.2446 0.130 -9.588 0.000 -1.504 -0.985
==============================================================================
Omnibus: 0.112 Durbin-Watson: 1.151
Prob(Omnibus): 0.945 Jarque-Bera (JB): 0.006
Skew: 0.018 Prob(JB): 0.997
Kurtosis: 2.972 Cond. No. 81.9
==============================================================================
Это выглядит нормально для меня визуально, и значения p для всех коэффициентов теперь значимы. Однако AIC для второй модели намного выше, чем для первой.
Я понимаю, что выбор модели - это больше, чем просто p-значения или просто AIC, но я не уверен, что с этим делать. Кто-нибудь может дать какой-нибудь практический совет относительно интерпретации этого вывода и выбора подходящей модели, пожалуйста ?
На мой взгляд, единственная линия регрессии выглядит хорошо (хотя я понимаю, что ни одна из них не особенно хороша), но кажется, что есть хотя бы какое-то оправдание для подгонки отдельных моделей (?).
Благодарность!
Отредактировано в ответ на комментарии
@Cagdas Ozgenc
Двухстрочная модель была приспособлена, используя statsmodels Питона и следующий код
reg = sm.ols(formula='y ~ x * C(loc)', data=df).fit()
Насколько я понимаю, это, по сути, просто сокращение для такой модели
где - двоичная переменная «фиктивная», представляющая местоположение. На практике это просто две линейные модели, не так ли? Когда , и модель сводится кl o c = D l = 0
которая является красной линией на графике выше. Когда , и модель становитсяl = 1
которая является синей линией на графике выше. AIC для этой модели сообщается автоматически в сводке statsmodels. Для однолинейной модели я просто использовал
reg = ols(formula='y ~ x', data=df).fit()
Я думаю это нормально?
@ user2864849
Я не думаю , что эта модель одна линия, очевидно , лучше, но я беспокоиться о том , как плохо сдерживали линии регрессии для есть. Эти два местоположения (D и N) находятся очень далеко друг от друга в пространстве, и я не удивлюсь, если соберу дополнительные данные откуда-то посередине, и получу точки, примерно расположенные между красными и синими кластерами, которые у меня уже есть. У меня пока нет никаких данных, подтверждающих это, но я не думаю, что однолинейная модель выглядит слишком ужасно, и мне нравится, чтобы все было как можно проще :-)
Редактировать 2
Просто для полноты, здесь приведены остаточные графики, предложенные @whuber. Двухстрочная модель действительно выглядит намного лучше с этой точки зрения.
Двухлинейная модель
Однолинейная модель
Спасибо всем!