Um guia para dnorm, pnorm, qnorm e rnorm em r


A distribuição normal é a distribuição mais comumente usada em estatísticas. Este tutorial explica como usar a distribuição normal em R usando as funções dnorm , pnorm , rnorm e qnorm .

monótono

A função dnorm retorna o valor da função de densidade de probabilidade (pdf) da distribuição normal dada alguma variável aleatória x , uma média populacional μ e um desvio padrão populacional σ . A sintaxe para usar dnorm é a seguinte:

dnorm(x, média, sd)

O código a seguir demonstra alguns exemplos de dnorm em ação:

 #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

Normalmente, ao tentar resolver questões sobre probabilidade usando a distribuição normal, você usará frequentemente pnorm em vez de dnorm . Uma aplicação útil de dnorm , entretanto, é criar um gráfico de distribuição normal em R. O código a seguir ilustra como fazer isso:

 #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"))

Isso gera o seguinte gráfico:

norma

A função pnorm retorna o valor da função de densidade cumulativa (cdf) da distribuição normal dada alguma variável aleatória q , uma média populacional μ e um desvio padrão populacional σ . A sintaxe para usar pnorm é a seguinte:

norma(q, média, sd)

Em termos simples, pnorm retorna a área à esquerda de um determinado valor x na distribuição normal. Se você estiver interessado na área à direita de um determinado valor q , você pode simplesmente adicionar o argumento lower.tail = FALSE

pnorm(q, média, sd, lower.tail = FALSE)

Os exemplos a seguir ilustram como resolver algumas questões de probabilidade usando pnorm.

Exemplo 1: Suponha que a altura dos homens em uma determinada escola seja normalmente distribuída com média de desvio padrão de

 #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

Nesta escola, 2.275% dos homens têm mais de 74 centímetros de altura.

Exemplo 2: Suponha que o peso de uma certa espécie de lontra seja normalmente distribuído com média desvio padrão de

 #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

Cerca de 5,4799% desta espécie de lontra pesa menos de 22 libras.

Exemplo 3: Suponha que a altura das plantas em uma determinada região seja normalmente distribuída com média de desvio padrão de

 #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

Cerca de 62,4655% das plantas desta região têm entre 25 e 35 centímetros de altura.

norma

A função qnorm retorna o valor da função de densidade cumulativa inversa (cdf) da distribuição normal dada alguma variável aleatória p , uma média populacional μ e um desvio padrão populacional σ . A sintaxe para usar qnorm é a seguinte:

qnorm (p, média, sd)

Em termos simples, você pode usar qnorm para descobrir qual é o escore Z do p-ésimo quantil da distribuição normal.

O código a seguir demonstra alguns exemplos de qnorm em ação:

 #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

norma

A função rnorm gera um vetor de variáveis aleatórias normalmente distribuídas dado um comprimento de vetor n , uma média populacional μ e um desvio padrão populacional σ . A sintaxe para usar rnorm é a seguinte:

norma (n, média, sd)

O código a seguir demonstra alguns exemplos de rnorm em ação:

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

Isso gera os seguintes histogramas:

Observe como a distribuição ampla é muito mais ampla do que a distribuição estreita. Na verdade, especificámos que o desvio padrão na distribuição ampla era de 25, em comparação com apenas 15 na distribuição estreita. Observe também que ambos os histogramas estão centrados na média de 50.

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *