調和平均の標準偏差を計算できますか?


12

調和平均の標準偏差を計算できますか?算術平均の標準偏差を計算できることを理解していますが、調和平均がある場合、標準偏差またはCVをどのように計算しますか?

回答:


13

調和平均H確率変数のは、X1,...,Xnは次のように定義されます

H=11ni=1n1Xi

分数の瞬間を取ることは厄介なビジネスなので、代わりに私は1/H作業することを好みます。今

1H=1ni=1n1Xi

Usinの中心極限定理はすぐにわかります

n(H1EX11)N(0,VarX11)

もちろん、変数aの算術平均Y i = X 1 iで簡単に作業できるため、VarX11<およびXiはiid です。Yi=Xi1

関数g(x)=x1にデルタ法を使用すると、

n(H(EX11)1)N(0,VarX11(EX11)4)

この結果は漸近的ですが、単純なアプリケーションではそれで十分かもしれません。

更新 @whuberが正しく指摘しているように、単純なアプリケーションは誤称です。中心極限定理は、VarX11が存在する場合にのみ成立します。これは非常に制限的な仮定です。

X1,...,Xn

H^=11ni=1n1Xi

EX11Var(X11)

μ^R=1ni=1n1Xiσ^R2=1ni=1n(1XiμR)2

R

H^

sd(H^)=σ^R2nμ^R4

[2,3]

hm <- function(x)1/mean(1/x)
sdhm <- function(x)sqrt((mean(1/x))^(-4)*var(1/x)/length(x))

n<-1000

nn <- c(10,30,50,100,500,1000,5000,10000)

N<-1000

mc<-foreach(n=nn,.combine=rbind) %do% {

    rr <- matrix(runif(n*N,min=2,max=3),nrow=N)

    c(n,mean(apply(rr,1,sdhm)),sd(apply(rr,1,sdhm)),sd(apply(rr,1,hm)))

}
colnames(mc) <- c("n","DeltaSD","sdDeltaSD","trueSD")

> mc
             n     DeltaSD    sdDeltaSD      trueSD
result.1    10 0.089879211 1.528423e-02 0.091677622
result.2    30 0.052870477 4.629262e-03 0.051738941
result.3    50 0.040915607 2.705137e-03 0.040257673
result.4   100 0.029017031 1.407511e-03 0.028284458
result.5   500 0.012959582 2.750145e-04 0.013200580
result.6  1000 0.009139193 1.357630e-04 0.009115592
result.7  5000 0.004094048 2.685633e-05 0.004070593
result.8 10000 0.002894254 1.339128e-05 0.002964259

サイジングされたサンプルのNサンプルをシミュレートしましたn。各nサイズのサンプルについて、標準推定の推定値を計算しました(関数sdhm)。次に、これらの推定の平均と標準偏差を、各サンプルについて推定された調和平均のサンプル標準偏差と比較します。これは、おそらく調和平均の真の標準偏差であるべきです。

ご覧のとおり、中程度のサンプルサイズでも結果は非常に良好です。もちろん、均一な分布は非常に行儀のよい分布であるため、結果が良好であることは当然のことです。他のディストリビューションの動作を調査するために誰かに任せます。コードは非常に簡単に適応できます。

注:この回答の以前のバージョンでは、デルタ法の結果にエラーがあり、不正確な分散がありました。


2
@mpiktasこれは良いスタートであり、CVが低いときにいくつかのガイダンスを提供します。しかし、実際的で単純な状況であっても、CLTが適用されるかどうかは明確ではありません。多くの変数の逆数は、それらの値がゼロに近い可能性のあるかなりの確率がある場合、有限の2次モーメントまたは1次モーメントさえも持たないと予想します。また、ゼロに近い逆数の微分係数が大きくなる可能性があるため、デルタ法が適用されないことも期待します。したがって、メソッドが機能する可能性のある「単純なアプリケーション」をより正確に特徴付けるのに役立ちます。ところで、「D」とは何ですか?
whuber

DX=E(XEX)2

DX

DVar[X]

1
EL LehmannとJuliet Popper Shafferによる論文 "Inverted Distributions"は、反転確率変数の分布に関する興味深い読み物です。
emakalic

2

xi1/xi

主な欠点は、計算が大きく歪んだ基礎となる分布に対して良い信頼区間を生成しないことです。これは、あらゆる汎用的な方法で問題になる可能性があります。調和平均は、データセット内の単一の小さな値の存在にも敏感です。

20n=12420

図

ここでR、シミュレーションと数字のコードが。

k <- 5             # Gamma parameter
n <- 12            # Sample size
hm <- k-1          # True harmonic mean
set.seed(17)

t.crit <- -qt(0.05/2, n-1)
par(mfrow=c(4, 5))
for(i in 1:20) {
  #
  # Generate a random sample.
  #
  x <- rgamma(n, k)
  #
  # Estimate the harmonic mean.
  #
  fit <- lm(x ~ 1, weights=1/x)
  beta <- coef(summary(fit))[1, ]
  message("Harmonic mean estimate is ", signif(beta["Estimate"], 3), 
          " +/- ", signif(beta["Std. Error"], 3))
  #
  # Plot the results.
  #
  covers <- abs(beta["Estimate"] - hm) <= t.crit*beta["Std. Error"]
  plot(ecdf(x), main="Empirical CDF", sub=ifelse(covers, "", "***"))
  rect(beta["Estimate"] - t.crit*beta["Std. Error"], 0, 
       beta["Estimate"] + t.crit*beta["Std. Error"], 1.25, 
       border=NA, col=gray(0.5, alpha=0.10))
  abline(v = hm, col="Blue", lwd=2)
  abline(v = beta["Estimate"], col="Red", lty=3, lwd=2)
}

1

以下は指数r.vの例です。

n

S=11ni=1nXi

nXiExp(λ)n

i=1nXiGamma(n,θ)

θ=1λ

1nGamma(n,θ)Gamma(n,θn)

、の分布はS

SInvGamma(n,nθ)

このrvの分散(および標準偏差)はよく知られています。たとえば、こちらを参照してください。


3
調和平均の定義がウィキペディアと
mpiktas

指数関数を使用することは、問題を理解するための良いアプローチです。
whuber

1
すべての希望が完全に失われるわけではありません。Xi〜Exp(\ lambda)の場合、Xi〜Gamma(1、\ lambda)なので、1 / Xi〜InvGamma(1、1 / \ lambda)。次に、「V。Witkovsky(2001)逆ガンマ変数の線形結合の分布の計算、Kybernetika 37(1)、79-90」を使用して、どこまで到達するかを確認してください。
トリスタン


0

σ=Ni=1N(1x^1xi)2,

x^=N1xix^=N1xix

1N(x^xi)2x^x^x^=μ=1Nxi

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.