Een qq-plot maken in ggplot2 (met voorbeeld)
Een QQ-plot, een afkorting van ‘quantile-quantile’, wordt gebruikt om te evalueren of een dataset mogelijk afkomstig is van een theoretische distributie.
In de meeste gevallen wordt dit type plot gebruikt om te bepalen of een dataset al dan niet een normale verdeling volgt.
Als de gegevens normaal verdeeld zijn, liggen de punten op een QQ-plot op een rechte diagonale lijn.
Omgekeerd, als de punten aanzienlijk afwijken van de rechte diagonale lijn, is de kans kleiner dat de gegevens normaal verdeeld zijn.
Om een QQ-plot in ggplot2 te maken, kunt u de functies stat_qq() en stat_qq_line() als volgt gebruiken:
library (ggplot2)
ggplot(df, aes(sample=y)) +
stat_qq() +
stat_qq_line()
De volgende voorbeelden laten zien hoe u deze syntaxis kunt gebruiken om een QQ-plot in twee verschillende scenario’s te maken.
Voorbeeld 1: QQ-plot voor normale gegevens
De volgende code laat zien hoe u een normaal verdeelde gegevensset met 200 waarnemingen genereert en een QQ-plot voor de gegevensset in R maakt:
library (ggplot2) #make this example reproducible set. seeds (1) #create some fake data that follows a normal distribution df <- data. frame (y=rnorm(200)) #create QQ plot ggplot(df, aes(sample=y)) + stat_qq() + stat_qq_line()
We kunnen zien dat de punten voornamelijk langs de rechte diagonale lijn liggen, met enkele kleine afwijkingen langs elk van de staarten.
Op basis van deze grafiek gaan we ervan uit dat deze dataset normaal verdeeld is.
Merk op dat we de argumenten kleur en grootte ook kunnen gebruiken om de kleur en grootte van de punten in de grafiek te wijzigen als we dat willen:
library (ggplot2) #make this example reproducible set. seeds (1) #create some fake data that follows a normal distribution df <- data. frame (y=rnorm(200)) #create QQ plot ggplot(df, aes(sample=y)) + stat_qq(size= 2.5 , color=' red ') + stat_qq_line()
Voorbeeld 2: QQ-plot voor niet-normale gegevens
De volgende code laat zien hoe u een QQ-plot maakt voor een gegevensset die een exponentiële verdeling volgt met 200 waarnemingen:
#make this example reproducible set. seeds (1) #create some fake data that follows an exponential distribution df <- data. frame (y=rexp( 200 , rate= 3 )) #create QQ plot ggplot(df, aes(sample=y)) + stat_qq() + stat_qq_line()
We zien dat de punten flink afwijken van de diagonale lijn. Dit geeft duidelijk aan dat de dataset niet normaal verdeeld is.
Dit zou logisch moeten zijn, aangezien we hebben gespecificeerd dat de gegevens een exponentiële verdeling moeten volgen.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in ggplot2 kunt uitvoeren:
Hoe meerdere lijnen in ggplot2 te plotten
Hoe gemiddelde en standaarddeviatie in ggplot2 te plotten
Hoe lijnkleuren in ggplot2 te veranderen