고조파 평균에 대한 표준 편차를 계산할 수 있습니까?


12

고조파 평균에 대한 표준 편차를 계산할 수 있습니까? 산술 평균에 대해 표준 편차를 계산할 수 있지만 고조파 평균이있는 경우 표준 편차 또는 CV를 어떻게 계산합니까?

답변:


13

랜덤 변수 의 고조파 평균 는 다음과 같이 정의됩니다.HX1,...,Xn

H=11ni=1n1Xi

분수의 순간을 취하는 것은 지저분한 일이므로 대신 작업을 선호합니다 . 지금1/H

1H=1ni=1n1Xi
.

중앙 제한 정리를 사용하면 즉시 얻을 수 있습니다.

n(H1EX11)N(0,VarX11)

물론 및 가 iid 인 경우 변수의 산술 평균 간단하게 작업하기 때문에 iid 입니다.VarX11<XiYi=Xi1

이제 함수 델타 방법을 사용 하면g(x)=x1

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

이 결과는 점근 적이지만 간단한 응용 프로그램에서는 충분할 수 있습니다.

업데이트 정당하게 지적 @whuber으로, 간단한 응용 프로그램은 잘못된 것입니다. 중앙 제한 정리는 이 존재하는 경우에만 적용 이는 상당히 제한적인 가정입니다.VarX11

업데이트 2 표본이있는 경우 표준 편차를 계산하려면 표본 모멘트를 공식에 연결하면됩니다. 따라서 샘플 의 경우 고조파 평균의 추정치는 다음과 같습니다.X1,...,Xn

H^=11ni=1n1Xi

샘플 모멘트 및 각각 다음과 같습니다.EX11Var(X11)

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

여기서 은 상호를 나타냅니다.R

마지막으로 의 표준 편차에 대한 대략적인 공식 은 다음과 같습니다.H^

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

간격으로 균일하게 분포 된 랜덤 변수에 대한 일부 Monte-Carlo 시뮬레이션을 실행했습니다 . 코드는 다음과 같습니다.[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가 적용되는지 확실하지 않습니다. 나는 많은 변수의 역수가 유한 한 초 또는 첫 순간을 갖지 않을 것으로 기대할 것이다. 또한 델타 방법이 거의 0에 가까운 역수의 파생물로 인해 적용되지 않을 것으로 예상합니다. 따라서 분석법이 작동 할 수있는 "단순 응용 프로그램"을보다 정확하게 특성화하는 데 도움이 될 수 있습니다. BTW, "D"란 무엇입니까?
whuber

@whuber, D는 분산, 입니다. 간단한 적용으로 나는 분산과 상호 평균이 존재하는 것을 의미했습니다. 값이 0에 가까울 확률이 높은 확률 변수의 경우 역수는 평균을 갖지 않을 수도 있습니다. 그러나 원래 질문에 대한 대답은 '아니오'입니다. OP는 표준 편차가 존재할 때 표준 편차를 계산할 수 있는지 묻습니다. 그것은 많은 무작위 변수를 위해 분명히 아닙니다. DX=E(XEX)2
mpiktas

@ whuber, 호기심에서 BTW 는 나에게 꽤 표준 표기법이지만 러시아 확률 학교에서 왔다고 말할 수도 있습니다. "자본 서부"에서 그렇게 흔하지 않은가? :)DX
mpiktas

@mpiktas 나는이 변화에 대한이 표기법을 본 적이 없다. 내 첫 반응은 가 미분 연산자라는 것입니다! 표준 표기법은 와 같은 니모닉 입니다. V a r [ X ]DVar[X]
whuber

1
EL Lehmann과 Juliet Popper Shaffer의 논문 "Inverted Distributions"는 반전 된 랜덤 변수의 분포에 관한 흥미로운 내용입니다.
emakalic

2

관련 질문에 대한 나의 대답 은 양의 데이터 세트의 고조파 평균이 가중 최소 제곱 (WLS) 추정치 (가중치 ) 임을 나타냅니다 . 따라서 WLS 방법을 사용하여 표준 오류를 계산할 수 있습니다. 이는 단순성, 일반성 및 해석 성을 비롯하여 회귀 계산에서 가중치를 허용하는 통계 소프트웨어에 의해 자동으로 생성되는 이점을 포함합니다. 1 / x ixi1/xi

가장 큰 단점은 계산이 치우친 기본 분포에 대해 신뢰 구간이 양호하지 않다는 것입니다. 그것은 일반적인 방법으로 문제가 될 수 있습니다. 고조파 평균은 데이터 세트에 작은 값이 하나라도 있다는 것에 민감합니다.

설명하기 위해, 여기에 Gamma (5) 분포에서 크기가 인 독립적으로 생성 된 샘플의 경험적 분포가 있습니다 (이는 약간 기울어 짐). 파란색 선은 실제 고조파 평균 ( 같음 )을 표시하고 빨간색 점선은 가중 최소 제곱 추정값을 나타냅니다. 파란색 선 주위의 수직 회색 밴드는 고조파 평균에 대한 대략적인 양면 95 % 신뢰 구간입니다. 이 경우, 모든 샘플에서 CI는 실제 고조파 평균을 포함합니다. 이 시뮬레이션 (임의의 시드 포함)을 반복하면 이러한 작은 데이터 집합의 경우에도 적용 범위가 의도 한 95 % 속도에 가깝습니다.n = 12 4 2020n=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

당신이 가정 지수 확률 변수의 IID 샘플 . 지수 변수 의 합은 감마 분포를 따릅니다.nXiExp(λ)n

i=1nXiGamma(n,θ)

여기서 입니다. 우리는 또한θ=1λ

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

따라서 의 분포는S

SInvGamma(n,nθ)

이 rv의 분산 (및 표준 편차)은 잘 알려져 있습니다 (예 : 여기 참조) .


3
조화 평균에 대한 정의가 Wikipedia
mpiktas

지수를 사용하는 것이 문제를 이해하는 좋은 방법입니다.
whuber

1
모든 희망이 완전히 사라지지는 않습니다. Xi ~ Exp (\ lambda)이면 Xi ~ Gamma (1, \ lambda)이므로 1 / Xi ~ InvGamma (1, 1 / \ lambda)입니다. 그런 다음 "V. Witkovsky (2001) 반전 감마 변수의 선형 조합 분포 계산, Kybernetika 37 (1), 79-90"을 사용하여 얼마나 멀리 도달했는지 확인하십시오!
tristan

0

mpiktas의 CLT에 에 대한 경계 분산이 필요하다는 우려가 있습니다. 가 0 근처에서 양의 밀도를 가질 때 에 미친 꼬리가 있다는 것은 사실입니다 . 그러나 많은 응용에서 조화 평균 합니다. 여기서, 에 의해 제한되는 당신에게 당신이 원하는 모든 순간을 제공!1/X1/XXX11/X1


0

내가 제안하는 것은 표준 편차 대신 다음 공식을 사용하는 것입니다.

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

여기서 입니다. 이 공식에 대한 좋은 점은 일 때 최소화 되고 표준 편차와 동일한 단위를 갖는다는 것입니다. 와 같은 단위 ).x^=N1xix^=N1xix

이는 표준 편차와 유사합니다. 이는 가 이상으로 최소화 될 때 걸리는 . 가 평균 인 경우 최소화됩니다 : .XXX=μ=11N(x^xi)2x^x^x^=μ=1Nxi

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.