Skip to content

Instantly share code, notes, and snippets.

@RodolfoFerro
Created June 2, 2017 18:46
Show Gist options
  • Save RodolfoFerro/3d2a9f17acf088fe375c04a516a9300a to your computer and use it in GitHub Desktop.
Save RodolfoFerro/3d2a9f17acf088fe375c04a516a9300a to your computer and use it in GitHub Desktop.
Simulación de datos para posterior modelado con Beta Generalizada de Tipo II.
# Rodolfo Ferro Pérez
# ferro@cimat.mx
# Simulación de datos Beta Generalizada de Tipo II, LogNormal y mezcla de LogNormales.
# Liberar memoria:
rm(list=ls())
# Set path:
setwd("/Users/RodolfoFerro/Desktop/simulación")
breaks = 70
# Número de datos:
num_datos = 1000
#=============== Simulación de datos: ===============#
#====== I. Beta generalizada de tipo II:
library(GB2) # loading package GB2
# Parámetros:
a = 3.25
b = 17000
p = 0.8
q = 0.35
# Simulamos una muestra uniforme de N datos:
datos_unif = runif(num_datos)
# Por el método de la transformada inversa:
simulados = qgb2(datos_unif, a, b, p, q)
simulados
# Graficamos histograma:
png('BetaGeneralizadaII.png') # Para iniciar el guardado de imagen
hist(simulados,freq=F,main="Histograma de datos simulados \n& densidad ajustada \n Beta Generalizada de Tipo II",
xlab="Datos",ylab="Frecuencia de datos",
border="white", col="steelblue", breaks=breaks)
lines(density(simulados, adjust=1.0), col="red", lwd=2)
dev.off() # Fin de guardado de imagen
# Guardamos como csv:
write.csv(simulados, file = "simul_GB2.csv")
#====== II. Lognormal:
# Parámetros:
mu = 11.04465
s = 1.180168
# Simulamos una muestra uniforme de N datos:
datos_unif = runif(num_datos)
# Por el método de la transformada inversa:
simulados = qlnorm(datos_unif, mu, s)
simulados
# Graficamos histograma:
png('LogNormal.png') # Para iniciar el guardado de imagen
hist(simulados,freq=F,main="Histograma de datos simulados \n& densidad ajustada \n LogNormal",
xlab="Datos",ylab="Frecuencia de datos",
border="white", col="steelblue", breaks=breaks)
lines(density(simulados, adjust=1.0), col="red", lwd=2)
dev.off() # Fin de guardado de imagen
# Guardamos como csv:
write.csv(simulados, file = "simul_LNORM.csv")
#====== III. Mix-Lognormal 1:
# Parámetros:
mu1 = 11.04465
s1 = 1.180168
mu2 = 13.0
s2 = 2.0
# Simulamos una muestra uniforme de N datos:
datos_unif1 = runif(num_datos)
datos_unif2 = runif(num_datos)
# Por el método de la transformada inversa:
simulados1 = qlnorm(datos_unif1, mu1, s1)
simulados1
simulados2 = qlnorm(datos_unif2, mu2, s2)
simulados2
simulados = 0.9*simulados1 + 0.1*simulados2
# Graficamos histograma:
png('MixLogNormal1.png') # Para iniciar el guardado de imagen
hist(simulados,freq=F,main="Histograma de datos simulados \n& densidad ajustada \n LogNormal",
xlab="Datos",ylab="Frecuencia de datos",
border="white", col="steelblue", breaks=breaks)
lines(density(simulados, adjust=1.0), col="red", lwd=2)
dev.off() # Fin de guardado de imagen
# Guardamos como csv:
write.csv(simulados, file = "simul_MixLNORM1.csv")
#====== IV. Mix-Lognormal 2:
# Parámetros:
mu1 = 11.04465
s1 = 1.180168
mu2 = 100.0
s2 = 0.6
# Simulamos una muestra uniforme de N datos:
datos_unif1 = runif(num_datos)
datos_unif2 = runif(num_datos)
# Por el método de la transformada inversa:
simulados1 = qlnorm(datos_unif1, mu1, s1)
simulados1
simulados2 = qlnorm(datos_unif2, mu2, s2)
simulados2
simulados = 0.9*simulados1 + 0.1*simulados2
length(simulados)
# Graficamos histograma:
png('MixLogNormal2.png') # Para iniciar el guardado de imagen
hist(simulados,freq=F,main="Histograma de datos simulados \n& densidad ajustada \n LogNormal",
xlab="Datos",ylab="Frecuencia de datos",
border="white", col="steelblue", breaks=breaks)
lines(density(simulados, adjust=1.0), col="red", lwd=2)
dev.off() # Fin de guardado de imagen
# Guardamos como csv:
write.csv(simulados, file = "simul_MixLNORM2.csv")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment