我对皮尔逊的置信区间是否太好了';s R在非常不平衡的数据集上使用引导?
我在任何地方都找不到描述的这种类型的引导问题,其中的数据是如此不平衡的:50个y值与2500个值产生50个表示成为x的值。另一件事:产生平均值的50个地层是内部自相关时间序列。自举平均直方图看起来大部分是正态分布 问题1:当我从所有2500个值而不是直接从50个x,y对引导时,我无法直觉到置信区间的改善是否太好而不真实:0.39的范围改善到了0.039。即10倍窄。当只有50个y值可用时,这是没有意义的——或者是吗?我开始怀疑在这种情况下的引导,或者我自己下面提供的R代码,或者我的理论理解。我应该相信结果还是有理论上的理由不相信?(我查阅了几篇论文,我知道bootstrap并不总是那么精确,而且对于相关CI存在更好的变体和方法,例如:) 直接引导平均值:R=0.608(0.3878,0.7790) 从基础值引导:R=0.608(0.5916,0.6290) 问题2:为什么根据这个实验,包含所有数据会更好?我可以用两种方式来解释: (错误的方式)假设我从50个固定y值和50个平均X值引导。然后,我有固定的x值,没有变化,应该得到比我引入不确定性(每个x平均值的分布)更窄的CI,使用所有2500个值 (实验证明是正确的)另一方面:假设我在两步引导中使用所有2500个值,首先计算平均值,然后从中计算x,y相关性。然后,我使用了比50个x-平均值更多的信息,并且应该得到一个更窄的Pearson相关性置信区间 由于使用了更多的信息,我希望第二种方法能够为Pearson's R产生更窄的置信区间,但我不知道如何或为什么,我很好奇 这绝对不是商业行为。我帮助一位即将发表一篇论文的朋友,我相信这篇论文对整体健康有益。我自己也从中受益,主要是通过学习R(是的,我是一个R和Tidyverse新手),以及为一个好的事业做一些真正的科学的刺激。我的职业是系统开发人员 以下是使用所有数据的R代码,删除了不必要的内容:我对皮尔逊的置信区间是否太好了';s R在非常不平衡的数据集上使用引导?,r,confidence-interval,correlation,R,Confidence Interval,Correlation,我在任何地方都找不到描述的这种类型的引导问题,其中的数据是如此不平衡的:50个y值与2500个值产生50个表示成为x的值。另一件事:产生平均值的50个地层是内部自相关时间序列。自举平均直方图看起来大部分是正态分布 问题1:当我从所有2500个值而不是直接从50个x,y对引导时,我无法直觉到置信区间的改善是否太好而不真实:0.39的范围改善到了0.039。即10倍窄。当只有50个y值可用时,这是没有意义的——或者是吗?我开始怀疑在这种情况下的引导,或者我自己下面提供的R代码,或者我的理论理解。我应
testst <-function(tb,i) {
# Generate correlation between yStrat and xStrat.
# arg: tibble with about 2500 rows with about 50 strata
tbi <- tb[i, ] # Bootstrap sample
yTbi <- tbi %>% group_by(StratumID) %>%
summarise(yStrat=last(YPrevalence)) # All Y identical per stratum
# Could have used unique as well
# Apply mean to each stratum of bootstrapped draws from stratum
xTbi <- tbi %>% group_by(StratumID) %>%
summarise(xStrat = mean(XConsumption, na.rm = TRUE))
# Apply cor to fixed y values against each stratum mean
pears <- cor(x = xTbi$xStrat,
y = yTbi$yStrat,
method = "pearson")
return(c(pears))
}
# Executing on tibble tbd with ~2500 rows, ~50 strata. One fix Y-value per stratum
tbd$StratumID <- as_factor(tbd$StratumID)
bt <- boot(tbd,testst,R=10000,strata=tbd$StratumID)
bc<-boot.ci(bt,type="bca",index=1)
testst%
总结(xStrat=平均值(XConsumption,na.rm=TRUE))
#将cor应用于各层平均值的固定y值
梨谢谢你@ben bolker!你的回答让我想到了这篇论文:。它证实了,正如我所怀疑的那样,由于自相关性,我拥有的有效样本量实际上大大减少了。我认为我可以通过在每个时间序列上使用块引导来调整该方法。
当我有时间的时候,我也会查找引导残差
(顺便说一句:我的问题被转移到这个论坛上,我似乎不再拥有它了——“你没有问任何问题”——因此,由于缺乏“声誉”,我不能只添加一条评论”)你可能想引导剩余数据,而不是原始数据;这将有助于保留数据的结构,但需要付出一些额外的假设。此外,如果您想处理时间自相关,您可能需要一个块引导。