Руководство по dnorm, pnorm, qnorm и rnorm в R


Нормальное распределение является наиболее часто используемым распределением в статистике. В этом руководстве объясняется, как работать с нормальным распределением в R, используя функции dnorm , pnorm , rnorm и qnorm .

днорм

Функция dnorm возвращает значение функции плотности вероятности (PDF) нормального распределения при заданной случайной величине x , среднем значении μ и стандартном отклонении населения σ.Синтаксис использования dnorm следующий:

dnorm(x, среднее, sd)

Следующий код иллюстрирует несколько примеров работы dnorm :

#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

Обычно, когда вы пытаетесь решить вопросы о вероятности с помощью нормального распределения, вы часто будете использовать pnorm вместо dnorm.Однако одним полезным применением dnorm является создание графика нормального распределения в R. Следующий код иллюстрирует, как это сделать:

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

Это генерирует следующий сюжет:

пнорм

Функция pnorm возвращает значение кумулятивной функции плотности (cdf) нормального распределения с учетом определенной случайной величины q , среднего значения μ и стандартного отклонения населения σ.Синтаксис использования pnorm следующий:

pnorm(q, среднее, sd)

Проще говоря, pnorm возвращает площадь слева от заданного значения x в нормальном распределении. Если вас интересует область справа от заданного значения q , вы можете просто добавить аргумент lower.tail = FALSE

pnorm(q, среднее, стандартное отклонение, нижний.хвост = ЛОЖЬ)

В следующих примерах показано, как решать некоторые вероятностные вопросы с помощью pnorm.

Пример 1. Предположим, что рост мальчиков в определенной школе нормально распределен со средним значением μ = 70 дюймов и стандартным отклонением σ = 2 дюйма. Приблизительно какой процент мальчиков в этой школе выше 74 дюймов?

#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

В этой школе 2,275% мальчиков выше 74 дюймов.

Пример 2. Предположим, что вес определенного вида выдр нормально распределен со средним значением μ = 30 фунтов и стандартным отклонением σ = 5 фунтов. Приблизительно какой процент этого вида выдр весит менее 22 фунтов?

#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

Приблизительно 5,4799% этого вида выдр весят менее 22 фунтов.

Пример 3. Предположим, что высота растений в определенном регионе нормально распределена со средним значением μ = 13 дюймов и стандартным отклонением σ = 2 дюйма. Примерно какой процент растений в этом регионе имеет высоту от 10 до 14 дюймов?

#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

Приблизительно 62,4655% растений в этом регионе имеют высоту от 10 до 14 дюймов.

qнорма

Функция qnorm возвращает значение обратной кумулятивной функции плотности (cdf) нормального распределения с заданной случайной величиной p , средним значением μ и стандартным отклонением населения σ.Синтаксис использования qnorm следующий:

qnorm(p, среднее, sd)

Проще говоря, вы можете использовать qnorm , чтобы узнать, какова Z-оценка p -го квантиля нормального распределения.

Следующий код иллюстрирует несколько примеров использования qnorm в действии:

#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

норм

Функция rnorm генерирует вектор нормально распределенных случайных величин с учетом длины вектора n , среднего значения μ и стандартного отклонения населения σ.Синтаксис использования rnorm следующий:

rnorm(n, среднее, sd)

Следующий код иллюстрирует несколько примеров использования rnorm в действии:

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

В результате получаются следующие гистограммы:

Обратите внимание, что широкое распределение гораздо шире, чем узкое. Это связано с тем, что мы указали стандартное отклонение в широком распределении равным 25 по сравнению с 15 в узком распределении. Также обратите внимание, что обе гистограммы сосредоточены вокруг среднего значения 50.

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.