En este post les dejo un simple código en Stata que genera una tabla de diferencias de medias (entre 2 grupos) para un conjunto de variables. Se verá así:
Armar una tabla de este tipo será útil, por ejemplo, cuando donde deseamos comparar un conjunto de variables entre un grupo tratamiento y un grupo de control.
Stata posee el comando ttest para realizar tests de este tipo, pero no incorpora, hasta donde conozco, una funcionalidad para múltiples tests.
Este código realiza los tests sobre una gran cantidad de variables, genera y exporta una tabla similar a las que encontramos en una publicación. La tabla queda guardada en un archivo.txt. Luego, suelo importar esta tabla al Excel (insert>data>text) para retoques finales antes de llevarla al documento final. Les dejo este archivo a modo de template también. Por simplicidad, los asteriscos que muestran significatividad estadística, paréntesis y corchetes son añadidos -también automáticamente- en el segundo paso en Excel.
No voy a entrar aquí en el tema de false-discovery rates, que podría ser relevante en una aplicación de este tipo. Queda para un futuro post.
Pueden probar el código con esta base, que contiene los resultados de una encuesta sobre calidad de atributos urbanos para dos grupos (uno “tratamiento” y uno “control”).
Si les resultó útil, o por comentario o sugerencias por favor dejen un comentario!
[sourcecode language=”text” firstline=”1″ highlight=”1,3,5,7″ padlinenumbers=”false”] *Definir la carpeta donde se guardará la tablacd "C:\Users\Ricardo Pasquini\Documents\otros"
* Un global guarda los nombres de las variables a testear
global TTESTVARS "veredalimpia_nota verdes_nota ilum_nota nocheseg_nota veredallovio_nota arbol_nota ordentrans"
* Definimos aqui una etiqueta para cada variable. Las etiquetas apareceran en la tabla en vez de los nombres de las variables
global TTESTLABELS "veredas_limpias espacios_verdes iluminacion seguridad_de_noche veredas_cuando_llueve arbolado orden_transito"
* Definir aqui el nombre de la variable binaria que separa a los dos grupos. En este ejemplo es "intervencion"
gen groups=intervencion
sum $TTESTVARS
/* Define el nombre de la tabla*/
capture: erase descstats.txt
file open fh using descstats.txt, write replace
file write fh _n _tab "Tests de Diferencias de Medias"
file write fh _n _tab "Variable" _tab "Obs Control" _tab "Media Control" _tab "Obs Tratamiento" _tab "Media Tratamiento" _tab "Diff" _tab "t"
local i=1
foreach var of global TTESTVARS {
local etiqueta : word `i’ of $TTESTLABELS
capture quietly ttest `var’, by(groups)
local se_1 = (r(sd_1))/(r(N_1))^0.5
local se_2 = (r(sd_2))/(r(N_2))^0.5
local dif =(r(mu_1)-r(mu_2))
file write fh _n _tab "`etiqueta’" _tab %12.0fc (r(N_1)) _tab %12.3fc (r(mu_1)) _tab %12.0fc (r(N_2)) _tab %12.3fc (r(mu_2)) _tab %12.3fc (`dif’) _tab %12.3fc (r(t))
file write fh _n _tab _tab _tab %12.3fc (`se_1′) _tab _tab %12.3fc (`se_2′) _tab %12.3fc (r(se)) _tab %12.3fc (r(p))
local i=`i’+1
}
file close fh
type descstats.txt
[/sourcecode]
I attribute my success to this: I never gave or took any excuse. (Başarımı şuna borçluyum: Hiçbir zaman bahane üretmedim ve kabul etmedim.) – Florence Nightingale