2017-07-15 72 views
0

我试图使用非参数引导来引导可靠性估计 我已经写了下面的代码创建模型,然后引导1000次以获得两个可靠性统计信息Alpha和Omega 我是能够与置信区间得到Alpha和欧米茄为第一构建:visual =~ x1 + x2 + x3但看到没有办法访问它的其他结构textualspeed 当我运行的引导功能,我看到的结果为所有的自举以获得置信区间使用R

# bootstrapping with 1000 replications 
results <- boot(data=data, statistic=reliability, R=500, formula=HS.model,parallel = 'snow') 

> results$t0 

     visual textual  speed  total 
alpha 0.6261171 0.8827069 0.6884550 0.7604886 
omega 0.6253180 0.8851754 0.6877600 0.8453351 
omega2 0.6253180 0.8851754 0.6877600 0.8453351 
omega3 0.6120052 0.8850608 0.6858417 0.8596204 
avevar 0.3705589 0.7210163 0.4244883 0.5145874 

下面是我承认shodd尝试。谁能帮

library(lavaan) 
library(semTools) 
library(boot) 

data <- HolzingerSwineford1939 

HS.model <- 'visual =~ x1 + x2 + x3 
textual =~ x4 + x5 + x6 
speed =~ x7 + x8 + x9 ' 

# function to reliability stats 
reliability <- function(formula, data, indices) { 
    data = data 
    d <- data[indices,] # allows boot to select sample 
    fit <- cfa(HS.model, data=d) 
    semTools::reliability(fit) 
} 

# bootstrapping with 500 replications 
results <- boot(data=data, statistic=reliability, R=500, formula=HS.model,parallel = 'snow') 

# Get the confidence intervals 
conf_interval_alpha <- boot.ci(results, type="bca", index = 1) 

# Retrieve the Alpha and confidence intervals 
alpha <- conf_interval_alpha$t0 
alpha.ci <- conf_interval_alpha$bca[,c(4,5)] 

# Retrieve the Omega and confidence intervals 
conf_interval_omega <- boot.ci(results, type="bca", index = 2) 
omega <- conf_interval_omega$t0 
omega.ci <- conf_interval_omega$bca[,c(4,5)] 

谢谢您的帮助

+0

基本调试...在新会话中执行此操作...并读取错误消息。我遇到的第一个错误是:ERsum(beta [i,],tau.found.sym.optim,m + 1,m + n)中的错误: dims [product 666]与对象的长度不匹配[999] 另外:警告信息: 在y - X%*%测试版: 较长的物体长度不是较短的物体长度的倍数 –

+0

对不起,是的,我现在看到它。我会立即更新代码 –

回答

0

你首先需要了解一下什么是从reliability返回与完整数据集:

> reliability(data=data) 
      visual textual  speed  total 
alpha 0.6261171 0.8827069 0.6884550 0.7604886 
omega 0.6253180 0.8851754 0.6877600 0.8453351 
omega2 0.6253180 0.8851754 0.6877600 0.8453351 
omega3 0.6120052 0.8850608 0.6858417 0.8596204 
avevar 0.3705589 0.7210163 0.4244883 0.5145874 

然后,你需要看到的是返回什么from your boot-call:

> str(results) 
List of 11 
$ t0  : num [1:5, 1:4] 0.626 0.625 0.625 0.612 0.371 ... 
    ..- attr(*, "dimnames")=List of 2 
    .. ..$ : chr [1:5] "alpha" "omega" "omega2" "omega3" ... 
    .. ..$ : chr [1:4] "visual" "textual" "speed" "total" 
$ t  : num [1:500, 1:20] 0.594 0.607 0.613 0.669 0.621 ... 
$ R  : num 500 
$ data  :'data.frame': 301 obs. of 15 variables: 
    ..$ id : int [1:301] 1 2 3 4 5 6 7 8 9 11 ... 
    ..$ sex : int [1:301] 1 2 2 1 2 2 1 2 2 2 ... 
    ..$ ageyr : int [1:301] 13 13 13 13 12 14 12 12 13 12 ... 
    ..$ agemo : int [1:301] 1 7 1 2 2 1 1 2 0 5 ... 
    ..$ school: Factor w/ 2 levels "Grant-White",..: 2 2 2 2 2 2 2 2 2 2 ... 
    ..$ grade : int [1:301] 7 7 7 7 7 7 7 7 7 7 ... 
    ..$ x1 : num [1:301] 3.33 5.33 4.5 5.33 4.83 ... 
    ..$ x2 : num [1:301] 7.75 5.25 5.25 7.75 4.75 5 6 6.25 5.75 5.25 ... 
    ..$ x3 : num [1:301] 0.375 2.125 1.875 3 0.875 ... 
    ..$ x4 : num [1:301] 2.33 1.67 1 2.67 2.67 ... 
    ..$ x5 : num [1:301] 5.75 3 1.75 4.5 4 3 6 4.25 5.75 5 ... 
    ..$ x6 : num [1:301] 1.286 1.286 0.429 2.429 2.571 ... 
    ..$ x7 : num [1:301] 3.39 3.78 3.26 3 3.7 ... 
    ..$ x8 : num [1:301] 5.75 6.25 3.9 5.3 6.3 6.65 6.2 5.15 4.65 4.55 ... 
    ..$ x9 : num [1:301] 6.36 7.92 4.42 4.86 5.92 ... 
$ seed  : int [1:626] 403 330 1346657232 1136157038 -874329217 857221657 1850455833 952027245 2020402269 -1198488986 ... 
$ statistic:function (formula, data, indices) 
    ..- attr(*, "srcref")=Class 'srcref' atomic [1:8] 1 16 6 1 16 1 1 6 
    .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x7fa57918d430> 
$ sim  : chr "ordinary" 
$ call  : language boot(data = data, statistic = reliability, R = 500, formula = HS.model, parallel = "snow") 
$ stype : chr "i" 
$ strata : num [1:301] 1 1 1 1 1 1 1 1 1 1 ... 
$ weights : num [1:301] 0.00332 0.00332 0.00332 0.00332 0.00332 ... 
- attr(*, "class")= chr "boot" 

.... so results$t0有三个模型参数估计值。

+0

嗨@ 42-,谢谢你的回复。我能够拉动'omega'和'alpha'点的统计数据,但我也想获得当我运行代码'boot.ci(结果,类型=“bca”,索引时无法看到的置信区间= 1)'所有三个构造; 'visual','textual'和'speed' –

+0

阅读'?boot.ci'的帮助页面,并特别注意“index”参数。使用默认值,您只能获得第一个参数的CI估计值。 –