Binlenmiş gözlemlerin standart sapması


24

Menzil kutuları içinde sayım olarak saklanan bir örnek gözlem veri kümesine sahibim. Örneğin:

min/max  count
40/44    1
45/49    2
50/54    3
55/59    4
70/74    1

Şimdi, bunun ortalamasının bir tahminini bulmak oldukça açık. Basitçe, gözlem aralığı olarak her bir menzil kutusunun ortalamasını (veya ortancasını) kullanın ve ağırlık olarak sayımı hesaplayın:

x¯=1i=1Nwii=1Nwixi

Test davam için bu bana 53.82 veriyor.

Şimdi benim sorum şu, standart sapmayı (veya varyansı) bulmak için doğru yöntem nedir?

Araştırmam boyunca birkaç cevap buldum, ancak hangisinin varsa, veri kümem için hangisinin uygun olduğuna emin değilim. Ben şu formülü hem bulabildim burada başka bir soru üzerine ve rastgele NIST belgesi .

s2=i=1Nwi(xix¯)2(M1)Mi=1Nwi

Hangi test davası için 8.35 standart sapma verir. Ancak, ağırlıklı araçlarla ilgili Wikipedia makalesi her iki formülü de verir:

s2=i=1Nwi(i=1Nwi)2i=1Nwi2i=1Nwi(xix¯)2

ve

s2=1(i=1Nwi)1i=1Nwi(xix¯)2

Bu benim test durumum için sırasıyla 8.66 ve 7.83 standart sapma veriyor.

Güncelleştirme

Sheppard'ın Düzeltmelerine bakmayı öneren @whuber'a ve onlarla ilgili faydalı yorumlarınıza teşekkürler. Ne yazık ki, bulabildiğim kaynakları anlamakta zorlanıyorum (ve iyi örnekler bulamıyorum). Yine de özetlemek gerekirse, aşağıdakilerin taraflı sapma tahmini olduğunu anlıyorum:

s2=1i=1Nwii=1Nwi(xix¯)2

Ayrıca önyargı için yapılan standart düzeltmelerin çoğunun normal dağılımdaki doğrudan rastgele örnekler için olduğunu da biliyorum. Bu nedenle, benim için iki potansiyel sorun görüyorum:

  1. Bunlar bindirilmiş rasgele örnekler (ki, eminim Sheppard'ın Düzeltmelerinin geldiği yer.)
  2. Verilerin normal bir dağıtım için olup olmadığı bilinmiyor (Sheppard'ın Düzeltmelerini geçersiz kıldığını sanmıyorum.

Yani benim güncel sorum; Normal olmayan bir dağılımdaki "basit" ağırlıklı standart sapma / varyans formülünün neden olduğu önyargıyı ele almak için uygun yöntem nedir? En belirgin şekilde bindirilmiş verilerle ilgilidir.

Not: Aşağıdaki terimleri kullanıyorum:

  • s2 ağırlıklı varyanstır
  • N , gözlem sayısıdır. (yani kutuların sayısı)
  • M sıfır olmayan ağırlıkların sayısıdır. (yani sayıları olan kutu sayısı)
  • wi ağırlıklardır (yani sayımlar)
  • xi gözlemlerdir. (yani çöp kutusu)
  • x¯ ağırlıklı ortalamadır.

5
Bu sorunun standart çözümleri için Google "Sheppard'ın düzeltmeleri".
whuber

@whuber, korkarım google-foo'm beni mahvetti ... Sheppard'ın düzeltmelerinin nasıl kullanılacağı hakkında fazla bir şey bulamıyorum. Bildiğim kadarıyla söyleyebilirim, o verinin binned doğa için bir düzeltme, ve benim test durumda gibi kullanılacak , boyutudur kutuların (test durumumda, 4). Bu doğru mu? Her durumda, hala bulabildiğim şey hesaplamasında bana yardımcı görünmüyor . cs2s2c212cs2
chezy525

İkinci isabet benim de Google aramasında açık formülü (denklem 9) sağlar.
whuber

@whuber, birkaç ay oldu ve birkaç kez bağladığınız belgeyi okumayı denedim. Sanırım hala bir şeyleri özlüyorum, fakat en iyi bulduğum, listelediğim son denklemin tarafsız tahmin edici olarak doğru olduğudur. Bu doğru mu?
chezy525

Sheppard'ın düzeltmeleri normal olmadı.
Glen_b -Reinstate Monica

Yanıtlar:


18

Bu cevap iki çözüm sunar: Sheppard'ın düzeltmeleri ve maksimum olasılık tahmini. Her ikisi de, standart sapmanın bir tahminine yaklaşıyor: birinci için ve ikinci için (normal "tarafsız" tahmin ediciyle karşılaştırılabilecek şekilde ayarlandığında).7.697.707.69


Sheppard'ın düzeltmeleri

"Sheppard'ın düzeltmeleri", bindirilmiş verilerden hesaplanan momentleri ayarlayan formüllerdir (bunun gibi);

  • Verilerin sınırlı bir aralıkta desteklenen bir dağıtım tarafından yönetildiği varsayılmaktadır[a,b]

  • bu aralık, sırayla , nispeten küçük olan ortak eşit bölmelerine bölünür (çöp kutusu, tüm verilerin büyük bir bölümünü içermez)h

  • dağılım sürekli bir yoğunluk fonksiyonuna sahiptir.

Düzenli aralıklı noktalardaki integral değerlerinin doğrusal kombinasyonları açısından integrallere yaklaşan ve bu nedenle genel olarak uygulanabilir (ve sadece Normal dağılımlara değil), Euler-Maclaurin toplam formülünden türetilmiştir.

Kesinlikle bir normal dağılım konuşan rağmen değil son derece yakın bir yaklaşımla, sonlu bir aralıkta desteklenen öyle. Temel olarak, tüm olasılıkları ortalamanın yedi standart sapması içinde bulunur. Bu nedenle, Sheppard'ın düzeltmeleri, Normal dağılımdan geldiği varsayılan veriler için geçerlidir.

Sheppard'ın ilk iki düzeltmesi

  1. Bindirilmiş verinin ortalamasını verinin ortalaması için kullanın (yani, ortalama için düzeltme gerekmez).

  2. Verinin (yaklaşık) varyansını elde etmek için, toplanmış verinin varyansından 2/12 çıkarın .h2/12

nereden geliyor? Bu, uzunluğu boyunca dağılmış tek tip bir değişkenin varyansına eşittir . Sezgisel olarak, o zaman, Sheppard'ın ikinci an için düzeltmesi , verilerin bindirilmesinin - her bir bölmenin orta noktasıyla etkin bir şekilde değiştirilmesinin), ile arasında değişen, yaklaşık olarak eşit olarak dağılmış bir değer eklediğini, dolayısıyla şişirildiğini göstermektedir. 2/12 ile varyans .h2/12hh/2h/2h2/12

Hesaplamaları yapalım. Bunları Rgöstermek için kullanıyorum , sayıları ve kutuları belirleyerek başlayacağım:

counts <- c(1,2,3,4,1)
bin.lower <- c(40, 45, 50, 55, 70)
bin.upper <- c(45, 50, 55, 60, 75)

Sayılar için kullanılacak uygun formül , bölme genişliklerinin sayılarla verilen miktarlarla çoğaltılmasından gelir ; yani, bindirilmiş veri eşdeğerdir

42.5, 47.5, 47.5, 52.5, 52.5, 57.5, 57.5, 57.5, 57.5, 72.5

Bunların sayısı, ortalaması ve varyansı, verileri bu şekilde genişletmek zorunda kalmadan doğrudan hesaplanabilir, ancak: bir kutu orta nokta ve sayısı olduğunda , karelerin toplamına katkısı . Bu , soruya atıfta bulunulan Vikipedi formüllerinin ikinci yol açar .xkkx2

bin.mid <- (bin.upper + bin.lower)/2
n <- sum(counts)
mu <- sum(bin.mid * counts) / n
sigma2 <- (sum(bin.mid^2 * counts) - n * mu^2) / (n-1)

Ortalama ( mu) (düzeltmeye gerek yok) ve varyansı ( ) . (Bu kare kökü söz belirtildiği gibi). Çünkü, genişliği, ortak bölmesi , çıkartmanın varyans ve elde edilmesi, onun kare kökü alınır standart sapma için .1195/2254.32sigma2675/1161.367.83h=5h2/12=25/122.08675/1152/127.70


Maksimum Olabilirlik Tahminleri

Alternatif bir yöntem, maksimum olasılık tahminini uygulamaktır. Koltuğuna oturduğunda dağılımını yatan bir dağıtım işlevi vardır (parametrelere bağlı ve bin tahmin edilecek) içeren bağımsız bir dizi dışarı değerlerini, aynı değerleri dağıtılan sonra, (ek) Bu çöp kutusunun kütük olasılığına katkıFθθ(x0,x1]kFθ

logi=1k(Fθ(x1)Fθ(x0))=klog(Fθ(x1)Fθ(x0))

(bkz. MLE / Lognormally dağılım aralığının olasılığı ).

Tüm bölmeleri toplamak, günlük kümesi için . Her zamanki gibi, en aza indiren bir tahmini buluyoruz . Bu sayısal optimizasyon gerektirir ve için iyi başlangıç ​​değerleri sağlayarak hızlandırılır . Aşağıdaki kod Normal dağıtım için çalışıyor:Λ(θ)θ^Λ(θ)θR

sigma <- sqrt(sigma2) # Crude starting estimate for the SD
likelihood.log <- function(theta, counts, bin.lower, bin.upper) {
  mu <- theta[1]; sigma <- theta[2]
  -sum(sapply(1:length(counts), function(i) {
    counts[i] * 
      log(pnorm(bin.upper[i], mu, sigma) - pnorm(bin.lower[i], mu, sigma))
  }))
}
coefficients <- optim(c(mu, sigma), function(theta) 
  likelihood.log(theta, counts, bin.lower, bin.upper))$par

Elde edilen katsayılar .(μ^,σ^)=(54.32,7.33)

Unutmayın, Normal dağılımlar için, ( olasılıkla bindirilmiş ve verilmemiş) maksimum olasılık tahmini , varyansın çarpıldığı daha geleneksel "önyargılı" bir tahmin değil, verilerin popülasyonu SD'dir. . O zaman (karşılaştırma için) MLE değerini , . Bu, Sheppard'ın olan düzeltmesinin sonucu ile olumlu şekilde karşılaştırılıyor .n / ( n - 1 ) σ σn/(n1)σ7.70n/(n1)σ^=11/10×7.33=7.697.70

Varsayımları Doğrulamak

Bu sonuçları görselleştirmek için, takılı Normal yoğunluğunu bir histogramın üzerine çizebiliriz:

hist(unlist(mapply(function(x,y) rep(x,y), bin.mid, counts)),
     breaks = breaks, xlab="Values", main="Data and Normal Fit")
curve(dnorm(x, coefficients[1], coefficients[2]), 
      from=min(bin.lower), to=max(bin.upper), 
      add=TRUE, col="Blue", lwd=2)

şekil

Bazıları için bu uygun gibi görünmeyebilir. Bununla birlikte, veri kümesi küçük olduğu için (sadece değer), gözlemlerin dağılımı ile gerçek altta yatan dağılım arasında şaşırtıcı derecede büyük sapmalar meydana gelebilir.11

Verilerin bir Normal dağılım tarafından yönetildiği varsayımını (MLE tarafından yapılan) daha resmi olarak kontrol edelim. Yaklaşık bir uyumluluk testi bir testinden elde edilebilir : Tahmini parametreler her kutudaki beklenen veri miktarını gösterir; istatistik beklenen sayımları için gözlemlenen sayılarını karşılaştırır. İşte bir test :χ 2χ2χ2R

breaks <- sort(unique(c(bin.lower, bin.upper)))
fit <- mapply(function(l, u) exp(-likelihood.log(coefficients, 1, l, u)),
              c(-Inf, breaks), c(breaks, Inf))
observed <- sapply(breaks[-length(breaks)], function(x) sum((counts)[bin.lower <= x])) -
  sapply(breaks[-1], function(x) sum((counts)[bin.upper < x]))
chisq.test(c(0, observed, 0), p=fit, simulate.p.value=TRUE)

Çıktı

Chi-squared test for given probabilities with simulated p-value (based on 2000 replicates)

data:  c(0, observed, 0) 
X-squared = 7.9581, df = NA, p-value = 0.2449

Yazılım bir permütasyon testi yaptı (test istatistiği tam olarak ki-kare dağılımını takip etmediğinden gereklidir: serbestlik derecelerinin nasıl anlaşılacağı konusundaki analizime bakın ). Küçük olmayan p değeri, normallikten ayrılma konusunda çok az kanıt gösterir: Maksimum olabilirlik sonuçlarına güvenmek için nedenlerimiz vardır.0.245

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.