Wie überprüfe ich, ob meine Daten zur Normalverteilung des Protokolls passen?

Antworten:

6

... Ich habe gerade bemerkt, dass Sie dort das Tag "Regression" haben. Wenn Sie ein Regressionsproblem haben, können Sie die univariate Verteilung der Antwort nicht betrachten, um die Verteilungsform zu bewerten, da dies vom Muster der x abhängt. Wenn Sie prüfen möchten, ob eine Antwortvariable (y) in einer Art Regression oder GLM eine logarithmische oder eine Pareto-Verteilung aufweist, bei der sich die Mittelwerte je nach Beobachtung unterscheiden, ist dies eine ganz andere Frage (die jedoch im Grunde auf ähnliche Arten der Analyse zurückzuführen ist) auf den Residuen). Können Sie bitte klären, ob es sich um ein Regressionsproblem handelt? Meine Antwort bezieht sich derzeit auf die Beurteilung von univariaten lognormalen oder Pareto

Sie haben dort ganz andere Fragen.

Wie überprüfe ich, ob meine Daten zur Normalverteilung des Protokolls passen?

Nehmen Sie Protokolle und erstellen Sie ein normales QQ-Diagramm. Überprüfen Sie, ob die Verteilung für Ihre Zwecke nahe genug ist.

Ich möchte in R einchecken, ob meine Daten zu logarithmischen Normal- oder Pareto-Verteilungen passen

Akzeptieren Sie von Anfang an, dass keine der von Ihnen in Betracht gezogenen Distributionen eine genaue Beschreibung ist. Sie suchen ein vernünftiges Modell. Dies bedeutet, dass Sie bei kleinen Stichprobengrößen keine vernünftige Option ablehnen, bei ausreichender Stichprobengröße jedoch alle ablehnen. Schlimmer noch, bei großen Stichproben lehnen Sie perfekt anständige Modelle ab, während Sie bei kleinen Stichproben schlechte Modelle nicht ablehnen.

Solche Tests sind keine wirklich nützliche Grundlage für die Modellauswahl.

Kurz gesagt, Ihre Frage von Interesse - so etwas wie "Was ist ein gutes Modell für diese Daten, das nahe genug ist, um spätere Schlussfolgerungen nützlich zu machen?" wird einfach nicht durch Goodness-of-Fit-Tests beantwortet. In einigen Fällen kann die Statistik der Anpassungsgüte (anstelle von Entscheidungen, die sich aus darauf basierenden Ablehnungsregeln ergeben) in einigen Fällen eine nützliche Zusammenfassung bestimmter Arten von Anpassungsmängeln liefern.

Vielleicht könnte mir ks.test dabei helfen

Nein. Erstens gibt es das Problem, das ich gerade erwähnt habe, und zweitens ist ein Kolmogorov-Smirnov-Test ein Test für eine vollständig spezifizierte Verteilung. Sie haben keine davon.

In vielen Fällen würde ich QQ-Diagramme und ähnliche Anzeigen empfehlen. In solchen Fällen mit rechtem Versatz würde ich eher mit Protokollen arbeiten (ein Lognormal sieht dann normal aus, während ein Pareto exponentiell aussieht). Bei vernünftigen Stichprobengrößen ist es nicht schwer, visuell zu unterscheiden, ob Daten eher normal als exponentiell aussehen oder umgekehrt. Holen Sie sich zunächst einige aktuelle Daten und zeichnen Sie diese auf - sagen wir mindestens ein halbes Dutzend Proben, damit Sie wissen, wie sie aussehen.

Siehe ein Beispiel unten

Wie kann ich die Alpha- und K-Parameter für die Pareto-Verteilung für meine Daten erhalten?

Wenn Sie Parameter schätzen müssen, verwenden Sie MLE ... aber tun Sie dies nicht, um zwischen Pareto und lognormal zu entscheiden.

Kannst du sagen, welches davon lognormal und welches Pareto ist?

Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass bei den normalen QQ-Plots (linke Spalte) die Protokolle von Datensatz 1 eine ziemlich gerade Linie ergeben, während Datensatz 2 die rechte Schiefe zeigt. Bei den Exponentialkurven zeigen die Protokolle von Datensatz 1 einen helleren rechten Schwanz als Exponential, während Datensatz 2 eine ziemlich gerade Linie zeigt (die Werte im rechten Schwanz neigen dazu, ein wenig zu wackeln, selbst wenn das Modell korrekt ist; dies ist Nicht ungewöhnlich bei schweren Schwänzen. Dies ist ein Grund, warum Sie mehrere Stichproben mit ähnlicher Größe wie die, die Sie betrachten, zeichnen müssen, um zu sehen, wie Diagramme normalerweise aussehen.

Code für diese vier Diagramme:

qqnorm(log(y1))
qqnorm(log(y2))
qex <- function(x) qexp((rank(x)-.375)/(length(x)+.25))
plot(qex(y1),log(y1))
plot(qex(y2),log(y2))

Wenn Sie ein Problem vom Regressionstyp haben - eines, bei dem sich die Mittelwerte mit anderen Variablen ändern, können Sie die Eignung einer der beiden Verteilungsannahmen nur dann beurteilen, wenn ein geeignetes Modell für den Mittelwert vorhanden ist.

Glen_b - Monica neu starten
quelle
3

Dies ist natürlich eine Frage der Modellauswahl , vorausgesetzt, Sie möchten nur überprüfen, ob Ihre Daten von dem einen oder dem anderen Modell stammen, und Ihr Ziel ist es nicht, das richtige Modell im unendlich dimensionalen Ozean der Verteilungen zu finden. Eine Option ist die Verwendung von AIC (was Modelle mit dem niedrigsten AIC-Wert bevorzugt, und ich werde hier nicht versuchen, dies zu beschreiben). Schauen Sie sich das folgende Beispiel mit simulierten Daten an:

rm(list=ls())

set.seed(123)
x = rlnorm(100,0,1)

hist(x)

# Loglikelihood and AIC for lognormal model

ll1 = function(param){
if(param[2]>0) return(-sum(dlnorm(x,param[1],param[2],log=T)))
else return(Inf)
}

AIC1 = 2*optim(c(0,1),ll1)$value + 2*2

# Loglikelihood and AIC for Pareto model

dpareto=function(x, shape=1, location=1) shape * location^shape / x^(shape + 1)

ll2 = function(param){
if(param[1]>0 & min(x)> param[2]) return(-sum(log(dpareto(x,param[1],param[2]))))
else return(Inf)
}


AIC2 = 2*optim(c(1,0.01),ll2)$value + 2*2

# Comparison using AIC, which in this case favours the lognormal model.

 c(AIC1,AIC2)
Teco
quelle
1

Vielleicht fitdistr ()?

Geben Sie hier die Bildbeschreibung ein

require(MASS)
hist(x, freq=F)
fit<-fitdistr(x,"log-normal")$estimate
lines(dlnorm(0:max(x),fit[1],fit[2]), lwd=3)


> fit
meanlog     sdlog 
3.8181643 0.1871289 



> dput(x)
c(52.6866903145324, 39.7511298620398, 50.0577071855833, 33.8671245370402, 
51.6325665911116, 41.1745418750494, 48.4259060939127, 67.0893697776377, 
35.5355051232044, 44.6197404834786, 40.5620805256951, 39.4265590077884, 
36.0718655240496, 56.0205581625823, 52.8039852992611, 46.2069383488226, 
36.7324212941395, 44.7998046213554, 47.9727885542368, 36.3400338997286, 
32.7514839453244, 50.6878893947656, 53.3756089181472, 39.4769689441593, 
38.5432770167907, 62.350999487007, 44.5140171935881, 47.4026606915147, 
57.3723511479393, 64.4041641945078, 51.2286815562554, 60.4921839777139, 
71.6127652225805, 40.6395409719693, 48.681036613906, 52.3489622656967, 
46.6219563536878, 55.6136160469819, 62.3003761050482, 42.7865905767138, 
50.2413659137295, 45.6327941365187, 46.5621907725798, 48.9734785224035, 
40.4828649022511, 59.4982559591637, 42.9450436744074, 66.8393386407167, 
40.7248473206552, 45.9114242834839, 34.2671010054407, 45.7569869970351, 
50.4358523486278, 44.7445606782492, 44.4173298921541, 41.7506552050873, 
34.5657344132409, 47.7099864540652, 38.1680974794929, 42.2126680994737, 
35.690599714042, 37.6748157160789, 35.0840798650981, 41.4775827114607, 
36.6503753230464, 42.7539062488003, 39.2210050689652, 45.9364763482558, 
35.3687017955285, 62.8299659875044, 38.1532612008011, 39.9183076516292, 
59.0662388169057, 47.9032427690417, 42.4419580084314, 45.785859495192, 
59.5254284342724, 47.9161476636566, 32.6868959277799, 30.1039453246766, 
37.7606323857655, 35.754797368422, 35.5239777126187, 43.7874313667592, 
53.0328404605954, 37.4550326357314, 42.7226751172495, 44.898430515261, 
59.7229655935187, 41.0701258705001, 42.1672231656919, 60.9632847841197, 
60.3690132883734, 45.6469334940722, 39.8300067022836, 51.8185235060234, 
44.908828102875, 50.8200011497451, 53.7945569828737, 65.0432670527801, 
49.0306734716282, 35.9442821219144, 46.8133296904456, 43.7514416949611, 
43.7348972849838, 57.592040060118, 48.7913517211383, 38.5555058596449
)
Flasche
quelle
1
Obwohl diese Lösung logarithmisch zu den Daten passt , sagt sie nicht aus, ob die Anpassung gut ist oder ob ein Pareto die bessere Wahl ist.
whuber