QQ-Plot und Linie


7

Wenn mein qqplot linear ist, der Gradient jedoch nicht mit der 45-Grad-Linie übereinstimmt, was deutet dies darauf hin?QQplot

Ich versuche, die Anpassung der Laplace-Verteilung an meine Probendaten zu untersuchen. Daher habe ich zufällig Laplace-verteilte Beobachtungen (mit aus meiner Stichprobe geschätzten Parametern) generiert und diese gegen meine Stichprobe aufgetragen:

qqplot(rand, sample)
abline(0, 1, col = 'red')

Könnten Sie bitte einen gut aussehenden Ausschnitt aus der Handlung posten: entweder mit einem vollständig sichtbaren Titel oder gar keinem. Danke im Voraus.
Jim

@ Jim Ich habe den Titel losgeworden :)
SugarMarsh

Fügen Sie außerdem einige zusätzliche Informationen hinzu, z. B. welches R codehaben Sie verwendet? Was ist das Ziel? Eine bestimmte Verteilung ablehnen? Überprüfen Sie auch Dichtediagramme und Histogramme.
Jim

1
@byouness antwortete nett. Kurze Antwort: Die Verteilungen scheinen sich multiplikativ zu unterscheiden.
Nick Cox

2
Es gibt jetzt zwei Antworten auf " Wenn mein qqplot linear ist, der Gradient jedoch nicht mit der 45-Grad-Linie übereinstimmt, was deutet dies darauf hin? " Um antworten zu können " Ich versuche, die Anpassung der Laplace-Verteilung an meine Stichprobe zu untersuchen Daten ... "Bitte posten Sie Ihre Daten (im Codemodus ).
Jim

Antworten:


5

Aufgrund des Mangels an Daten in Ihrer Frage verwende ich in meiner Antwort unten die Gaußsche Verteilung im Vergleich zu einer Stichprobe (anstelle der Laplace-Verteilung im Vergleich zu Ihren Beispieldaten).

In Bezug auf die beiden ersten Momente ist die Interpretation dessen, was Sie im qq-Plot sehen, wie folgt:

  • Wenn die Verteilungen identisch sind, erwarten Sie eine Linie :x=y

    x <- rnorm(1000)
    qqnorm(x)
    abline(0, 1, col = 'red')
    

Geben Sie hier die Bildbeschreibung ein

  • Wenn die Mittelwerte unterschiedlich sind, erwarten Sie einen Achsenabschnitt , was bedeutet, dass er über oder unter der Linie liegt:ein0x=y

    x <- rnorm(1000)
    qqnorm(x + 1)
    abline(0, 1, col = 'red')
    

Geben Sie hier die Bildbeschreibung ein

  • Wenn die Standardabweichungen unterschiedlich sind, erwarten Sie eine Steigung :b1

    x <- rnorm(1000)
    qqnorm(x * 1.5)
    abline(0, 1, col = 'red')
    

Geben Sie hier die Bildbeschreibung ein

Um sich ein Bild davon zu machen, können Sie die CDFs einfach im selben Diagramm zeichnen. Nehmen Sie zum Beispiel den letzten:

lines(seq(-7, 7, by = 0.01), pnorm(seq(-7, 7, by = 0.01)), col = 'red')

Nehmen wir zum Beispiel 3 Punkte auf der y-Achse: C.D.F.(q)=0,2, 0,5, 0,8 und sehen, welchen Wert von q (Quantil) gibt uns jeden CDF-Wert.

Sie können sehen, dass:

F.red- -1(0,2)>F.X.- -1(0,2) (Quantil um -1)F.red- -1(0,5)=F.X.- -1(0,5) (Quantil = 0)F.red- -1(0,8)<F.X.- -1(0,8) (Quantil um 1)

Welches ist, was durch das qq-Diagramm gezeigt wird.

Geben Sie hier die Bildbeschreibung ein


4

Die Linearität des QQ-Diagramms legt nur nahe, dass Ihre Stichprobe einer Normalverteilung folgt (oder genauer gesagt, ihre Quantilfunktion ist die Probit-Funktion). Die Steigung wird durch die Standardabweichung bestimmt (für sd = 1 erhalten wir die populärex=y Linie).

Ein S-förmiges Diagramm, das über eine 180-Grad-Drehung symmetrisch erscheint, weist auf eine symmetrische Verteilung hin.

Eine intuitive Begründung für die Form ist also; Um eine gerade Linie zu erhalten, benötigen Sie eine ähnliche Skalierung des Abstands der Quantile um den Mittelwert. Das heißt, wenn sagenxth Quantil ist ein gewisser Anteil der Entfernung vom Mittelwert im Vergleich zu ythQuantil bleibt der Anteil erhalten, der nur bei Normalverteilung erhalten bleibt. Die Steigung zeigt eher die absolute Größe dieses Anteils an und hängt daher von der SD ab. Verschiedene Formen können auf ähnliche Weise begründet werden, indem dieses Verhältnis an verschiedenen Stellen entlang der Verteilung betrachtet wird.

Hier sind einige Visualisierungen.

Hinweis: Ich zeichne die Probe wie üblich auf der Y-Achse und gehe davon aus, dass die Art und Weise, wie Sie sie gezeichnet haben, die Probe auf der x-Achse platziert.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

R-Code:

# Creating different distributions with mean 0
library(rmutil)
set.seed(12345)
normald<-rnorm(10000,sd=2)
normald<-(normald-mean(normald))/sd(normald)
sharperpeak<-rlaplace(10000) #using Laplace distribution
sharperpeak<-(sharperpeak-mean(sharperpeak))/sd(sharperpeak)
heavytail<-rt(10000,5) #using t-distribution
heavytail<-(heavytail-mean(heavytail))/sd(heavytail)
positiveskew<-rlnorm(10000) #using lognormal distribution
positiveskew<-(positiveskew-mean(positiveskew))/sd(positiveskew)
negativeskew<-positiveskew*(-1) #shortcut
negativeskew<-(negativeskew-mean(negativeskew))/sd(negativeskew)

library(ggplot2)
library(gridExtra)

#normal plot
p1<-ggplot(data.frame(dt=normald))+geom_density(aes(x=dt),fill='green',alpha=0.6)+xlab('Normal Distribution')+geom_vline(xintercept=quantile(normald,c(0.25,0.75),color='red',alpha=0.3))
p2<-ggplot(data.frame(dt=normald))+geom_qq(aes(sample=dt))+geom_abline(slope=1,intercept = 0)
grid.arrange(p1,p2,nrow=1)

#sharppeak plot
p1<-ggplot(data.frame(dt=sharperpeak))+geom_density(aes(x=dt),fill='green',alpha=0.6)+xlab('Sharper-peaks')+geom_vline(xintercept=quantile(sharperpeak,c(0.25,0.75),color='red',alpha=0.3))
p2<-ggplot(data.frame(dt=sharperpeak))+geom_qq(aes(sample=dt))+geom_abline(slope=1,intercept = 0)
grid.arrange(p1,p2,nrow=1)

#heaviertails plot
p1<-ggplot(data.frame(dt=heavytail))+geom_density(aes(x=dt),fill='green',alpha=0.6)+xlab('Heavy Tails')+geom_vline(xintercept=quantile(heavytail,c(0.25,0.75),color='red',alpha=0.3))
p2<-ggplot(data.frame(dt=heavytail))+geom_qq(aes(sample=dt))+geom_abline(slope=1,intercept = 0)
grid.arrange(p1,p2,nrow=1)

#positiveskew plot
p1<-ggplot(data.frame(dt=positiveskew))+geom_density(aes(x=dt),fill='green',alpha=0.6)+xlab('Positively skewed Distribution')+geom_vline(xintercept=quantile(positiveskew,c(0.25,0.75),color='red',alpha=0.3))+xlim(-1.5,5)
p2<-ggplot(data.frame(dt=positiveskew))+geom_qq(aes(sample=dt))+geom_abline(slope=1,intercept = 0)
grid.arrange(p1,p2,nrow=1)

#negative skew plot
p1<-ggplot(data.frame(dt=negativeskew))+geom_density(aes(x=dt),fill='green',alpha=0.6)+xlab('Negatively skewed Distribution')+geom_vline(xintercept=quantile(negativeskew,c(0.25,0.75),color='red',alpha=0.3))+xlim(-5,1.5)
p2<-ggplot(data.frame(dt=negativeskew))+geom_qq(aes(sample=dt))+geom_abline(slope=1,intercept = 0)
grid.arrange(p1,p2,nrow=1)

# Normal distributions with different sds
normal1<-rnorm(3000,sd=2)
normal2<-rnorm(3000,sd=4)
normal3<-rnorm(3000,sd=0.5)
normal4<-rnorm(3000,sd=0.25)
final<-c(normal1,normal2,normal3,normal4)
ggplot(data.frame(dt=final,sds=factor(rep(c('2','4','0.5','0.25'),each=3000))),aes(sample=dt,color=sds))+geom_qq()+geom_abline(slope=1,intercept=0)

Würde dies nur bedeuten, dass meine Stichprobe eine geringere Standardabweichung als die von mir geschätzte aufweist?
SugarMarsh

Wenn das von Ihnen veröffentlichte Diagramm theoretische Quantile auf der x-Achse enthält, scheint dies der Fall zu sein. Das QQ-Diagramm ist jedoch nur eine visuelle / ungefähre Methode, um auf Normalität zu schließen. Sie können vielleicht einen Shapiro-Wilk-Test durchführen, um eine bessere Vorstellung zu bekommen.
stochastic13
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.