Potrzebujesz algorytmu, aby obliczyć względne prawdopodobieństwo, że dane są próbkami z rozkładu normalnego w porównaniu z rozkładem logarytmicznym

13

Powiedzmy, że masz zestaw wartości i chcesz wiedzieć, czy bardziej prawdopodobne jest, że próbkowano z rozkładu Gaussa (normalnego) lub próbkowano z rozkładu logarytmicznego?

Oczywiście idealnie byłoby wiedzieć coś o populacji lub o źródłach błędów eksperymentalnych, więc mielibyśmy dodatkowe informacje przydatne w odpowiedzi na pytanie. Ale tutaj załóżmy, że mamy tylko zestaw liczb i żadnych innych informacji. Co jest bardziej prawdopodobne: pobieranie próbek z Gaussa lub pobieranie próbek z rozkładu logarytmicznego? O ile bardziej prawdopodobne? Mam nadzieję na algorytm wyboru między dwoma modelami i, mam nadzieję, ilościowe oszacowanie względnego prawdopodobieństwa każdego z nich.

Harvey Motulsky
źródło
1
To może być zabawne ćwiczenie, aby scharakteryzować rozkład między rozkładami w naturze / opublikowanej literaturze. Z drugiej strony - nigdy nie będzie to więcej niż zabawne ćwiczenie. W przypadku poważnego leczenia możesz albo poszukać teorii uzasadniającej twój wybór, albo podać wystarczającą ilość danych - wizualizuj i testuj dopasowanie dopasowania każdej dystrybucji kandydatów.
JohnRos
3
Jeśli chodzi o uogólnienie na podstawie doświadczenia, powiedziałbym, że dodatnio wypaczone rozkłady są najczęstszym typem, szczególnie w przypadku zmiennych odpowiedzi, które mają kluczowe znaczenie, oraz że lognormalne są bardziej powszechne niż normalne. Tom z 1962 r. Naukowiec spekuluje pod redakcją słynnego statystyki IJ Gooda, który zawiera anonimowy utwór „Zasady działania Blogginsa”, zawierający stwierdzenie „Rozkład normalny dziennika jest bardziej normalny niż normalny”. (Kilka innych zasad jest silnie statystycznych.)
Nick Cox
Wydaje mi się, że interpretuję twoje pytanie inaczej niż JohnRos i anxoestevez. Dla mnie twoje pytanie brzmi jak pytanie o zwykły wybór modelu , to znaczy kwestię obliczenia , gdzie to rozkład normalny lub log-normalny, a to twoje dane. Jeśli wybór modelu nie jest tym, czego szukasz, czy możesz to wyjaśnić? M DP(MD)MD
Lucas
@lucas Myślę, że twoja interpretacja nie różni się tak bardzo od mojej. W obu przypadkach musisz przyjąć założenia apriori .
anxoestevez
2
Dlaczego nie obliczyć uogólnionego współczynnika wiarygodności i ostrzec użytkownika, gdy faworyzuje log-normal?
Scortchi - Przywróć Monikę

Odpowiedzi:

7

Można odgadnąć typ rozkładu, dopasowując każdy rozkład (normalny lub logarytmiczny) do danych według maksymalnego prawdopodobieństwa, a następnie porównując prawdopodobieństwo dziennika dla każdego modelu - model o najwyższym prawdopodobieństwie dziennika jest najlepiej dopasowany. Na przykład w 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))]
}

Teraz generuj liczby z rozkładu normalnego i dopasuj rozkład normalny do ML:

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

Produkuje:

$par
[1] 10.218083  1.787379

$value
[1] -199.9697
...

Porównaj prawdopodobieństwo dziennika dla dopasowania ML rozkładów normalnych i logarytmicznych:

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

Spróbuj z lognormalną dystrybucją:

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

Przypisanie nie będzie idealne, w zależności od n, średniej i 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 
waferthin
źródło
1
Nie musisz znajdować szacunkowych wartości parametru maksymalnego prawdopodobieństwa dla wartości normalnej lub log-normalnej (chociaż pokazuje to, jak uogólnisz pomysł na porównanie innych rozkładów). Poza tym bardzo rozsądne podejście.
Scortchi - Przywróć Monikę
Ledwo użyłem R lub koncepcji maksymalnego prawdopodobieństwa, więc oto podstawowe pytanie. Wiem, że nie możemy porównać AIC (lub BIC) z dopasowania normalnego rozkładu do danych w porównaniu do dzienników danych, ponieważ AIC lub BIC nie byłyby porównywalne. Trzeba dopasować dwa modele do jednego zestawu danych (bez transformacji; bez wykluczeń wartości odstających itp.), A transformacja danych zmieni AIC lub BIC, niezależnie od tego, że porównanie jest fałszywe. Co z ML? Czy to porównanie jest zgodne z prawem?
Harvey Motulsky
Znajdujemy najlepiej pasujące do danych rozkłady normalne i logarytmiczne, a następnie obliczamy prawdopodobieństwo obserwacji danych, zakładając, że pochodzą one z tych rozkładów (prawdopodobieństwo lub p(X|\theta)). Nie przekształcamy danych. Drukujemy rozkład, dla którego prawdopodobieństwo obserwacji danych jest najwyższe. Podejście to jest uzasadnione, ale ma tę wadę, że nie wnioskujemy o prawdopodobieństwie modelu na podstawie danych p(M|X), tj. Prawdopodobieństwie, że dane pochodzą z rozkładu normalnego vs lognormalnego (np. P (normalny) = 0,1, p (lognormalny) = 0,9) w przeciwieństwie do podejścia bayesowskiego.
waferthin
1
@Harvey Prawda, ale nieistotna - zapytałeś o dopasowanie normalnych vs log-normalnych rozkładów do tych samych danych, i to właśnie odpowiada na to, co whannymahoots. Ponieważ liczba wolnych parametrów jest taka sama dla obu modeli, porównanie AIC lub BIC sprowadza się do porównania prawdopodobieństw dziennika.
Scortchi - Przywróć Monikę
@wannymahoots Wszelkie uzasadnione wcześniejsze podejście do bayesowskiego podejścia w tym kontekście - polegające na oszacowaniu względnych prawdopodobieństw, że użytkownik oprogramowania próbuje dopasować dane normalne lub log-normalne - będzie tak nieinformacyjne, że da podobne wyniki do podejścia na podstawie prawdopodobieństwa.
Scortchi - Przywróć Monikę
11

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

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

Trudną częścią jest uzyskanie marginalnego prawdopodobieństwa ,

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)

Przykład:

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

wprowadź opis zdjęcia tutaj

Według Murphy'ego (2007) (równanie 203) krańcowe prawdopodobieństwo rozkładu normalnego podaje następnie

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

Używam tych samych hiperparametrów do rozkładu log-normalnego,

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

0.1P(M=Log-normal)=0.1 oraz danych pochodzących z następującego rozkładu log-normalnego,

wprowadź opis zdjęcia tutaj

tylny zachowuje się tak:

wprowadź opis zdjęcia tutaj

Linia ciągła pokazuje środkowe prawdopodobieństwo z tyłu dla różnych losowań N

Podczas implementacji równań dobrze byłoby pracować z gęstością logarytmiczną zamiast gęstości. Ale w przeciwnym razie powinno być całkiem prosto. Oto kod, którego użyłem do wygenerowania wykresów:

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

Lucas
źródło
4

Wygląda na to, że szukasz czegoś dość pragmatycznego, aby pomóc analitykom, którzy prawdopodobnie nie są zawodowymi statystykami i potrzebują czegoś, co zachęci ich do zrobienia czegoś, co powinno być standardowymi technikami eksploracyjnymi, takimi jak wykresy qq, wykresy gęstości itp.

W takim przypadku dlaczego nie po prostu wykonać testu normalności (Shapiro-Wilk lub cokolwiek innego) na oryginalnych danych i jednego na danych przekształconych w dzienniku, a jeśli druga wartość p jest wyższa, podnieś flagę, aby analityk rozważył użycie transformacji dziennika ? Jako bonus wypluj grafikę 2 x 2 wykresu linii gęstości i wykres qqnorm surowych i przetworzonych danych.

To technicznie nie odpowie na twoje pytanie dotyczące względnego prawdopodobieństwa, ale zastanawiam się, czy to wszystko, czego potrzebujesz.

Peter Ellis
źródło
Sprytny. Może to wystarczy i unika potrzeby wyjaśniania obliczeń prawdopodobieństwa… Dzięki.
Harvey Motulsky