我正在尝试评估不使用整个测试集的回归模型,而只评估排名最高的预测的X%,这是回归目标的位置。 R中是否有允许这样做的包?
所以,例如,如果我有以下
x<-c(1,2,3,4,5,8,7,9,12,11,14,15,16,17,20,25,40)
y<-c(0,1,2,4,5,6,8,7,10,12,15,14,13,10,18,22,30)
df<-cbind(x,y)
model<-lm(y~x)
summary(model)
多个R平方:0.9432,调整后的R平方:0.9395
plot(y~x,df)
abline(model)
我想要一个参数&#34; X&#34;(30%),它不是使用Spearman的排序相关指数计算的,而是仅计算所有整个数据集的最高30%数据。
在这种情况下,应仅计算x=c(15,16,17,20,25,40)
。
这个&#34;部分&#34;相关指数可以帮助进一步表征可能具有较差R平方的模型,但在域的精确区域中表现更好(例如x的前X%)。
谢谢你的指针。
答案 0 :(得分:1)
仅为数据集的相关部分比较预测值和实际值,即
y.pred <- predict(model)
y.err <- y-y.pred
idx.part <- x > quantile(0.7)
# R squared
r.squared <- 1- var(y.err)/var(y)
r.squared.part <- 1- var(y.err[idx.part])/var(y[idx.part])
在子集上计算时,不确定如何正确调整R平方。对于完整数据集,adjusted R squared is computed将分数项乘以(n-1)/(n-p-1)
,其中n
是样本大小,p
是预测变量的数量(在本例中为1) 。