1

我有一个 161 x 151 的数据库,我在我的数据集上应用了以下内容:-

> ctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 10, savePred = T)
> model <- train(RT..seconds.~., data = cadets, method = "lm", trControl = ctrl)

我得到回报

Coefficients: (82 not defined because of singularities)

我知道这意味着我的很多变量是共线性的,因此不是自变量。所以我希望能够查看我的数据的系数矩阵,所以我做了:-

 cor(cadets, use="complete.obs", method ="kendall")

但是您可以想象的结果太大了,无法将其全部放入我的 R 屏幕中。有没有一种查看模型矩阵的方法,这样我就可以看到哪些变量彼此共线,此外,如果我的变量是共线的,从这里开始我可以做些什么来更好地改进模型?我该如何克服呢?

谢谢

4

1 回答 1

0

它在插入符号手册的预处理部分(大约在页面的一半)中进行了描述:http: //caret.r-forge.r-project.org/preprocess.html

因此,对于您的学员数据,它类似于(未经测试):

cadetsCor <- cor(cadets)
highlyCorCadets <- findCorrelation(cadetsCor, cutoff = 0.75)
cadets <- cadets[, -highlyCorCadets]

另一种选择是降维。例如PCA,但是您的模型可能会获得预测能力,但会失去可解释性。

于 2013-12-10T15:12:26.767 回答