статистика::

Сгенерируйте случайный генератор для элементов конечного выборочного пространства

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

stats::finiteRandom([x1, x2, …], [p1, p2, …], <Seed = n>)
stats::finiteRandom([[x1, p1], [x2, p2], …], <Seed = n>)
stats::finiteRandom(n, <c1, c2>, <Seed = n>)
stats::finiteRandom(n, <[c1, c2]>, <Seed = n>)

Описание

stats::finiteRandom([x1, x2, …, xn], [p1, p2, …, pn]) возвращает процедуру, которая выбирает случайные элементы от данных x1, x2 и т.д. Возможностям выбирания элементов дают вероятности p1, p2 и т.д.

Процедура f := stats::finiteRandom([x1, x2, …], [p1, p2, …]) может быть названа в форме f(). Вызов f() возвращает один из элементов данных x1, x2, ….

Значения X = f() распределяется случайным образом согласно функции дискретного распределения выборочного пространства, т.е. вероятности Xx, даны stats::finiteCDF([x1, x2, …], [p1, p2, …])(x).

Все значения вероятности p1, p2, … должны быть конвертируемыми к числам с плавающей запятой. Они должны составить в целом 1.

Без опции Seed = n, начальный seed выбран внутренне. Этот начальный seed установлен в значение по умолчанию, когда MuPAD® запускается. Таким образом, каждый раз, когда MuPAD запускается или повторно инициализируется с функцией reset, случайные генераторы производят те же последовательности чисел.

Примечание

В отличие от функционального random, генераторы, произведенные stats::finiteRandom, не реагируют на переменную окружения SEED.

Для эффективности рекомендуется произвести последовательности случайных чисел K через

f := stats::finiteRandom([x1, x2, …], [p1, p2, …]):

f() $k = 1..K;

вместо

stats::finiteRandom([x_1, x_2, dots], [p_1, p_2, dots])() $k = 1..K;

Последний вызов производит последовательность генераторов, каждый из которых называется однажды. Также отметьте это

stats::finiteRandom([x_1, x_2, dots], [p_1, p_2, dots], Seed = s)() $k = 1..K;

не производит случайную последовательность, потому что последовательность недавно инициализированных генераторов была бы создана каждый из них производящий тот же номер.

stats::finiteRandom обобщает stats::empiricalRandom, который принимает равновероятные данные. Для числовых данных x1, x2, … вызов stats::finiteRandom([x_1, dots, x_n], [1/n, dots, 1/n]) соответствует stats::empiricalRandom([x1, …, xn]).

Примеры

Пример 1

Мы выбираем случайные элементы некоторых данных:

f := stats::finiteRandom([1, x, y, PI],
                         [1/4, 3/8, 1/4, 1/8],
                                  Seed = 234):
f(), f(), f(), f(), f(), f(), f(), f(), f()

Также данные могут быть переданы как список:

f := stats::finiteRandom([[1, 1/4], [x, 3/8],
                          [y, 1/4], [PI, 1/8]],
                                   Seed = 234):
f(), f(), f(), f(), f(), f(), f(), f(), f()

delete f:

Пример 2

Мы создаем выборку типа stats::sample, состоящий из одного столбца строки и двух столбцов нестроки:

s := stats::sample(
  [["1996", 1242, 2/5],
   ["1997", 1353, 0.1],
   ["1998", 1142, 0.2],
   ["1999", 1201, 0.2],
   ["2001", 1201, 0.1]])
"1996"  1242  2/5
"1997"  1353  0.1
"1998"  1142  0.2
"1999"  1201  0.2
"2001"  1201  0.1

Мы выбираем случайные значения с помощью данных в первом и третьем столбце:

f := stats::finiteRandom(s, 1, 3, Seed = 123):
f(), f(), f(), f(), f(), f(), f()

delete s, f:

Пример 3

Мы бросаем загруженную монету:

f:= stats::finiteRandom([Head, Tail], [0.4, 0.6], Seed = 123):
f(), f(), f(), f(), f(), f(), f(), f(), f(), f()

Мы бросаем монету 10000 раз и считаем количество Голов и Хвостов:

t := [f() $ k = 1..10^4]:
NumberOfHeads = nops(select(t, _equal, Head)),
NumberOfTails = nops(select(t, _equal, Tail))

delete f, t:

Пример 4

Значения вероятности должны составить в целом 1:

stats::finiteRandom([Head, TAIL], [0.45, 0.54]):
Error: Probabilities do not add up to 1. [stats::finiteRandom]

Параметры

x1, x2, …

Статистические данные: произвольные объекты MuPAD

p1, p2, …

Значения вероятности: действительные численные значения

s

Выборка доменного типа stats::sample

c1, c2

Индексы столбца демонстрационного s: положительные целые числа. Столбец c 1 предоставляет данным x1, x2 и т.д. Столбец c 2, предоставляет данным p1, p2 и т.д. Нет никакой потребности задать номера столбцов, если выборка имеет только два столбца.

Опции

Seed

Опция, заданная как Seed = n

Инициализирует случайный генератор с целочисленным seed n. n может также быть опцией CurrentTime, чтобы заставить seed зависеть от текущего времени.

Эта опция служит для генерации генераторов, которые возвращают предсказуемые последовательности псевдослучайных значений. Генератор инициализируется с seed n, который может быть произвольным целым числом. Несколько генераторов с тем же начальным seed производят ту же последовательность значений.

Возвращаемые значения

процедура.

Алгоритмы

Случайные значения выбраны путем применения функции квантиля к равномерно распределенным случайным числам между 0 и 1.