Максимальное количество независимых переменных, которые можно ввести в уравнение множественной регрессии

19

Какое количество независимых переменных можно ввести в уравнение множественной регрессии? У меня есть 10 предикторов, которые я хотел бы изучить с точки зрения их относительного вклада в переменную результата. Должен ли я использовать коррекцию Бонферрони, чтобы скорректировать несколько анализов?

Мелисса Данкомб
источник

Ответы:

25

Вам нужно подумать о том, что вы подразумеваете под «пределом». Существуют ограничения, например, когда у вас больше предикторов, чем случаев, вы сталкиваетесь с проблемами при оценке параметров (см. Небольшую симуляцию R в нижней части этого ответа).

Тем не менее, я думаю, вы говорите больше о мягких пределах, связанных со статистической мощью и хорошей статистической практикой. В этом случае язык «пределов» не совсем подходит. Скорее большие размеры выборки, как правило, делают более разумным иметь больше предикторов, и порог того, сколько предикторов является разумным, возможно, падает на континуум разумности. Обсуждение эмпирических правил для размера выборки может иметь значение для множественной регрессии , так как многие такие эмпирические правила ссылаются на количество предикторов.

Несколько баллов

  • Если вас больше интересует общее предсказание, чем статистическая значимость отдельных предикторов, то, вероятно, разумно включить больше предикторов, чем если вас интересует статистическая значимость отдельных предикторов.
  • Если вас больше интересует тестирование конкретной статистической модели, относящейся к вашему исследовательскому вопросу (например, как это принято во многих приложениях по общественным наукам), вероятно, у вас есть причины для включения определенных предикторов. Тем не менее, вы также можете иметь возможность избирательно выбирать, какие предикторы вы включаете (например, если у вас есть несколько переменных, которые измеряют похожую конструкцию, вы можете включить только одну из них). При проведении теоретического тестирования моделей существует множество вариантов, и решение о том, какие предикторы включить, предполагает тесную связь между вашей теорией и вопросом исследования.
  • Я не часто вижу исследователей, использующих поправки Бонферрони, применяемые к тестам значимости коэффициентов регрессии. Одной из разумных причин этого может быть то, что исследователи больше заинтересованы в оценке общих свойств модели.
  • Если вы заинтересованы в оценке относительной важности предикторов, я считаю полезным изучить как двумерные отношения между предиктором и результатом, так и взаимосвязь между предиктором и контролем результата для других предикторов. Если вы включаете много предикторов, часто более вероятно, что вы включаете предикторы, которые сильно взаимосвязаны. В таких случаях может быть полезна интерпретация как двумерных, так и модельных индексов важности, так как переменная, важная в двумерном смысле, может быть скрыта в модели другими коррелированными предикторами ( я более подробно расскажу об этом здесь со ссылками ).


Немного симуляции R

Я написал эту небольшую симуляцию, чтобы подчеркнуть связь между размером выборки и оценкой параметров при множественной регрессии.

set.seed(1)

fitmodel <- function(n, k) {
  # n: sample size
  # k: number of predictors
  # return linear model fit for given sample size and k predictors
  x <- data.frame(matrix( rnorm(n*k), nrow=n))
  names(x) <- paste("x", seq(k), sep="")
  x$y <- rnorm(n)  
  lm(y~., data=x)
}

fitmodelФункция принимает два аргумента nдля размера выборки и kдля числа предсказателей. Я не считаю эту константу предиктором, но она оценивается. Затем я генерирую случайные данные и подбираю регрессионную модель, предсказывающую переменную y из kпеременных предиктора, и возвращает соответствие.

Учитывая, что вы упомянули в своем вопросе, что вас интересует, является ли 10 предикторов слишком большим, следующие вызовы функций показывают, что происходит, когда размер выборки равен 9, 10, 11 и 12 соответственно. Т.е. размер выборки на единицу меньше числа предикторов, на два больше числа предикторов

summary(fitmodel(n=9, k=10))
summary(fitmodel(n=10, k=10))
summary(fitmodel(n=11, k=10))
summary(fitmodel(n=12, k=10))

> резюме (fitmodel (n = 9, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 9 residuals are 0: no residual degrees of freedom!

Coefficients: (2 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.31455         NA      NA       NA
x1           0.34139         NA      NA       NA
x2          -0.45924         NA      NA       NA
x3           0.42474         NA      NA       NA
x4          -0.87727         NA      NA       NA
x5          -0.07884         NA      NA       NA
x6          -0.03900         NA      NA       NA
x7           1.08482         NA      NA       NA
x8           0.62890         NA      NA       NA
x9                NA         NA      NA       NA
x10               NA         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 8 and 0 DF,  p-value: NA 

Размер выборки на единицу меньше количества предикторов. Можно оценить только 9 параметров, один из которых постоянный.

> резюме (fitmodel (n = 10, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 10 residuals are 0: no residual degrees of freedom!

Coefficients: (1 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   0.1724         NA      NA       NA
x1           -0.3615         NA      NA       NA
x2           -0.4670         NA      NA       NA
x3           -0.6883         NA      NA       NA
x4           -0.1744         NA      NA       NA
x5           -1.0331         NA      NA       NA
x6            0.3886         NA      NA       NA
x7           -0.9886         NA      NA       NA
x8            0.2778         NA      NA       NA
x9            0.4616         NA      NA       NA
x10               NA         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 9 and 0 DF,  p-value: NA 

Размер выборки соответствует количеству предикторов. Можно оценить только 10 параметров, один из которых постоянный.

> резюме (fitmodel (n = 11, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 11 residuals are 0: no residual degrees of freedom!

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  -0.9638         NA      NA       NA
x1           -0.8393         NA      NA       NA
x2           -1.5061         NA      NA       NA
x3           -0.4917         NA      NA       NA
x4            0.3251         NA      NA       NA
x5            4.4212         NA      NA       NA
x6            0.7614         NA      NA       NA
x7           -0.4195         NA      NA       NA
x8            0.2142         NA      NA       NA
x9           -0.9264         NA      NA       NA
x10          -1.2286         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 10 and 0 DF,  p-value: NA 

Размер выборки на один больше, чем количество предикторов. Все параметры оценены, включая постоянную.

> резюме (fitmodel (n = 12, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
        1         2         3         4         5         6         7         8         9        10        11 
 0.036530 -0.042154 -0.009044 -0.117590  0.171923 -0.007976  0.050542 -0.011462  0.010270  0.000914 -0.083533 
       12 
 0.001581 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  0.14680    0.11180   1.313   0.4144  
x1           0.02498    0.09832   0.254   0.8416  
x2           1.01950    0.13602   7.495   0.0844 .
x3          -1.76290    0.26094  -6.756   0.0936 .
x4           0.44832    0.16283   2.753   0.2218  
x5          -0.76818    0.15651  -4.908   0.1280  
x6          -0.33209    0.18554  -1.790   0.3244  
x7           1.62276    0.21562   7.526   0.0841 .
x8          -0.47561    0.18468  -2.575   0.2358  
x9           1.70578    0.31547   5.407   0.1164  
x10          3.25415    0.46447   7.006   0.0903 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.2375 on 1 degrees of freedom
Multiple R-squared: 0.995,  Adjusted R-squared: 0.9452 
F-statistic: 19.96 on 10 and 1 DF,  p-value: 0.1726 

Размер выборки на два больше, чем количество предикторов, и, наконец, можно оценить соответствие всей модели.

Джером англим
источник
Может кто-нибудь объяснить, почему стандартные ошибки в первом сценарии (n = 9, k = 10) равны NA? У меня есть стандартная формула ошибки, но я не вижу, как знаменатель будет равен 0, чтобы мы могли получить NA.
matsuo_basho
12

Я часто смотрю на это с точки зрения того, может ли модель, снабженная определенным количеством параметров, давать прогнозы вне выборки, которые столь же точны, как и прогнозы, сделанные на исходной выборке разработки модели. Калибровочные кривые, среднеквадратические ошибки X * Beta и индексы предиктивной дискриминации являются одними из обычно используемых показателей. Отсюда некоторые эмпирические правила, такие как правило 15: 1 (эффективный размер выборки 15 для каждого исследуемого или оцениваемого параметра).

Что касается множественности, то идеальная поправка на множественность, если предположить, что модель справедлива и предположения о распределении соблюдены, является глобальным тестом на то, что все беты (кроме перехвата) равны нулю. Обычно это проверяется с использованием отношения правдоподобия или F-теста.

Существует два общих подхода к разработке моделей, которые, как правило, работают хорошо. (1) Иметь адекватный размер выборки и соответствовать всей предварительно заданной модели, и (2) использовать штрафную оценку максимального правдоподобия, чтобы предоставить только столько эффективных степеней свободы в регрессии, сколько будет поддерживать текущий размер выборки. [Поэтапный выбор переменной без штрафных санкций не должен играть никакой роли, поскольку известно, что это не работает.]

Фрэнк Харрелл
источник
Основаны ли эти эмпирические правила на предположениях о размере истинных коэффициентов регрессии и размере дисперсии ошибок? Буду ли я прав, думая, что если известно, что дисперсия ошибки очень мала, будет приемлемо гораздо меньшее отношение точек данных к параметрам?
mark999
1
Это прекрасный момент, о котором я не упомянул. Правило 15: 1 относится к типам отношения сигнал: шум, наблюдаемым в биомедицинских и социальных науках. Когда у вас низкая остаточная дисперсия, вы можете точно оценить еще много параметров.
Фрэнк Харрелл
10

NпмпммNп

1мКпσ1/журнал(п)σ1Иксσ1п

с промежутками
источник
6

В принципе, нет предела количеству предсказателей. Вы можете оценить 2 миллиарда "бета" в принципе. Но на практике происходит то, что без достаточных данных или достаточной предварительной информации это не будет очень плодотворным занятием. Никакие конкретные параметры не будут определены очень хорошо, и вы не многому научитесь из анализа.

Теперь, если у вас нет много предварительной информации о вашей модели (структура модели, значения параметров, шум и т. Д.), Вам понадобятся данные, чтобы предоставить эту информацию. Обычно это наиболее распространенная ситуация, которая имеет смысл, потому что вам обычно нужна довольно веская причина для сбора данных (и тратить $$$) о чем-то, что вы уже хорошо знаете. Если это ваша ситуация, то разумным ограничением является наличие большого количества наблюдений на параметр. У вас есть 12 параметров (10 наклонов бета, 1 перехват и параметр шума), поэтому все, что превышает 100 наблюдений, должно быть в состоянии определить ваши параметры достаточно хорошо, чтобы можно было сделать некоторые выводы.

Но нет «жестких и быстрых» правил. Имея всего 10 предикторов, у вас не должно возникнуть проблем со временем вычислений (если хотите, приобретите лучший компьютер). В основном это означает просто выполнять больше работы, потому что у вас есть 11 измерений данных для поглощения - что затрудняет визуализацию данных. Основные принципы регрессии только с 1 зависимой переменной не так уж и отличаются.

Проблема с коррекцией Бонферрони состоит в том, что для того, чтобы это был разумный способ скорректировать уровень значимости, не жертвуя при этом слишком большой силой, вам необходимо, чтобы гипотеза, которую вы исправляете, была независимой (то есть знание того, что одна гипотеза верна, ничего не говорит вам о том, другая гипотеза верна). Это не относится к стандартному «t-критерию» в множественной регрессии для коэффициента, равного нулю, например. Статистика теста зависит от того, что еще в модели - это окольный способ сказать, что гипотеза зависит. Или, более частый способ сказать, что распределение выборки t-значения, обусловленного нулевым i-м предиктором, зависит от того, какие другие параметры равны нулю. Таким образом, использование коррекции Бонферрони здесь может фактически дать вам более низкий «общий»

probabilityislogic
источник