【发布时间】:2014-12-20 22:10:26
【问题描述】:
此 R 代码引发警告
# Fit regression model to each cluster
y <- list()
length(y) <- k
vars <- list()
length(vars) <- k
f <- list()
length(f) <- k
for (i in 1:k) {
vars[[i]] <- names(corc[[i]][corc[[i]]!= "1"])
f[[i]] <- as.formula(paste("Death ~", paste(vars[[i]], collapse= "+")))
y[[i]] <- lm(f[[i]], data=C1[[i]]) #training set
C1[[i]] <- cbind(C1[[i]], fitted(y[[i]]))
C2[[i]] <- cbind(C2[[i]], predict(y[[i]], C2[[i]])) #test set
}
我有一个训练数据集 (C1) 和一个测试数据集 (C2)。每一个都有 129 个变量。我在 C1 上做了 k 表示聚类分析,然后根据集群成员拆分我的数据集并创建了一个不同集群的列表(C1[[1]]、C1[[2]]、...、C1[[k] ])。我还为 C2 中的每个案例分配了一个集群成员资格,并创建了 C2[[1]]、...、C2[[k]]。然后我对 C1 中的每个集群进行线性回归。我的因变量是“死亡”。我的预测变量在每个集群中都不同,并且 vars[[i]] (i=1,...,k) 显示了预测变量名称的列表。我想预测测试数据集中每个案例的死亡 (C2[[1]],..., C2[[k])。当我运行以下代码时,对于某些集群。
我收到此警告:
In predict.lm(y[[i]], C2[[i]]) :
prediction from a rank-deficient fit may be misleading
我阅读了很多关于此警告的信息,但我无法弄清楚问题所在。
【问题讨论】:
-
问题是你得到了排名不足的拟合。您需要找出哪些适合发出警告并检查它们。
标签: r statistics linear-regression lm