Mam zestaw danych z 9 ciągłymi zmiennymi niezależnymi. Staram się wybierać między tymi zmiennymi, aby dopasować model do jednego procentu (zależnej) zmiennej Score
. Niestety wiem, że między kilkoma zmiennymi wystąpi poważna kolinearność.
Próbowałem użyć stepAIC()
funkcji w R do wyboru zmiennych, ale ta metoda, co dziwne, wydaje się wrażliwa na kolejność, w której zmienne są wymienione w równaniu ...
Oto mój kod R (ponieważ są to dane procentowe, używam transformacji logit dla 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)
Z jakiegoś powodu odkryłem, że zmienne wymienione na początku równania są ostatecznie wybierane przez stepAIC()
funkcję, a wynikiem można manipulować przez listowanie, np. Var9
Najpierw (po tyldie).
Jaki jest bardziej skuteczny (i mniej kontrowersyjny) sposób dopasowania modelu tutaj? W rzeczywistości nie jestem całkowicie zdeterminowany, aby zastosować regresję liniową: jedyne, czego chcę, to móc zrozumieć, która z 9 zmiennych naprawdę napędza zmianę w Score
zmiennej. Najlepiej byłoby, gdyby była to metoda uwzględniająca duży potencjał kolinearności w tych 9 zmiennych.
Score
zmiennej”, czyli zdanie, na którym mogłem się nadmiernie skoncentrować. W obecności silnej kolinearności lasso nie pomoże w tym, przynajmniej w bardziej rygorystycznych interpretacjach uwagi OP.