gpt4 book ai didi

r - 循环中的 predict.lm()。警告 : prediction from a rank-deficient fit may be misleading

转载 作者:行者123 更新时间:2023-12-03 08:36:00 29 4
gpt4 key购买 nike

此 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

我阅读了很多有关此警告的信息,但我无法弄清楚问题是什么。

最佳答案

您可以使用 body(predict.lm) 检查预测函数.在那里你会看到这一行:

if (p < ncol(X) && !(missing(newdata) || is.null(newdata))) 
warning("prediction from a rank-deficient fit may be misleading")

此警告检查您的数据矩阵的等级是否至少等于您想要拟合的参数数量。调用它的一种方法是使用一些共线协变量:
data <- data.frame(y=c(1,2,3,4), x1=c(1,1,2,3), x2=c(3,4,5,2), x3=c(4,2,6,0), x4=c(2,1,3,0))
data2 <- data.frame(x1=c(3,2,1,3), x2=c(3,2,1,4), x3=c(3,4,5,1), x4=c(0,0,2,3))
fit <- lm(y ~ ., data=data)

predict(fit, data2)
1 2 3 4
4.076087 2.826087 1.576087 4.065217
Warning message:
In predict.lm(fit, data2) :
prediction from a rank-deficient fit may be misleading

请注意,x3 和 x4 在 data 中具有相同的方向.一个是另一个的倍数。这可以通过 length(fit$coefficients) > fit$rank 检查

另一种方法是拥有比可用变量更多的参数:
fit2 <- lm(y ~ x1*x2*x3*x4, data=data)
predict(fit2, data2)
Warning message:
In predict.lm(fit2, data2) :
prediction from a rank-deficient fit may be misleading

关于r - 循环中的 predict.lm()。警告 : prediction from a rank-deficient fit may be misleading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26558631/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com