2

我有一个包含 9 个连续自变量的数据集,我试图在这些变量之间进行选择,以使模型适合单个百分比(因)变量:Score。

不幸的是,我知道几个变量之间会有严重的共线性。

我尝试在 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 个变量中潜在的共线性的一些方法。

我知道这是一个棘手的问题,但我真的很感谢你花时间来看看它......

最好的,朱莉

4

2 回答 2

0

您可能需要主成分分析 (stats::prcomp)。

请参阅 Avril Coghlan 的文档“A Little Book of R For Multivariate Analysis”,第 2.7 节。他举了一个很好的例子,使用各种葡萄酒生产商的下载数据。

于 2012-03-31T19:18:35.447 回答
0

我最终选择了贝叶斯模型平均(使用BMSR 中的包)。

于 2012-04-07T20:41:28.997 回答