È necessario un algoritmo per calcolare la probabilità relativa che i dati siano campionati da una distribuzione normale o lognormale


13

Diciamo che hai un insieme di valori e vuoi sapere se è più probabile che siano stati campionati da una distribuzione gaussiana (normale) o campionati da una distribuzione lognormale?

Naturalmente, idealmente sapresti qualcosa sulla popolazione o sulle fonti di errore sperimentale, quindi avresti ulteriori informazioni utili per rispondere alla domanda. Ma qui, supponiamo che abbiamo solo un insieme di numeri e nessun'altra informazione. Quale è più probabile: campionamento da un gaussiano o campionamento da una distribuzione lognormale? Quanto più probabile? Ciò che spero è un algoritmo per selezionare tra i due modelli e, si spera, quantificare la probabilità relativa di ciascuno.


1
Potrebbe essere un esercizio divertente cercare di caratterizzare la distribuzione sulle distribuzioni nella natura / letteratura pubblicata. Poi di nuovo, non sarà mai più di un esercizio divertente. Per un trattamento serio, puoi cercare una teoria che giustifica la tua scelta o dare dati sufficienti per visualizzare e testare la bontà di adattamento di ogni distribuzione candidata.
JohnRos,

3
Se si tratta di generalizzare dall'esperienza direi che le distribuzioni distorte positivamente sono il tipo più comune, specialmente per le variabili di risposta che sono di interesse centrale e che i lognormali sono più comuni delle normali. Un volume del 1962 Lo scienziato ipotizza a cura del famoso statista IJ Good che includa un pezzo anonimo "Le regole di lavoro di Bloggins", contenente l'affermazione "La distribuzione normale dei tronchi è più normale della normale". (Molte delle altre regole sono fortemente statistiche.)
Nick Cox,

Mi sembra di interpretare la tua domanda in modo diverso da JohnRos e anxoestevez. Per me, la tua domanda suona come una semplice selezione del modello , cioè una questione di calcolo , dove M è la distribuzione normale o log-normale e D sono i tuoi dati. Se la selezione del modello non è ciò che stai cercando, puoi chiarire? P(MD)MD
Lucas,

@lucas Penso che la tua interpretazione non sia molto diversa dalla mia. In entrambi i casi è necessario fare ipotesi apriori .
anxoestevez,

2
Perché non calcolare semplicemente il rapporto di verosimiglianza generalizzato e avvisare l'utente quando favorisce il log-normal?
Scortchi - Ripristina Monica

Risposte:


7

È possibile provare a indovinare meglio il tipo di distribuzione adattando ogni distribuzione (normale o lognormale) ai dati con la massima probabilità, quindi confrontando la probabilità di log in ciascun modello: il modello con la più alta probabilità di log è la soluzione migliore. Ad esempio, in R:

# log likelihood of the data given the parameters (par) for 
# a normal or lognormal distribution
logl <- function(par, x, lognorm=F) {
    if(par[2]<0) { return(-Inf) }
    ifelse(lognorm,
    sum(dlnorm(x,par[1],par[2],log=T)),
    sum(dnorm(x,par[1],par[2],log=T))
    )
}

# estimate parameters of distribution of x by ML 
ml <- function(par, x, ...) {
    optim(par, logl, control=list(fnscale=-1), x=x, ...)
}

# best guess for distribution-type
# use mean,sd of x for starting parameters in ML fit of normal
# use mean,sd of log(x) for starting parameters in ML fit of lognormal
# return name of distribution type with highest log ML
best <- function(x) {
    logl_norm <- ml(c(mean(x), sd(x)), x)$value
        logl_lognorm <- ml(c(mean(log(x)), sd(log(x))), x, lognorm=T)$value
    c("Normal","Lognormal")[which.max(c(logl_norm, logl_lognorm))]
}

Ora genera numeri da una distribuzione normale e adatta una distribuzione normale da ML:

set.seed(1)
x = rnorm(100, 10, 2)
ml(c(10,2), x)

produce:

$par
[1] 10.218083  1.787379

$value
[1] -199.9697
...

Confronta la probabilità logaritmica per l'adattamento ML delle distribuzioni normali e lognormali:

ml(c(10,2), x)$value # -199.9697
    ml(c(2,0.2), x, lognorm=T)$value # -203.1891
best(x) # Normal

Prova con una distribuzione lognormale:

best(rlnorm(100, 2.6, 0.2)) # lognormal

L'assegnazione non sarà perfetta, a seconda di n, media e sd:

> table(replicate(1000, best(rnorm(500, 10, 2))))

Lognormal    Normal 
        6       994 
> table(replicate(1000, best(rlnorm(500, 2.6, 0.2))))

Lognormal    Normal 
      999         1 

1
Non è necessario trovare le stime dei parametri di massima verosimiglianza numericamente per il normale o log-normale (anche se mostra come generalizzare l'idea al confronto di altre distribuzioni). A parte questo, un approccio molto sensato.
Scortchi - Ripristina Monica

Ho appena usato R o il concetto di massima verosimiglianza, quindi ecco una domanda di base. So che non possiamo confrontare l'AIC (o BIC) dall'adattare una distribuzione normale ai dati rispetto ai registri dei dati, perché l'AIC o BIC non sarebbero comparabili. È necessario adattare due modelli a un set di dati (senza trasformazioni; senza esclusioni anomale ecc.) E la trasformazione dei dati cambierà AIC o BIC indipendentemente dal rendere fasullo il confronto. Che mi dici di ML? Questo confronto è legittimo?
Harvey Motulsky,

Troviamo le distribuzioni normali e lognormali che si adattano meglio ai dati, quindi calcoliamo la probabilità di osservare i dati supponendo che provenissero da tali distribuzioni (la probabilità o p(X|\theta)). Non stiamo trasformando i dati. Stampiamo la distribuzione per la quale la probabilità di osservare i dati è più alta. Questo approccio è legittimo ma ha lo svantaggio di non inferire la probabilità del modello dati i dati p(M|X), ovvero la probabilità che i dati provengano da una distribuzione normale vs lognormale (ad es. P (normale) = 0.1, p (lognormale) = 0.9) a differenza dell'approccio bayesiano.
waferthin

1
@Harvey Abbastanza vero, ma irrilevante - hai chiesto di adattare le distribuzioni normali vs log-normali agli stessi dati, e questo è ciò che Whannymahoots sta rispondendo. Poiché il numero di parametri liberi è lo stesso per entrambi i modelli, il confronto di AIC o BIC si riduce al confronto delle probabilità di log.
Scortchi - Ripristina Monica

@wannymahoots Qualsiasi precedente ragionevole per un approccio bayesiano in questo contesto - basandosi sulla stima delle probabilità relative che un utente di software sta cercando di adattare i dati normali o log-normali - sarà talmente disinformativo da dare risultati simili a un approccio basato solo sulla probabilità.
Scortchi - Ripristina Monica

11

M{Normal,Log-normal}X={x1,...,xN}

P(MX)P(XM)P(M).

La parte difficile è ottenere la probabilità marginale ,

P(XM)=P(Xθ,M)P(θM)dθ.

p(θM)XY={logx1,...,logxNYX,

P(XM=Log-Normal)=P(YM=Normal)i|1xi|.

P(θM)P(σ2,μM=Normal)P(M)

Esempio:

P(μ,σ2M=Normal)m0=0,v0=20,a0=1,b0=100

inserisci qui la descrizione dell'immagine

Secondo Murphy (2007) (equazione 203), la probabilità marginale della distribuzione normale è quindi data da

P(XM=Normal)=|vN|12|v0|12b0a0bnaNΓ(aN)Γ(a0)1πN/22N

aN,bN,vNP(μ,σ2X,M=Normal)

vN=1/(v01+N),mN=(v01m0+ixi)/vN,aN=a0+N2,bN=b0+12(v01m02vN1mN2+ixi2).

Uso gli stessi iperparametri per la distribuzione log-normal,

P(XM=Log-normal)=P({logx1,...,logxN}M=Normal)i|1xi|.

0.1P(M=Log-normal)=0.1

inserisci qui la descrizione dell'immagine

il posteriore si comporta così:

inserisci qui la descrizione dell'immagine

N

Quando si implementano le equazioni, sarebbe una buona idea lavorare con densità di registro anziché densità. Ma per il resto dovrebbe essere piuttosto semplice. Ecco il codice che ho usato per generare i grafici:

https://gist.github.com/lucastheis/6094631


4

Sembra che tu stia cercando qualcosa di abbastanza pragmatico per aiutare gli analisti che probabilmente non sono statistici professionisti e hanno bisogno di qualcosa che li spinga a fare quelle che dovrebbero essere tecniche esplorative standard come guardare diagrammi qq, diagrammi di densità, ecc.

Nel qual caso, perché non semplicemente fare un test di normalità (Shapiro-Wilk o altro) sui dati originali, e uno sui dati trasformati nel registro, e se il secondo valore p è più alto sollevare un flag per l'analista di considerare l'utilizzo di una trasformazione del registro ? Come bonus, sputa un grafico 2 x 2 del diagramma della linea di densità e del diagramma qqnorm dei dati grezzi e trasformati.

Questo tecnicamente non risponderà alla tua domanda sulla relativa probabilità, ma mi chiedo se sia tutto ciò di cui hai bisogno.


Intelligente. Forse questo è abbastanza ed evita la necessità di spiegare i calcoli della probabilità .... Grazie.
Harvey Motulsky,
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.