预测数据的自举置信区间显示重叠,而固定效应则不然

问题描述 投票:0回答:1

注意:可能更适合交叉验证,如果需要的话我可以把它移到那里,但我想我会先在这里尝试,因为它可能与r相关。

我正在使用非线性混合模型与

nlme
比较两组之间的生长曲线参数估计。我使用
boot_nlme()
中的
nlraa
来引导模型参数估计和预测数据的置信区间。

下面是我正在使用的代码,但带有来自

penguin.data
FlexParamCurve
。它没有完全相同的问题,但以可用的格式提供了代码。如果这还不够,我可以用我自己的数据进行编辑。

对于我的个人数据,我的问题源于预测数据的 CI 在渐近线处重叠(即显示没有统计差异),而根据模型和自举参数估计 CI,它们不重叠(即显示统计差异)。

我的问题是: 为什么模型参数估计的自举 CI 会与同一模型的自举预测数据 CI 产生争议?难道这是我没有完全理解bootstrap方法?或者可能还有其他我遗漏的东西(与代码相关)?

任何帮助/见解将不胜感激。

library(FlexParamCurve) #loads dataset and  package 'nlme'
library(ggplot2)
library(nlraa)
library(boot)
library(dplyr)


VarFunc.Auto<-varPower(form=~fitted(.))

##creating model

richards.func <- function(age, A, Ti, k, d){
  A * (1 + (d - 1) * exp(( (-k) * (age - Ti)) / ( d ^ ( d / (1 - d))))) ^ (1 / (1 - d))
}

ggplot(penguin.data, aes (x = ckage, y = weight, color = year)) +
  geom_smooth()

#fixed asymptote
mod <- nlme(weight ~ SSlogis(ckage, Asym, R0, lrc),
            data = penguin.data,
            fixed= list(Asym ~ year,
                        R0 ~ year,
                        lrc ~ year),
            random = Asym ~ 1,
            start = c(Asym = 1000, 0,
                      R0 = 21, 0,
                      lrc = 1, 0),
            control = list(maxIter = 100),
            na.action = na.pass)


summary(mod)

peng.mdiff <- function(x, ckage = seq(0, 80, length.out = 500)){
  ndat <- expand.grid(ckage = ckage, 
                      year = c('2000','2002'), 
                     nest = NA,
                     bandid = NA,
                      stringsAsFactors = TRUE)
  
  prd <- predict(x, newdata = ndat, level = 0)

}
set.seed(123)
#this takes a few minutes to run on my computer
system.time(peng.bt <- boot_nlme(mod, peng.mdiff, R = 500, cores = 3))
set.seed(123)
system.time(peng.bt.ci <- confint(peng.bt, level = 0.95))


prd.df <- as.data.frame(peng.bt.ci)

prd.df <- prd.df %>%
  rename_at('2.5 %', ~'lower.ci') %>%
  rename_at('97.5 %', ~'upper.ci')

ndat1 <- with(peng.dat02,
              expand.grid(
                ckage=seq(0, 80 , length.out=500),
                year = c('2000','2002'), 
                nest = NA,
                bandid = NA
              ))

newX <- ndat1 %>%
  mutate(prd = predict_nlme(mod, newdata = ndat1, level = 0))

comb.df1 <- cbind(prd.df, ndat1, 'prd' = newX$prd)

ci.plot <- ggplot() +
  geom_ribbon(comb.df1, mapping = aes(x = ckage, ymin = lower.ci, ymax = upper.ci, fill = year ), alpha = 0.50) +
  geom_line(data = newX, aes(x = ckage, y = prd, group = year), color = 'black', alpha = 0.75)

ci.plot
r statistics confidence-interval statistics-bootstrap nlme
1个回答
0
投票

对于我的个人数据,我的问题源于预测数据的 CI 在渐近线处重叠(即显示没有统计差异),而根据模型和自举参数估计 CI,它们不重叠(即显示统计差异)。

重叠的置信区间并不意味着没有统计学上的显着差异。置信区间可能重叠,但仍可能存在统计上的显着差异。也就是说,95% 的置信区间仍然可以重叠,并且差异在 5% 的水平上显着不同。

详情请参阅这里这里这里这里这里

© www.soinside.com 2019 - 2024. All rights reserved.