我想为通过20倍交叉验证获得的测试数据计算r平方。我读了这个堆栈溢出解决方案
由于我有多个预测变量,因此我修改了代码以使其工作:
test.pred <- as.matrix(predict(lin_model,newdata=testData))
test.y <- as.matrix(testData[,c("1","2","3")])
browser()
test.pred[test.pred<0]<-0
SS.total <- colSums((test.y - colMeans(test.y))^2)
SS.residual <- colSums((test.y - test.pred)^2)
SS.regression <- colSums((test.pred - colMeans(test.y))^2)
test.rsq<-t(SS.regression/SS.total)
对于某些折叠中的某些响应变量,我得到非常大的R平方值(在100范围内),这是不可能的。我想知道实施中是否有问题,或者我是否必须检查数据以获得可能的解释。 R平方的值非常大,意味着测试数据的预测值与实际测试观察值的平均值之间几乎没有差异。任何评论,建议或解决方案都会有很大帮助