Руководство по dnorm, pnorm, qnorm и rnorm в r
Нормальное распределение является наиболее часто используемым распределением в статистике. В этом руководстве объясняется, как использовать нормальное распределение в R с помощью функций dnorm , pnorm , rnorm и qnorm .
чудовищный
Функция dnorm возвращает значение функции плотности вероятности (pdf) нормального распределения с учетом некоторой случайной величины x , среднего значения совокупности μ и стандартного отклонения совокупности σ . Синтаксис использования dnorm следующий:
dnorm(x, среднее, стандартное отклонение)
Следующий код демонстрирует несколько примеров 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, среднее, стандартное отклонение)
Проще говоря, pnorm возвращает площадь слева от заданного значения x в нормальном распределении. Если вас интересует область справа от заданного значения q , вы можете просто добавить аргумент low.tail = FALSE.
pnorm(q, среднее, стандартное отклонение, нижний.хвост = ЛОЖЬ)
Следующие примеры иллюстрируют, как решать некоторые вероятностные вопросы с помощью pnorm.
Пример 1: Предположим, что рост мужчин в определенной школе обычно распределяется со средним значением стандартным отклонением
#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
В этой школе 2275% мужчин имеют рост более 74 дюймов.
Пример 2: Предположим, что вес выдры определенного вида обычно распределяется со средним значением стандартным отклонением
#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: Предположим, что высота растений в определенном регионе обычно распределяется со средним значением стандартным отклонением
#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 дюймов.
норма
Функция qnorm возвращает значение обратной кумулятивной функции плотности (cdf) нормального распределения с учетом некоторой случайной величины p , среднего значения популяции μ и стандартного отклонения совокупности σ . Синтаксис использования qnorm следующий:
qnorm (p, среднее, стандартное отклонение)
Проще говоря, вы можете использовать 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, среднее, стандартное отклонение)
Следующий код демонстрирует несколько примеров 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.