Deviazione standard delle osservazioni integrate


25

Ho un set di dati di osservazioni campione, memorizzate come conteggi all'interno dei contenitori di intervallo. per esempio:

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

Ora, trovare una stima della media da questo è abbastanza semplice. Basta usare la media (o mediana) di ciascun intervallo come osservazione e il conteggio come un peso e trovare la media ponderata:

x¯=1i=1Nwii=1Nwixi

Per il mio caso di test, questo mi dà 53,82.

La mia domanda ora è: qual è il metodo corretto per trovare la deviazione standard (o varianza)?

Attraverso la mia ricerca, ho trovato diverse risposte, ma non sono sicuro che, se del caso, sia effettivamente appropriato per il mio set di dati. Sono stato in grado di trovare la seguente formula sia su un'altra domanda qui che su un documento NIST casuale .

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

Il che dà una deviazione standard di 8,35 per il mio caso di test. Tuttavia, l'articolo di Wikipedia sui mezzi ponderati fornisce sia la formula:

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

e

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

Che danno deviazioni standard di 8,66 e 7,83, rispettivamente, per il mio caso di test.

Aggiornare

Grazie a @whuber che ha suggerito di esaminare le correzioni di Sheppard e i tuoi commenti utili relativi a loro. Sfortunatamente, ho difficoltà a capire le risorse che posso trovare al riguardo (e non riesco a trovare buoni esempi). Ricapitolando, capisco che quanto segue è una stima distorta della varianza:

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

Capisco anche che la maggior parte delle correzioni standard per il bias sono per campioni casuali diretti di una distribuzione normale. Pertanto, vedo due potenziali problemi per me:

  1. Questi sono campioni casuali raggruppati (che, ne sono abbastanza sicuro, è dove arrivano le correzioni di Sheppard.)
  2. Non è noto se i dati siano o meno destinati a una distribuzione normale (quindi presumo di no, il che, ne sono abbastanza sicuro, invalida le correzioni di Sheppard.)

Quindi, la mia domanda aggiornata è; Qual è il metodo appropriato per gestire la distorsione imposta dalla "semplice" formula di deviazione / varianza standard ponderata su una distribuzione non normale? Più precisamente per quanto riguarda i dati aggregati.

Nota: sto usando i seguenti termini:

  • è la varianza ponderata s2
  • è il numero di osservazioni. (ovvero il numero di bin)N
  • è il numero di pesi diversi da zero. (ovvero il numero di bin con conteggi)M
  • sono i pesi (cioè i conteggi)wi
  • sono le osservazioni. (cioè il bidone significa)xi
  • è la media ponderata.x¯

5
Google "Correzioni di Sheppard" per le soluzioni standard a questo problema.
whuber

@whuber, temo che il mio google-foo mi stia venendo meno ... Non trovo molto su come usare le correzioni di Sheppard. Per quanto ne so, è una correzione per la natura dei dati aggregati e nel mio caso di test verrebbe utilizzato come , dovecè la dimensione dei contenitori (nel mio caso di prova, 4). È corretto? In ogni caso, quello che trovo ancora non sembra aiutarmi con il calcolos2. s2c212cs2
chezy525

Il secondo hit nella mia ricerca su Google fornisce una formula esplicita (equazione 9).
whuber

@whuber, sono passati un paio di mesi e ho provato a leggere il documento che hai collegato un paio di volte. Penso che mi manchi ancora qualcosa, ma la cosa migliore che ho trovato è che l'equazione finale che ho elencato sia corretta come stimatore imparziale. È giusto?
chezy525,

Le correzioni di Sheppard non assumono la normalità.
Glen_b

Risposte:


18

Questa risposta presenta due soluzioni: le correzioni di Sheppard e una stima della massima verosimiglianza. Entrambi concordano da vicino su una stima della deviazione standard: per la prima e 7,697.707.69 per il secondo (se regolato per essere paragonabile al normale stimatore "imparziale").


Le correzioni di Sheppard

Le "correzioni di Sheppard" sono formule che regolano i momenti calcolati da dati aggregati (come questi) in cui

  • si presume che i dati siano regolati da una distribuzione supportata su un intervallo finito [a,b]

  • quell'intervallo è diviso sequenzialmente in bin uguali di larghezza comune che è relativamente piccolo (nessun bin contiene una grande proporzione di tutti i dati)h

  • la distribuzione ha una funzione di densità continua.

Sono derivati ​​dalla formula della somma di Eulero-Maclaurina, che approssima gli integrali in termini di combinazioni lineari di valori dell'integrando in punti regolarmente distanziati, e quindi generalmente applicabili (e non solo alle distribuzioni normali).

Anche se a rigor di termini una distribuzione normale non lo è supportata su un intervallo finito, a un'approssimazione estremamente stretta lo è. Essenzialmente tutta la sua probabilità è contenuta in sette deviazioni standard della media. Pertanto le correzioni di Sheppard sono applicabili ai dati che si presume provengano da una distribuzione normale.

Le prime due correzioni di Sheppard sono

  1. Utilizzare la media dei dati aggregati per la media dei dati (ovvero, non è necessaria alcuna correzione per la media).

  2. Sottrarre dalla varianza dei dati raggruppate per ottenere la (approssimativa) varianza dei dati.h2/12

Dove si fa viene? Ciò equivale alla varianza di una variabile uniforme distribuita su un intervallo di lunghezza h . Intuitivamente, quindi, la correzione di Sheppard per il secondo momento suggerisce che il binning dei dati - sostituendoli efficacemente con il punto medio di ogni bin - sembra aggiungere un valore distribuito approssimativamente uniformemente compreso tra - h / 2 e h / 2 , da cui si gonfia la varianza da h 2 / 12 .h2/12hh/2h/2h2/12

Facciamo i calcoli. Uso Rper illustrarli, iniziando specificando conteggi e bin:

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

La formula corretta da utilizzare per i conteggi deriva dalla replica delle larghezze del cestino per gli importi dati dai conteggi; cioè, i dati aggregati sono equivalenti a

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

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)

mu1195/2254.32sigma2675/1161.367.83h=5h2/12=25/122.08675/1152/127.70


Stime di massima verosimiglianza

Fθθ(x0,x1]kFθ

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

(vedi MLE / Probabilità di intervallo distribuito in modo lognormale ).

Λ(θ)θ^Λ(θ)θ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

(μ^,σ^)=(54.32,7.33)

σn/(n1)σn/(n1)σ^=11/10×7.33=7.697.70

Verifica dei presupposti

Per visualizzare questi risultati possiamo tracciare la densità normale adattata su un istogramma:

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)

Figure

11

χ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)

L'output è

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

0.245

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.