繁体   English   中英

在 R 中使用 Bootstrapping 获取 Phi 统计数据的置信区间

[英]Get Confidence Intervals for Phi statistics using Bootstrapping in R

我想在 R 软件中使用引导程序(10,000 次迭代)获得与 Phi 统计相关的置信区间。

我正在使用“psych”package 来计算 phi 统计数据。 我一直在研究如何让 CI 与 phi 统计数据相关联。

我的数据和获取phi统计的代码如下:

library(psych)

Type_of_Cigar = c(rep("0", 16), rep("1", 16))

Cancer = c(rep(c("0", "0", "0", "0"),4),
             rep(c("1", "1", "1", "0"),4))

Table1 <- xtabs(~ Type_of_Cigar + Cancer)

Table1

phi(Table1, digits=5)
#0.7746

你可以用boot package来做到这一点。首先,将数据保存为数据框。

Type_of_Cigar = c(rep("0", 16), rep("1", 16))

Cancer = c(rep(c("0", "0", "0", "0"),4),
           rep(c("1", "1", "1", "0"),4))


dat <- data.frame(Type_of_Cigar = Type_of_Cigar, 
                  Cancer = Cancer)

然后,您需要编写一个 function,其前两个 arguments 是数据和我调用inds的自举观测值。 function 应该获取数据,根据inds对它们进行子集化并计算一些值,在本例中为 phi。 您将需要使用子集数据来生成任何中间结果(例如下面的tab )。

boot.fun <- function(data, inds){
  tab <- xtabs(~ Type_of_Cigar + Cancer, 
               data=data[inds, ])
  psych::phi(tab)
}

然后,您可以为原始数据和上面编写的 function 调用boot()

library(boot)
out <- boot(dat, statistic=boot.fun, R=10000)

然后,您可以使用boot.ci() function 来计算置信区间:

boot.ci(out)
# BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
# Based on 10000 bootstrap replicates
# 
# CALL :
#   boot.ci(boot.out = out)
# 
# Intervals :
#   Level      Normal              Basic
# 95%   ( 0.5812,  0.9509 )   ( 0.6000,  0.9500 )
# 
# Level     Percentile            BCa
# 95%   ( 0.59,  0.94 )   ( 0.52,  0.92 )
# Calculations and Intervals on Original Scale
# Warning message:
#   In boot.ci(out) : bootstrap variances needed for studentized intervals

根据下面的评论,我应该说百分位数和 BCa(偏差校正加速)间隔是依赖于引导抽样分布中的值的间隔。 对于 95% 的置信区间,百分位数区间对 bootstrap 统计量进行排序,并将第 2.5 个和第 97.5 个百分位数的值作为置信区间。 BCa 区间识别不同的百分位数,这些百分位数解释了 bootstrap 分布中的偏差和非正态性。 这些不一定是第 2.5 个和第 97.5 个百分位数,但区间将具有大约 95% 的覆盖率。 百分位数和 BCa 间隔也都与转换相关。 也就是说,对于具有置信界限p1p2的某些参数p ,您可以通过使用相同的 function f(p1)f(p2)转换置信界限来获得转换f(p)的置信区间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM