いくつかの一般的な値に大きな偏りがある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"))
別の標準的な代替方法は、ウィルコクソン検定でCIを計算することです。R
wilcox.test(your-data, conf.int = TRUE, conf.level = 0.95)
残念ながら、平均ではなく(擬似)中央値の周りのCIが得られますが、データが非常に非正常な場合、中央値がより有益な指標になる可能性があります。
対数正規データの場合、Olsson(2005)は「修正Coxメソッド」を提案しています
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