10 votos

Explicación de la simulación estadística

No soy un estadístico. Así que, por favor, tened paciencia con mis errores si los hay.

¿Podría explicar de forma sencilla cómo se hace la simulación? Sé que elige una muestra aleatoria de una distribución normal y la usa para simular. Pero, no lo entiendo claramente.

27voto

ocram Puntos 9992

En estadística, la simulación se utiliza para evaluar el rendimiento de un método, típicamente cuando hay una falta de antecedentes teóricos. Con las simulaciones, el estadístico conoce y controla la verdad .

La simulación se utiliza ventajosamente en varias situaciones. Esto incluye proporcionando la estimación empírica de las distribuciones de muestras, estudiando la especificación errónea de las hipótesis en los procedimientos estadísticos, determinando la potencia en las pruebas de hipótesis, etc.

Los estudios de simulación deben ser diseñados con mucho rigor. Burton et al. (2006) dio una muy buena visión general en su documento ' El diseño de estudios de simulación en estadísticas médicas '. Los estudios de simulación realizados en una amplia variedad de situaciones pueden encontrarse en las referencias.

Ejemplo ilustrativo simple Considere el modelo lineal

$$ y = \mu + \beta * x + \epsilon $$

donde $x$ es una covariable binaria ( $x=0$ o $x=1$ ), y $ \epsilon \sim \mathcal {N}(0, \sigma ^2)$ . Usando simulaciones en R, comprobemos que

$$ E( \hat { \beta }) = \beta. $$

> #------settings------
> n <- 100            #sample size                          
> mu <- 5             #this is unknown in practice                         
> beta <- 2.7         #this is unknown in practice
> sigma <- 0.15       #this is unknown in practice
> #--------------------
> 
> #------set the seed so that this example can be replicated------
> set.seed(937)
> #---------------------------------------------------------------
>
> #------generate 1000 data sets and store betaHat------
> betaHat <- numeric(1000)
> for(i in 1:1000)
+ {
+     #generate the binary covariate --> n Bernoulli trials
+   x <- sample(x=c(0, 1), size=n, replace=TRUE, prob=c(0.5, 0.5))
+     #generate the errors
+   epsilon <- rnorm(n=n, mean=0, sd=sigma)
+     #form the response variable      
+   y <- mu + beta * x + epsilon 
+     #the ith generated data set
+   data_i <- data.frame(y=y, x=x)
+     #fit the model
+   mod <- lm(y~x, data=data_i)
+     #store the estimate of beta
+   betaHat[i] <- as.numeric(coef(mod)[2])     
+ }    
> #-----------------------------------------------------
> 
> #------E(betaHat) = beta?------
> mean(betaHat)
[1] 2.698609
> #------------------------------

Nota : Hay un carta al editor para el trabajo al que se hace referencia arriba.

5voto

Brettski Puntos 5485

En primer lugar, hay muchos, muchos tipos diferentes de simulación en las estadísticas, y aún más en los campos circundantes. Decir "Simulación" es tan útil como decir "Modelo", es decir, no mucho.

Basándome en el resto de tu pregunta, voy a suponer que te refieres a la simulación de Monte Carlo, pero incluso eso es un poco vago. Básicamente, lo que pasa es que repetidamente sacas muestras de a distribución (no tiene por qué ser normal) para hacer algún análisis estadístico de una población artificial con propiedades conocidas, pero aleatorias.

El propósito de esto tiende a caer en dos categorías:

¿Puede mi método manejar X? : Esencialmente, estás simulando una serie de muchas poblaciones aleatorias con una respuesta "correcta" conocida para ver si tu nueva técnica te devuelve dicha respuesta correcta. Como ejemplo básico, digamos que has desarrollado lo que crees que es una nueva forma de medir la correlación entre dos variables, X e Y. Simularías dos variables en las que el valor de Y depende del valor de X, junto con un poco de ruido aleatorio. Por ejemplo, Y = 0,25x + ruido. Luego crearía una población con algunos valores aleatorios de X, algunos valores de Y que fueran 0,25x + un número aleatorio, probablemente muchos miles de veces, y luego mostraría que, en promedio, su nueva técnica escupe un número que muestra correctamente que Y = 0,25x.

¿Qué pasa si? La simulación puede hacerse como un análisis de sensibilidad para un estudio existente. Digamos por ejemplo que he hecho un estudio de cohorte, pero sé que la medición de mi exposición no es muy buena. Clasifica incorrectamente el 30% de mis sujetos como expuestos cuando no deberían estarlo, y clasifica el 10% de mis sujetos como no expuestos cuando no deberían estarlo. El problema es que no tengo una prueba mejor, así que no sé cuál es cuál.

Tomaría mi población, y le daría a cada sujeto expuesto una oportunidad del 30% de cambiar a no expuesto, y a cada sujeto no expuesto una oportunidad del 10% de cambiar a expuesto. Luego haría miles de nuevas poblaciones, determinando al azar qué sujetos cambian, y volvería a hacer mi análisis. El rango de esos resultados me dará una buena estimación de cuánto podría cambiar el resultado de mi estudio si hubiera podido clasificar correctamente a todos.

Por supuesto, como siempre, hay una mayor complejidad, matiz y utilidad en la simulación, dependiendo de cuánto se quiera cavar.

5voto

Peter Puntos 1

La simulación también puede utilizarse para observar los procesos reales en condiciones teóricas, cuando esos procesos tienen entradas no lineales. Por ejemplo, una empresa manufacturera puede estar interesada en saber si es rentable añadir una línea de producción adicional, un centro de llamadas puede estar interesado en la forma de encaminar las llamadas en torno a los operadores para reducir el tiempo de espera y las tasas de rechazo de las llamadas, un departamento de emergencia puede estar interesado en la mejor forma de asignar personal y transferir pacientes, o un puerto de embarque puede estar interesado en la forma más eficiente de organizar sus operaciones con contenedores. La simulación de eventos discretos puede utilizarse para modelar estos procesos, y se pueden ajustar los parámetros para responder a preguntas del tipo "qué pasaría si". Estos tipos de simulación son importantes porque en situaciones de la vida real a menudo no se puede implementar el cambio propuesto y luego ver lo que sucede debido a los costos, el tiempo, la complejidad, etc.

Otra área de interés en la simulación son los sistemas complejos. Particularmente en las ciencias sociales, la simulación basada en agentes es un tipo de simulación interesante que está empezando a reunir más proponentes. En la simulación basada en agentes, los agentes (por ejemplo, las personas individuales) reciben atributos tales como personalidades e interactúan entre sí, de modo que se modela un sistema caótico. La simulación basada en agentes examina el efecto de los agentes circundantes entre sí, y se puede incluir el efecto a distancia. Aunque yo no he hecho ninguna simulación basada en agentes, he visto que se utiliza para modelar sistemas como la distribución geográfica del tamaño de la población en una comunidad prehistórica a lo largo del tiempo.

2voto

Lev Puntos 2212

La simulación reproduce la aleatoriedad inherente a una muestra estadística $x_1, \ldots ,x_n$ utilizando un generador seudoaleatorio (por ejemplo, un generador normal como rnorm) y utiliza la reproducibilidad de la generación seudoaleatoria para inferir acerca de la distribución de un procedimiento estadístico aplicado a la muestra original.

Un caso particularmente importante de técnica estadística basada en la simulación está relacionado con la [bootstrap](http://en.wikipedia.org/wiki/Bootstrapping%28statistics%29) introducido por Efron (1979). Dada una muestra $x_1, \ldots ,x_n$ el cdf empírico $$ \hat F_n(x) = \frac {1}{n} \sum_ {i=1}^n \mathbb {I}_{x_i \le x} $$ es un convergente (en $n$ ) aproximación al verdadero cdf, $F$ . Por lo tanto, cualquier cantidad que dependa de $F$ por ejemplo, una expectativa, $ \mathbb {E}_F[h(X)]$ o la distribución de una estadística $ \psi (X_1, \ldots ,X_n)$ puede ser aproximada por la cantidad correspondiente en $ \hat F_n$ . Que sólo puede ser evaluada por simulación, excepto en casos especiales. Por ejemplo, determinar el sesgo de $$ \hat \sigma ^2_n (x_1, \ldots ,x_n) = \frac {1}{n+1} \sum\ {i=1}^n (x_i- \bar x)^2 $$ como un estimador de $ \sigma ^2= \text {var}_F(X)$ se puede hacer por bootstrap: replicar muestras de tamaño $n$ $x^*_1, \ldots ,x^*_n$ de $ \hat F_n$ y calcular la diferencia $$ \beta = \hat \sigma ^2_n (x^*_1, \ldots ,x^*_n) - \hat \sigma ^2_n (x_1, \ldots ,x_n) $$ Esto produce una evaluación simulada del sesgo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X