Есть ли способ сгенерировать набор данных с нормально распределенными случайными значениями в R без использования цикла? Каждая запись будет представлять собой независимую случайную величину с нормальным распределением.
Сгенерируйте матрицу с iid нормальными случайными величинами, используя R
Ответы (4)
Чтобы создать матрицу N
на M
из нормальных случайных величин iid, введите следующее:
matrix( rnorm(N*M,mean=0,sd=1), N, M)
настроить среднее значение и стандартное отклонение по желанию.
person
Macro
schedule
24.07.2012
Пока спрашивающий понимает, что N — это количество строк, а M — количество столбцов, этот ответ будет ему полезен.
- person IRTFM; 25.07.2012
@DWin, согласен. Это общепринятое обозначение при обращении к матрицам в любом контексте, верно?
- person Macro; 25.07.2012
Я не совсем уверен. Я знаю, что люди иногда выражают удивление по поводу того факта, что матрицы R заполняются в порядке столбцов вызовами
matrix
, если byrow=TRUE. Это навело меня на мысль, что в разных языках могут быть различия в матричных соглашениях.
- person IRTFM; 25.07.2012
для
matrix
можно указать один из nrow
или ncol
- person qwr; 01.05.2021
пусть mu
будет вектором средств, а sigma
вектором стандартных разработчиков.
mu<-1:10
sigma<-10:1
sample.size<-100
norm.mat<-mapply(function(x,y){rnorm(x,y,n=sample.size)},x=mu,y=sigma)
создаст матрицу со столбцами, содержащими соответствующие выборки
person
shhhhimhuntingrabbits
schedule
24.07.2012
Ты можешь использовать:
replicate(NumbOfColumns,rnorm(NumbOfLines))
Вы можете заменить rnorm
другой функцией распределения, например runif
, чтобы сгенерировать матрицы с другими распределениями.
person
Guilherme Salomé
schedule
11.05.2015
Примечание: каждая запись независима. Таким образом, вы не можете избежать использования циклов for, потому что вы должны вызывать rnorm один раз для каждой независимой переменной. Если вы просто вызовете rnorm(n*m), это n*m выборок из одной и той же случайной величины!
person
Oddsun
schedule
11.04.2013
это неправильно и сбивает с толку ...
rnorm(n*m)
действительно генерирует n*m
независимые случайные выборки точно так, как запросил OP.
- person Ben Bolker; 11.04.2013
matrix(rnorm(n*p),n)
для матрицы $n \times p$ с iid $\mathcal N(0,1)$ элементами. - person cardinal   schedule 25.07.2012