hipergeometrica - Generar matriz con iid variables aleatorias normales usando R
distribuciones de probabilidad en r (4)
¿Hay alguna manera de generar un conjunto de datos con valores aleatorios distribuidos normalmente en R sin usar un bucle? Cada entrada representaría una variable aleatoria independiente con una distribución normal.
Para crear una matriz N
por M
de iid variables aleatorias normales, escriba esto:
matrix( rnorm(N*M,mean=0,sd=1), N, M)
ajustar la media y la desviación estándar como se desee.
mu
que mu
sea un vector de medios y sigma
un vector de desarrolladores estándar
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)
produciría una matriz con columnas que contienen las muestras pertinentes
Aviso: cada entrada es independiente. Por lo tanto, no puede evitar el uso de bucles for, ya que debe llamar a rnorm una vez para cada variable independiente. Si simplemente llama a rnorm (n * m) ¡esa es la n * m muestras de la misma variable aleatoria!
Puedes usar:
replicate(NumbOfColumns,rnorm(NumbOfLines))
Puede reemplazar rnorm
con otra función de distribución, por ejemplo runif
, para generar matrices con otras distribuciones.