У мене є набір даних з 9 безперервними незалежними змінними. Я намагаюся вибрати серед цих змінних , щоб відповідати моделі до одного відсотка ( в залежності) змінної Score
. На жаль, я знаю, що між декількома змінними буде серйозна колінеарність.
Я намагався використовувати stepAIC()
функцію в R для вибору змінної, але цей метод, як не дивно, здається чутливим до порядку, в якому змінні перераховані в рівнянні ...
Ось мій R-код (оскільки це відсоткові дані, я використовую logit перетворення для 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 змінних.
Score
змінної", - це речення, на яке я, можливо, надмірно зосередився. За наявності сильної колінеарності ласо не допоможе в цьому, принаймні, у більш суворих тлумаченнях зауваження ОП.