Een gids voor dnorm, pnorm, qnorm en rnorm in r
De normale verdeling is de meest gebruikte verdeling in de statistiek. In deze tutorial wordt uitgelegd hoe u de normale verdeling in R kunt gebruiken met behulp van de functies dnorm , pnorm , rnorm en qnorm .
normaal
De dnorm- functie retourneert de waarde van de waarschijnlijkheidsdichtheidsfunctie (pdf) van de normale verdeling, gegeven een willekeurige variabele x , een populatiegemiddelde μ en een populatiestandaarddeviatie σ . De syntaxis voor het gebruik van dnorm is als volgt:
dnorm(x, gemiddelde, sd)
De volgende code demonstreert enkele voorbeelden van dnorm in actie:
#find the value of the standard normal distribution pdf at x=0 dnorm(x=0, mean=0, sd=1) #[1]0.3989423 #by default, R uses mean=0 and sd=1 dnorm(x=0) #[1]0.3989423 #find the value of the normal distribution pdf at x=10 with mean=20 and sd=5 dnorm(x=10, mean=20, sd=5) #[1]0.01079819
Wanneer u vragen over waarschijnlijkheid probeert op te lossen met behulp van de normale verdeling, gebruikt u doorgaans pnorm in plaats van dnorm . Een nuttige toepassing van dnorm is echter het maken van een normale verdelingsplot in R. De volgende code illustreert hoe u dit kunt doen:
#Create a sequence of 100 equally spaced numbers between -4 and 4 x <- seq(-4, 4, length=100) #create a vector of values that shows the height of the probability distribution #for each value in x y <- dnorm(x) #plot x and y as a scatterplot with connected lines (type = "l") and add #an x-axis with custom labels plot(x,y, type = "l", lwd = 2, axes = FALSE, xlab = "", ylab = "") axis(1, at = -3:3, labels = c("-3s", "-2s", "-1s", "mean", "1s", "2s", "3s"))
Dit levert het volgende plot op:
pnorm
De pnorm- functie retourneert de waarde van de cumulatieve dichtheidsfunctie (cdf) van de normale verdeling, gegeven een willekeurige variabele q , een populatiegemiddelde μ en een populatiestandaarddeviatie σ . De syntaxis voor het gebruik van pnorm is als volgt:
pnorm(q, gemiddelde, sd)
Simpel gezegd retourneert pnorm het gebied links van een gegeven waarde x in de normale verdeling. Als u geïnteresseerd bent in het gebied rechts van een bepaalde q- waarde, kunt u eenvoudigweg het argument lower.tail = FALSE toevoegen
pnorm(q, gemiddeld, sd, onder.staart = ONWAAR)
De volgende voorbeelden illustreren hoe u enkele waarschijnlijkheidsvragen kunt oplossen met behulp van pnorm.
Voorbeeld 1: Stel dat de lengte van mannen op een bepaalde school normaal verdeeld is met een gemiddelde van een standaarddeviatie van
#find percentage of males that are taller than 74 inches in a population with #mean = 70 and sd = 2 pnorm(74, mean=70, sd=2, lower.tail=FALSE) # [1]0.02275013
Op deze school is 2,275% van de mannen langer dan 220 cm.
Voorbeeld 2: Stel dat het gewicht van een bepaalde ottersoort normaal verdeeld is met een gemiddelde van een standaarddeviatie van
#find percentage of otters that weight less than 22 lbs in a population with #mean = 30 and sd = 5 pnorm(22, mean=30, sd=5) # [1]0.05479929
Ongeveer 5,4799% van deze ottersoort weegt minder dan 22 pond.
Voorbeeld 3: Stel dat de hoogte van planten in een bepaald gebied normaal verdeeld is met een gemiddelde van een standaardafwijking van
#find percentage of plants that are less than 14 inches tall, then subtract the #percentage of plants that are less than 10 inches tall, based on a population #with mean = 13 and sd = 2 pnorm(14, mean=13, sd=2) - pnorm(10, mean=13, sd=2) # [1]0.6246553
Ongeveer 62,4655% van de planten in deze regio zijn tussen de 10 en 14 centimeter lang.
qnorm
De qnorm- functie retourneert de waarde van de inverse cumulatieve dichtheidsfunctie (cdf) van de normale verdeling, gegeven een willekeurige variabele p , een populatiegemiddelde μ en een populatiestandaarddeviatie σ . De syntaxis voor het gebruik van qnorm is als volgt:
qnorm (p, gemiddelde, sd)
In eenvoudige bewoordingen kunt u qnorm gebruiken om erachter te komen wat de Z-score van het p- de kwantiel van de normale verdeling is.
De volgende code demonstreert enkele voorbeelden van qnorm in actie:
#find the Z-score of the 99th quantile of the standard normal distribution qnorm(.99, mean=0, sd=1) #[1]2.326348 #by default, R uses mean=0 and sd=1 qnorm(.99) #[1]2.326348 #find the Z-score of the 95th quantile of the standard normal distribution qnorm(.95) #[1]1.644854 #find the Z-score of the 10th quantile of the standard normal distribution qnorm(.10) #[1]-1.281552
norm
De rnorm- functie genereert een vector van normaal verdeelde willekeurige variabelen, gegeven een vectorlengte n , een populatiegemiddelde μ en een populatiestandaarddeviatie σ . De syntaxis voor het gebruik van rnorm is als volgt:
rnorm(n, gemiddelde, sd)
De volgende code demonstreert enkele voorbeelden van rnorm in actie:
#generate a vector of 5 normally distributed random variables with mean=10 and sd=2 five <- rnorm(5, mean = 10, sd = 2) five # [1] 10.658117 8.613495 10.561760 11.123492 10.802768 #generate a vector of 1000 normally distributed random variables with mean=50 and sd=5 narrowDistribution <- rnorm(1000, mean = 50, sd = 15) #generate a vector of 1000 normally distributed random variables with mean=50 and sd=25 wideDistribution <- rnorm(1000, mean = 50, sd = 25) #generate two histograms to view these two distributions side by side, specify #50 bars in histogram and x-axis limits of -50 to 150 par(mfrow=c(1, 2)) #one row, two columns hist(narrowDistribution, breaks=50, xlim=c(-50, 150)) hist(wideDistribution, breaks=50, xlim=c(-50, 150))
Dit genereert de volgende histogrammen:
Merk op dat de brede distributie veel breder is dan de smalle distributie. We hebben inderdaad gespecificeerd dat de standaarddeviatie in de brede distributie 25 was, vergeleken met slechts 15 in de smalle distributie. Merk ook op dat beide histogrammen rond het gemiddelde van 50 zijn gecentreerd.