【问题标题】:Spearman Correlation on top X% of sorted data前 X% 已排序数据的 Spearman 相关性
【发布时间】:2017-04-05 01:24:21
【问题描述】:

我正在尝试评估回归模型,而不是使用整个测试集,而只使用 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)

我想要一个参数“X”(30%),它不是使用 Spearman 的排名相关指数计算的所有数据集,而是仅对前 30% 的数据进行计算。 在这种情况下,它应该只计算x=c(15,16,17,20,25,40)。 这种“部分”相关指数可以帮助进一步表征可能具有较差 R 平方但在域的精确区域(例如 x 的前 X%)中表现更好的模型。 感谢您的任何指示。

【问题讨论】:

  • 不完全清楚你想要什么:类似lm(y~x,data=df,subset=x&gt;quantile(x,0.7)) ?
  • @Ben。谢谢。我不想用更少的数据改变模型,只是在选择的子集上“测量”模型。

标签: r regression correlation


【解决方案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)。

【讨论】:

  • 感谢您的快速回答!我怀疑包裹里什么都没有。我也不确定如何生成调整后的 R 平方。但是,我一直认为,在某些情况下,针对最高 x% 预测排名优化的回归模型(即最大化 Spearman 在最高或最低 X% 数据上的相关性)可能优于在整个集合上优化的“经典”模型。
猜你喜欢
  • 2018-05-09
  • 2018-02-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-28
  • 2018-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
相关资源
最近更新 更多