Множественная регрессия при некоррелированных независимых переменных в зависимую переменную

Учитывая множественную регрессию, например Y ~ X1 + X2 + X3Как вы думаете, стоит ли адаптировать модель множественной регрессии к данным, когда cor(X1, Y), cor(X2, Y) а также cor(X3, Y) все маленькие значения, такие как 0.2Кроме того, участки (X1, Y), (X2, Y) а также (X3, Y) не видны (линейно, нелинейно) некоррелированные?

В итоге,

  1. Когда каждая независимая переменная некоррелирована с зависимой переменной (визуально линейно и нелинейно), есть ли вероятность, что модель множественной регрессии дает существенные коэффициенты?

  2. Для тех же данных, есть ли вероятность, что нелинейные модели, такие как нейронные сети, дают хороший предсказуемый результат?

1 ответ

В ответ на (1), возможно, что объясняющие переменные с низкими краевыми корреляциями становятся значимыми при вводе в множественную регрессию. Например, если X1 и X2 отрицательно связаны друг с другом и оба положительно влияют на Y, связь между Y и X1 может быть нарушена влиянием X2 (и наоборот).

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

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

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

Вот пример кода, который я упоминал выше:

# Make example data
X1 = rnorm(100)
X2 = -X1 + runif(100)/10 #X2 is negatively correlated with X1
Y = X1 + X2 + runif(100)

# Check correlations
cor(X1, Y) #should give low correlation
cor(X2, Y) # should give low correlation
cor(X1, X2) # should give high (negative) correlation

# Fit model and extract pvalues. Should find significant relationships between Y and X1 and X2 despite the low correlations
fit = lm(Y ~ X1 + X2) 
summary(fit)$coefficients[, "Pr(>|t|)"] # pvalues
  1. Чтобы использовать мультирегрессионную модель, вы должны убедиться, что абсолютные остатки распределены нормально, а их среднее значение должно быть 0. Когда существует некорреляция между зависимой и независимой переменной, вы можете их преобразовать:

    • журнал (x) или квадрат (x). Для этого в наборе данных будет новый столбец. Этот новый столбец следует проверить с помощью qq-диаграмм на предмет нормального распределения. Если да, используйте этот столбец. В конце концов, вы должны позаботиться об интерпретации данных, потому что они преобразуются.
  2. Чтобы предсказать зависимую переменную, может помочь nn, но вам нужно попробовать разные слои и найти наименьшую среднеквадратичную ошибку.

Другие вопросы по тегам