Una aplicación de Montecarlo
Diego José Torres Torres
Saturday, February 06, 2016
Las opciones son:
- En cada pregunta elegir una respuesta al azar (la llamaré estrategia aleatoria)
- En la primera pregunta elegir al azar una respuesta y luego seleccionar la misma opción en todas las demás preguntas (la llamaré estrategia fija).
La idea es hacer un experimento para verificar que esta estrategia es mejor y para eso usaremos el método de montecarlo. Este método consiste en definir unas condiciones probabilisticas y repetir un experimento muchas veces hasta que podamos verificar el comportamiento del estadístico que estamos analizando (por ejemplo, podemos probar como se comporta una regresión cuando no se cumple algunos de los supuestos o cuando la muestra es muy pequeña)
El programa en el cual lo he implementado es Stata y aquí está el código.
El resultado muestra que (asumiendo que no me he equivocado en el código), a pesar de lo que dice la intuición, ambas estrategias son igualmente buenas. En ambos casos tendrías de media un resultado de 20% sobre 100%, con mucha suerte 37% y en el peor de los casos un 6%. Así que la próxima vez que tengas este tipo de exámenes si no quieres ir cambiando la respuesta cada tanto, coloca todas la misma letra :).
summarize
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
fixed | 10000 .199851 .0400523 .08 .37
random | 10000 .200168 .0400925 .06 .35
ttest fixed==random
Paired t test
------------------------------------------------------------------------------
Variable | Obs Mean Std. Err. Std. Dev. [95% Conf. Interval]
---------+--------------------------------------------------------------------
fixed | 10000 .199851 .0004005 .0400523 .1990659 .2006361
random | 10000 .200168 .0004009 .0400925 .1993821 .2009539
---------+--------------------------------------------------------------------
diff | 10000 -.000317 .000568 .0567989 -.0014304 .0007964
------------------------------------------------------------------------------
mean(diff) = mean(fixed - random) t = -0.5581
Ho: mean(diff) = 0 degrees of freedom = 9999
Ha: mean(diff) < 0 Ha: mean(diff) != 0 Ha: mean(diff) > 0
Pr(T < t) = 0.2884 Pr(|T| > |t|) = 0.5768 Pr(T > t) = 0.7116
**************************************************************************
*
* Autor: Diego José Torres Torres
* Purpose: Apply Montecarlo modelling to check what strategy is pareto superior in * a multiple choice exam when you haven't studied
* Strategy A: Choice randomly every possible answer
* Strategy B: Only choose randomly the first question, the remaining questions you * stick to whatever you have chosen in the first question
*
**************************************************************************
drop _all
set more off
global nobs = 100 // 100 questions
global nmc = 10000 // number of montecarlo trials
set obs $nobs
gen true_answer = 0
gen strategy_random = 0
gen strategy_fixed = 0
gen score_random_strategy = 0
gen score_fixed_strategy=0
//////////////////////////////////
capture program drop multiplechoice // para borrar un programa definido
program multiplechoice, rclass
tempname sim
postfile `sim' fixed random using results, replace
quietly {
forvalues i = 1/$nmc {
noisily dis "Iteración: " `i'
replace true_answer = 1 + floor(5 * uniform()) // The correct answers
replace strategy_random = 1 + floor(5 * uniform()) // Random strategy
replace strategy_fixed = 1 + floor(5 * uniform()) if _n==1 // only the first question is random
replace strategy_fixed = strategy_fixed[1] if _n>1 //
replace score_random_strategy = true_answer==strategy_random // 1 if you selected the right answer
replace score_fixed_strategy = true_answer==strategy_fixed // 1 if you selected the right answer
su score_random_strategy
scalar random = r(mean)
su score_fixed_strategy
scalar fixed = r(mean)
post `sim' (fixed) (random)
//drop true_answer strategy_random strategy_fixed score_random_strategy score_fixed_strategy // drop generated variables to the next loop
}
}
postclose `sim'
end
multiplechoice
use results, clear
summarize
ttest fixed==random
// No difference between strategies... :(
No hay comentarios:
Publicar un comentario