R: Выбор переменной для множественной регрессии с процентной зависимой переменной, серьезная коллинеарность - PullRequest
2 голосов
/ 31 марта 2012

У меня есть набор данных с 9 непрерывными независимыми переменными, которые я пытаюсь выбрать, чтобы подогнать модель к одной процентной (зависимой) переменной: Score.

К сожалению, я знаю, что будетсерьезная коллинеарность между несколькими переменными.

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

Вот мой код R (b / c это процентные данные, я использую логит-преобразование для Score):

library(MASS)
library(car)

data.tst = read.table("data.txt",header=T)
data.lm = lm(logit(Score) ~ Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 + Var8 + Var9, data = data.tst)

step = stepAIC(data.lm, direction="both")
summary(step)

По какой-то причине я обнаружил, что переменные перечислены в началеуравнения в конечном итоге выбираются функцией stepAIC, и результатом можно управлять, перечисляя, например, сначала Var9 (после тильды).

Какой более эффективный (и менее спорный) способ подгонкимодель здесь?На самом деле я не зациклен на использовании линейной регрессии: единственное, что я хочу, - это понять, какая из 9 переменных действительно является причиной изменения переменной Score.Предпочтительно, это будет какой-то метод, который учитывает большой потенциал коллинеарности в этих 9 переменных.

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

Бест, Джули

Ответы [ 2 ]

0 голосов
/ 08 апреля 2012

Я пошел с байесовским усреднением модели (используя пакет BMS в R).

0 голосов
/ 31 марта 2012

Возможно, вам понадобится анализ главных компонентов (stats :: prcomp).

См. Документ «Маленькая книга R для многомерного анализа» Аврил Коглан, раздел 2.7. Он приводит хороший пример, используя загруженные данные о различных производителях вина.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...