적합 모델에서 값을 부트 스트랩하려고합니다 (최대 곡선 기울기). 생각보다 효율적 일 수 있다고 생각하지만, 일반적으로 효과가 있다고 생각합니다 (효율성을 높이는 방법에 대한 제안도 환영 할 것입니다). 내가 가지고있는 문제는 최종 샘플 값이있을 때입니다. Inf
은 신뢰 구간을 얻지 못하게하는 셀 중 하나에 있습니다. 이것이 부트 스트랩 문제인지 아니면 코드화 된 방식인지 간단하지 않습니다. 샘플 코드 :최종 예상치에서 "Inf"가있는 부트 스트랩 신뢰 구간 - boot/dplyr 패키지
library(boot)
library(dplyr)
df <- data.frame (id=rep(1:10,each=10),
time1=rep(1:10,10),
ff=runif(100, 100, 150),
gg=runif(100, 120, 170))
set.seed(10)
#function
maxx<-function(formula, data,varr,indices) {
data <- data[indices,] # allows boot to select sample
fit <- lm(formula, data=data)
data$fit<-fit$fitted.values
data<-filter(data,time1>5)
data1<-data %>% group_by_(varr) %>% mutate(derivative = c(NA,diff(fit)/diff(time1))) %>%
group_by(id) %>%
slice(which.max(derivative)) %>%
ungroup() %>%
as.data.frame()
return(mean(data1$derivative,na.rm = TRUE))
}
res <- boot(data=df, statistic=maxx,
R=10, formula=ff~gg,varr="id")
이 작동하지만 셀 중 하나에 의한 Inf
에 SE를 얻을 수
R>res
ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = df, statistic = maxx, R = 10, formula = ff ~ gg,
varr = "id")
Bootstrap Statistics :
original bias std. error
t1* 0.1726803 Inf NaN
res
res$t
우리는 그것을 더 탐구하여 볼 수 있습니다 : 어쩌면
R>res$t
[,1]
[1,] 0.50399242
[2,] 0.52171509
[3,] 0.04568459
[4,] 1.41317481
[5,] 0.39741115
[6,] 0.10703703
[7,] 0.52206909
[8,] 0.91624253
[9,] Inf
[10,] 0.05076168
R>boot.ci(res, type="normal")
Error in ci.out[[4L]] : subscript out of bounds
를 I 뭔가 빠졌지 만 return(mean(data1$derivative,na.rm = TRUE))
은 NA
으로 문제를 해결할 것이라고 생각했습니다. 누구든지 제발 어떤 제안 있나요? 나는 이것이 작은 수정이라고 짐작하고있다. 부트 스트랩을 실행하는 것은 이번이 처음입니다. 그래서 내가 순진한 것을하고 있다면 사과드립니다. 누군가가 간단한 모델을 제시하는 대신 큰 임의 효과 모델을 실행하면서 전체 코드를보다 효율적으로 만드는 방법을 알고 있다면 큰 도움이 될 것입니다. 감사합니다