일부 공통 값에 대해 치우침이 심한 383 개의 표본이 있는데 평균의 95 % CI를 어떻게 계산합니까? 내가 계산 한 CI는 꺼져있는 것처럼 보입니다. 내가 히스토그램을 만들 때 데이터가 곡선처럼 보이지 않기 때문입니다. 그래서 나는 잘 이해하지 못하는 부트 스트랩과 같은 것을 사용해야한다고 생각합니다.
일부 공통 값에 대해 치우침이 심한 383 개의 표본이 있는데 평균의 95 % CI를 어떻게 계산합니까? 내가 계산 한 CI는 꺼져있는 것처럼 보입니다. 내가 히스토그램을 만들 때 데이터가 곡선처럼 보이지 않기 때문입니다. 그래서 나는 잘 이해하지 못하는 부트 스트랩과 같은 것을 사용해야한다고 생각합니다.
답변:
예, 부트 스트랩은 평균에 대한 신뢰 구간을 얻는 대안입니다 (방법을 이해하려면 약간의 노력을 기울여야합니다).
아이디어는 다음과 같습니다.
마지막 단계와 관련하여 몇 가지 유형의 부트 스트랩 신뢰 구간 (BCI)이 있습니다. 다음은 다양한 유형의 BCI 속성에 대한 설명입니다.
http://staff.ustc.edu.cn/~zwp/teach/Stat-Comp/Efron_Bootstrap_CIs.pdf
http://www.tau.ac.il/~saharon/Boot/10.1.1.133.8405.pdf
여러 BCI를 계산하고 그 사이의 가능한 불일치를 이해하는 것이 좋습니다.
R에서는 다음과 같이 R 패키지 'boot'를 사용하여이 아이디어를 쉽게 구현할 수 있습니다.
rm(list=ls())
# Simulated data
set.seed(123)
data0 = rgamma(383,5,3)
mean(data0) # Sample mean
hist(data0) # Histogram of the data
library(boot)
# function to obtain the mean
Bmean <- function(data, indices) {
d <- data[indices] # allows boot to select sample
return(mean(d))
}
# bootstrapping with 1000 replications
results <- boot(data=data0, statistic=Bmean, R=1000)
# view results
results
plot(results)
# get 95% confidence interval
boot.ci(results, type=c("norm", "basic", "perc", "bca"))
로그 정규 데이터의 경우 Olsson (2005) 은 'modified Cox method'를 제안합니다.
R 함수는 다음과 같습니다.
ModifiedCox <- function(x){
n <- length(x)
y <- log(x)
y.m <- mean(y)
y.var <- var(y)
my.t <- qt(0.975, df = n-1)
my.mean <- mean(x)
upper <- y.m + y.var/2 + my.t*sqrt(y.var/n + y.var^2/(2*(n - 1)))
lower <- y.m + y.var/2 - my.t*sqrt(y.var/n + y.var^2/(2*(n - 1)))
return(list(upper = exp(upper), mean = my.mean, lower = exp(lower)))
}
Olsson의 논문에서 예제를 반복
CO.level <- c(12.5, 20, 4, 20, 25, 170, 15, 20, 15)
ModifiedCox(CO.level)
$upper
[1] 78.72254
$mean
[1] 33.5
$lower
[1] 12.30929