我有一个包含9个连续自变量的数据集,我试图在其中选择以使模型适合单个百分比(相关)变量:分数。
不幸的是,我知道几个变量之间会存在严重的共线性。
我尝试在R中使用stepAIC函数进行变量选择,但奇怪的是,该方法似乎对方程中列出变量的顺序很敏感...
这是我的R代码(b / c它的百分比数据,我使用分数的logit转换):
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个变量中考虑共线性的强大潜力的一些方法。
我知道这是一个棘手的问题,但我真的很感谢你花时间去看它......
最佳, 朱莉
答案 0 :(得分:0)
您可能需要主成分分析(stats :: prcomp)。
见Avril Coghlan撰写的文件“R for Little Variate Analysis of a Rultivariate Analysis”,第2.7节。他在各种葡萄酒生产商处使用下载的数据给出了一个很好的例子。
答案 1 :(得分:0)
我接受了贝叶斯模型平均(使用R中的BMS
包)。