Spiegazione della simulazione statistica


10

Non sono uno statistico. Quindi, per favore, sopporta con i miei errori, se ce ne sono.

Potresti spiegare in modo semplice come viene eseguita la simulazione? So che preleva alcuni campioni casuali da una distribuzione normale e li usa per la simulazione. Ma non capisco chiaramente.


11
Simulare cosa ?! :-)
chl

Esattamente nitpicking, ma a volte le domande scoraggiano chi le chiede, e questo è uno di questi casi.
Amit

1
@phaedrus È un commento alla mia intenzione? In tal caso, potresti spiegare cosa hai capito dalla domanda sopra?
chl

Risposte:


27

In statistica, la simulazione viene utilizzata per valutare le prestazioni di un metodo, in genere quando manca un background teorico. Con le simulazioni, lo statistico conosce e controlla la verità .

La simulazione viene utilizzata vantaggiosamente in diverse situazioni. Ciò include fornire la stima empirica delle distribuzioni di campionamento, studiare la mancata specificazione delle ipotesi nelle procedure statistiche, determinare la potenza nei test di ipotesi, ecc.

Gli studi di simulazione dovrebbero essere progettati con molto rigore. Burton et al. (2006) hanno fornito una panoramica molto bella nel loro articolo " La progettazione di studi di simulazione nelle statistiche mediche ". Studi di simulazione condotti in un'ampia varietà di situazioni possono essere trovati nei riferimenti.

Semplice esempio illustrativo Si consideri il modello lineare

y=μ+βx+ϵ

dove è una covariata binaria ( o ) e . Usando le simulazioni in R, controlliamo quellox = 0 x = 1 ϵ N ( 0 , σ 2 )xx=0x=1ϵN(0,σ2)

E(β^)=β.
> #------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 : è disponibile una lettera all'editore per il documento di cui sopra.


9

Prima di tutto, ci sono molti, molti diversi tipi di simulazione nelle statistiche e ancora di più nei campi circostanti. Dire "Simulazione" è utile quanto dire "Modello", vale a dire non molto.

Sulla base del resto della tua domanda, immagino che intendi la simulazione Monte Carlo, ma anche questo è un po 'vago. Fondamentalmente, ciò che accade è che prelevi ripetutamente campioni da una distribuzione (non è necessario che sia normale) per fare alcune analisi statistiche su una popolazione artificiale con proprietà note, ma casuali.

Lo scopo di questo tende a cadere in due categorie:

Il mio metodo può gestire X? : In sostanza, stai simulando una serie di molte popolazioni casuali con una risposta "giusta" nota per vedere se la tua nuova tecnica ti restituisce la risposta giusta. Ad esempio, supponiamo che tu abbia sviluppato quello che pensi sia un nuovo modo di misurare la correlazione tra due variabili, X e Y. Simuleresti due variabili in cui il valore di Y dipende dal valore di X, insieme a del rumore casuale. Ad esempio, Y = 0,25x + rumore. Dovresti quindi creare una popolazione con alcuni valori casuali di X, alcuni valori di Y che erano 0,25x + un numero casuale, probabilmente molte migliaia di volte, e quindi mostrerai che, in media, la tua nuova tecnica sputa un numero che mostra correttamente che Y = 0,25x.

Cosa succede se? La simulazione può essere eseguita come analisi di sensibilità per uno studio esistente. Diciamo ad esempio che ho condotto uno studio di coorte, ma so che la mia misurazione dell'esposizione non è molto buona. Classifica erroneamente il 30% dei miei soggetti come esposti quando non dovrebbero essere, e classifica il 10% dei miei soggetti come non esposti quando non dovrebbero essere. Il problema è che non ho un test migliore, quindi non so quale sia.

Prenderei la mia popolazione e darei a ogni soggetto esposto una probabilità del 30% di passare a non esposto, e ogni soggetto non esposto una probabilità del 10% di passare a esposti. Poi farei migliaia di nuove popolazioni, determinando casualmente quali soggetti cambiano e riproverò la mia analisi. La gamma di questi risultati mi darà una buona stima di quanto potrebbe cambiare il risultato del mio studio se avessi potuto classificare correttamente tutti.

Naturalmente, come sempre, c'è una maggiore complessità, sfumatura e utilità nella simulazione, a seconda di quanto si desidera scavare.


1. Quindi quello che hai spiegato nella tua risposta è la simulazione Monte-Carlo? 2. Esistono altri tipi di simulazioni (diverse da Monte-Carlo) utilizzate nelle statistiche?
vasili111,

5

La simulazione può anche essere utilizzata per esaminare processi reali in condizioni teoriche, in cui tali processi hanno input non lineari. Ad esempio, un'azienda manifatturiera potrebbe essere interessata a sapere se l'aggiunta di una linea di produzione aggiuntiva è conveniente, un call center potrebbe essere interessato a come instradare le chiamate intorno agli operatori per ridurre i tempi di attesa e le tariffe di chiamata per i chiamanti, un dipartimento di emergenza può essere interessato al modo migliore di organizzare il personale e trasferire i pazienti, oppure un porto di spedizione potrebbe essere interessato al modo più efficiente di organizzare le operazioni del container. La simulazione di eventi discreti può essere utilizzata per modellare questi processi e si possono regolare i parametri per rispondere a domande tipo "what if".

Un'altra area di interesse nella simulazione sono i sistemi complessi. Soprattutto nelle scienze sociali, la simulazione basata su agenti è un tipo interessante di simulazione che sta iniziando a raccogliere più sostenitori. Nella simulazione basata sugli agenti, agli agenti (ad es. Singole persone) vengono dati attributi come personalità e interagiscono tra loro, quindi modella un sistema caotico. La simulazione basata sull'agente esamina l'effetto degli agenti circostanti l'uno sull'altro e può essere incluso l'effetto a distanza. Anche se non ho fatto alcuna simulazione basata su agenti, l'ho vista utilizzata per modellare sistemi come la diffusione geografica della dimensione della popolazione in una comunità preistorica nel tempo.


Potete per favore fornire alcuni esempi?
vasili111,

Non sono sicuro di cosa intendi con alcuni esempi. Ho dato alcuni esempi nel mio primo paragrafo.
Michelle,

2

La simulazione riproduce la casualità inerente a un campione statistico utilizzando un generatore pseudo-casuale (ad esempio un generatore normale come rnorm) e utilizza la riproducibilità della generazione pseudo-casuale per inferire sulla distribuzione di una procedura statistica applicato al campione originale.x1,,xn

Un'istanza particolarmente importante della tecnica statistica basata sulla simulazione è legata al bootstrap , introdotto da Efron (1979). Dato un esempio , il cdf empirico è un convergente (in ) approssimazione al vero cdf, . Pertanto, qualsiasi quantità dipendente da , ad esempio un'aspettativa, o la distribuzione di una statistica , può essere approssimata dalla quantità corrispondente inF n ( x ) = 1x1,,xnnFFEF

F^n(x)=1ni=1nIxix
nFFEF[h(X)]ψ(X1,,Xn)F^n. Che può essere valutato solo mediante simulazione, ad eccezione di casi speciali. Ad esempio, determinare la distorsione di come stimatore di può essere eseguito da bootstrap: replicare campioni di dimensioni da e calcolare la differenza Produce una valutazione bootstrap simulata del bias.σ2=varF(X)nx * 1 ,...,x * n 1 ,...,xn)
σ^n2(x1,,xn)=1n+1i=1n(xix¯)2
σ2=varF(X)n x1,,xnF^n
β=σ^n2(x1,,xn)σ^n2(x1,,xn)

3
Credo che sia utile separare due concetti essenziali dietro il metodo di bootstrap. Lo stesso bootstrap dovrebbe essere pensato come un modo per modificare uno stimatore per produrre un altro stimatore (speriamo meglio). Può essere calcolato teoricamente, esattamente e (a volte) in forma chiusa. La simulazione non è parte integrante del bootstrap! Tuttavia, in molti casi la simulazione è un modo semplice e naturale per approssimare lo stimatore bootstrap. Vedi l'introduzione e il capitolo 1 in Hall, The Bootstrap e Edgeworth Expansion.
whuber

1
Per quanto riguarda la modifica: questo in realtà è un bell'esempio di un caso in cui la stima della distorsione da bootstrap può essere calcolata esattamente in forma chiusa:E[β | sample]=[2/(n+1)]σ^n2(x1,,xn).
whuber
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.