Рубрики
Анализ данных

В чем разница между функциями rnorm (), runif () и sample () в R

Рассмотрим, как сгенерировать случайные числа с помощью функций rnorm(), runif() и sample() в R.

Функция rnorm ()

Функция rnorm() используется для генерации n нормальных случайных чисел с указанным средним значением и стандартным отклонением.

rnorm() генерирует случайные значения из нормального распределения. Нормально распределенные случайные числа интервала имеют вероятности, которые соответствуют кривой нормального распределения, поэтому числа, близкие к среднему, с большей вероятностью будут выбраны или произойдут.

Синтаксис функции rnorm ()

По умолчанию rnorm() выбирает нормальное распределение со средним значением 0 и стандартным отклонением 1. Функция rnorm() имеет два необязательных аргумента, mean и sd, которые позволяют установить другое среднее значение и стандартное отклонение соответственно.
Например:
rnorm (5, mean=2, sd=10)

генерирует 5 случайных чисел со средним значением 2 и стандартным отклонением 10:

9.2055176 -19.8462831 0.1921899 -6.9197523 2.4117743

Функция runif ()

Функция runif() используется для генерации n однородных случайных чисел, лежащих в интервале (min, max).

Функция runif() генерирует случайные значения из равномерного распределения. Равномерно распределенные случайные числа интервала имеют равную вероятность быть выбранными.

Синтаксис функции runif ()

Функция принимает требуемый аргумент n и возвращает это же число выборок в диапазоне от 0 до 1.

Например:

runif(5)

сгенерирует 5 случайных чисел: 

0.2002145 0.6852186 0.9168758 0.2843995 0.1046501

Функция runif() может принимать необязательные второй и третий аргументы, которые являются минимальным и максимальным значениями диапазона случайной последовательности чисел. По умолчанию функция использует диапазон от 0 до 1 включительно, но можно установить любой диапазон:

runif(5,0,10)

7.010575 5.279600 8.079352 9.565001 1.104530

Функция sample ()

Функция sample() используется для генерации случайной выборки наблюдений из совокупности. Важно убедиться, что размер выборки меньше генеральной совокупности.

Функция sample() похожа на runif(). Только runif() дает числа с плавающей точкой, а sample() — целые числа.

Синтаксис функции sample()

Для генерации целых чисел в диапазоне [min, max] функция имеет следующий вид: 

sample(x, size, replace = FALSE, prob = NULL)

где в качестве аргументов принимает:

  • x — целое число (эквивалентно 1:x) или вектор, ограничивающий диапазон (например a <- c(1:30));
  • size — количество генерируемых значений;
  • replace — разрешаются ли повторения. Атрибут replace относится к методам выборки. Когда мы выбираем replace = FALSE, элемент выборки не будет сохранен во всей генеральной совокупности, чтобы иметь возможность быть выбранным снова в той же выборке;
  • prob — вектор весов распределения, по умолчанию отсутствует (равномерное распределение).

Нормальное и равномерное распределение

Наглядно о том, что такое нормальное и равномерное распределение.

Нормальное и равномерное распределение

Синяя линия показывает равномерное распределение в диапазоне [−5,5]. Вероятность выбора каждого числа в диапазоне одинаковая («равномерная»). 

Зеленая линия показывает нормальное распределение со средним значением 0 и стандартным отклонением 1. Числа, близкие к среднему, с гораздо большей вероятностью будут выбраны, чем числа, далекие от среднего.