25 ago 2014

¿Cómo hacer pruebas de hipótesis en STATA?

BORRADOR
En el documento se presentan algunos comentarios y ejemplos del Cap. 4 (Multiple Regression Analysis: Inference), del libro de Econometria de Wooldridge 2009 (4ta ed.).

- Las hipótesis deben establecerse antes de mirar los datos. 
- El contexto de los ejemplos debe leerse en el libro.


¿Cómo analizar el estadístico t usando STATA?


**Ejemplo 4.1

*ALTERNATIVA DE UNA COLA

insheet using "C:\Users\Nerys\Documents\Biblioteca\Econometria, libos ebooks\Solucion a ejercicios de econometria\Base de datos wooldridge\wage1.csv ", comma clear

. *Como usar el t para probar h0: Bj=0
. reg lwage educ exper tenure

      Source |       SS       df       MS              Number of obs =     526
-------------+------------------------------           F(  3,   522) =   80.39
       Model |  46.8741796     3  15.6247265           Prob > F      =  0.0000
    Residual |  101.455581   522  .194359351           R-squared     =  0.3160
-------------+------------------------------           Adj R-squared =  0.3121
       Total |  148.329761   525  .282532878           Root MSE      =  .44086

------------------------------------------------------------------------------
       lwage |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        educ |    .092029   .0073299    12.56   0.000     .0776292    .1064288
       exper |   .0041211   .0017233     2.39   0.017     .0007357    .0075065
      tenure |   .0220672   .0030936     7.13   0.000     .0159897    .0281448
       _cons |   .2843595   .1041904     2.73   0.007     .0796755    .4890435
------------------------------------------------------------------------------

. display _b[exper]*3
.01236333

*t calculado 2.31 se compara con el t crítico de la normal(de tabla) (1.645 para 5% de significancia y 2.326 al 1%), por tanto (tcal>tcriti) la variable es estadísticamente mayor que cero al 1% de significancia. Cuando se tiene más de 122 gl se pueden usar los t de la normal.

*t= Coef.   / Std. Err., por tanto siempre tendra el signo del coef, aunque stata siempre arroja el resultado en terminos absolutos.

**Ejemplo 4.2
*ALTERNATIVA DE UNA COLA

insheet using "C:\Users\Nerys\Documents\Biblioteca\Econometria, libos ebooks\Solucion a ejercicios de econometria\Base de datos wooldridge\meap93.csv ", comma clear

*se prueba la hipótesis de que el tamaño de la escuela (enroll) no incide en las puntuaciones de los exámenes (math10)

. regress math10 totcomp staff enroll

      Source |       SS       df       MS              Number of obs =     408
-------------+------------------------------           F(  3,   404) =    7.70
       Model |  2422.93434     3  807.644779           Prob > F      =  0.0001
    Residual |  42394.2462   404  104.936253           R-squared     =  0.0541
-------------+------------------------------           Adj R-squared =  0.0470
       Total |  44817.1805   407  110.115923           Root MSE      =  10.244

------------------------------------------------------------------------------
      math10 |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
     totcomp |   .0004586   .0001004     4.57   0.000     .0002613    .0006559
       staff |   .0479199    .039814     1.20   0.229    -.0303487    .1261884
      enroll |  -.0001976   .0002152    -0.92   0.359    -.0006207    .0002255
       _cons |   2.274021   6.113794     0.37   0.710    -9.744801    14.29284
------------------------------------------------------------------------------

*En este caso existen 404 gl, se puede usar la c normal. Al 5% es -1.645, como el t es -.92 no se puede rechazar h0.

. regress math10 ltotcomp lstaff lenroll

*cambiando la forma funcional se permite reducir el efecto del tamaño de la escuela a medida que esta aumenta

. display _b[lenrol]/100
-.01268042

**Ejemplo 4.3
*ALTERNATIVA DE DOS COLA

insheet using "C:\Users\Nerys\Documents\Biblioteca\Econometria, libos ebooks\Solucion a ejercicios de econometria\Base de datos wooldridge\gpa1.csv ", comma clear

. regress colgpa hsgpa act skipped

------------------------------------------------------------------------------
      colgpa |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       hsgpa |   .4118162   .0936742     4.40   0.000     .2265819    .5970505
         act |   .0147202   .0105649     1.39   0.166    -.0061711    .0356115
     skipped |  -.0831131   .0259985    -3.20   0.002    -.1345234   -.0317028
       _cons |   1.389554   .3315535     4.19   0.000     .7339295    2.045178
------------------------------------------------------------------------------

*el t de 4.40 de hsgpa muestra que la variables es significativa aun para valores de significancia muy pequeños. Sin embargo ACT no es significativa.

Otras alternativas de hipótesis respecto a Beta

**Ejemplo 4.4
*En ocasiones es necesario testear sobre si el parámetro asume valores diferentes a cer. Como  por ejemplo 1 o -1. En este caso el valor de t es:
t = (estimación – valor hipotético)/Err. Stan
Regla de rechazo: se rechaza ho si t>c

insheet using "C:\Users\Nerys\Documents\Biblioteca\Econometria, libos ebooks\Solucion a ejercicios de econometria\Base de datos wooldridge\campus.csv ", comma clear

. gen lcrime=ln(crime)
. gen lenrroll=ln(enroll)
. regress  lcrime lenrroll

      Source |       SS       df       MS              Number of obs =      97
-------------+------------------------------           F(  1,    95) =  133.79
       Model |  107.083654     1  107.083654           Prob > F      =  0.0000
    Residual |  76.0358244    95  .800377098           R-squared     =  0.5848
-------------+------------------------------           Adj R-squared =  0.5804
       Total |  183.119479    96  1.90749457           Root MSE      =  .89464

------------------------------------------------------------------------------
      lcrime |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
    lenrroll |    1.26976    .109776    11.57   0.000     1.051827    1.487693
       _cons |   -6.63137    1.03354    -6.42   0.000    -8.683206   -4.579533
------------------------------------------------------------------------------

*Elasticidad estimada lenrroll |    1.26976   
* lo que muestra evidencia a favor de mayor a 1.

. test lenrroll=1

 ( 1)  lenrroll = 1

       F(  1,    95) =    6.04
            Prob > F =    0.0158    //este es el valor critico

. local tvalue=(_b[lenrrol]-1)/_se[lenrrol]
. local pvalue=ttail(120, `tvalue')
. display "T-value: " `tvalue' ", P-value: " `pvalue'
T-value: 2.45737, P-value: .00771259     // T-value: es el t calculado

*al 5% claramente se rechaza h0.

**Ejemplo 4.5
insheet using "C:\Users\Nerys\Documents\Biblioteca\Econometria, libos ebooks\Solucion a ejercicios de econometria\Base de datos wooldridge\hprice2.csv ", comma clear

. gen ldist=ln(dist)
. regress lprice lnox ldist rooms stratio

      Source |       SS       df       MS              Number of obs =     506
-------------+------------------------------           F(  4,   501) =  175.86
       Model |  49.3987735     4  12.3496934           Prob > F      =  0.0000
    Residual |  35.1834974   501  .070226542           R-squared     =  0.5840
-------------+------------------------------           Adj R-squared =  0.5807
       Total |  84.5822709   505  .167489645           Root MSE      =    .265

------------------------------------------------------------------------------
      lprice |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        lnox |    -.95354   .1167418    -8.17   0.000    -1.182904   -.7241762
       ldist |  -.1343401   .0431032    -3.12   0.002    -.2190255   -.0496548
       rooms |   .2545271   .0185303    13.74   0.000     .2181203    .2909338
     stratio |  -.0524512   .0058971    -8.89   0.000    -.0640373   -.0408651
       _cons |   11.08387   .3181115    34.84   0.000     10.45887    11.70886
------------------------------------------------------------------------------

*se desea probar la elasticidad de lnox. 

. scalar tvalue=(_b[lnox]+1)/_se[lnox]

HASTA AQUÍ SE HA UTILIZADO UN PROCEDIMIENTO CLASICO. CALCULAR EL T, SEGÚN LA HIPOTESIS PLANTEADA, ELEGIR EL NIVEL DE SIGNIFICANCIA Y LUEGO ENCONTRAR EL T DE TABLA QUE CORRESPONDE PARA POR ULTIMO COMPARAR.Ahora en vez de testear a distintos niveles de significancia se calcula el P-value.(¿Cuál es el menor nivel de significancia al que se rechazaría la hipótesis nula?.

P pequeños son evidencia en contra de la hipótesis nula.

Usar el P-valor (p-value) para test de hipótesis en STATA

**Ejemplo 4.6
insheet using "C:\Users\Nerys\Documents\Biblioteca\Econometria, libos ebooks\Solucion a ejercicios de econometria\Base de datos wooldridge\401k.csv ", comma clear

. regress prate mrate age totemp

      Source |       SS       df       MS              Number of obs =    1534
-------------+------------------------------           F(  3,  1530) =   56.41
       Model |  42666.5732     3  14222.1911           Prob > F      =  0.0000
    Residual |  385718.966  1530  252.103899           R-squared     =  0.0996
-------------+------------------------------           Adj R-squared =  0.0978
       Total |  428385.539  1533  279.442622           Root MSE      =  15.878

------------------------------------------------------------------------------
       prate |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       mrate |   5.441433   .5244086    10.38   0.000     4.412797    6.470068
         age |   .2694073   .0451486     5.97   0.000     .1808477    .3579669
      totemp |  -.0001298   .0000367    -3.53   0.000    -.0002018   -.0000578
       _cons |   80.29429   .7776952   103.25   0.000     78.76882    81.81975
------------------------------------------------------------------------------

. scalar tvalue=(_b[totemp])/_se[totemp]
. scalar pvalue=1-(ttail(1529, tvalue))
. display _b[totemp]*10000

Test de hipótesis usando intervalos de confianza en STATA

**Ejemplo 4.8
PRUEBA DE HIPOTESIS CON INTERVALOS DE CONFIANZA
insheet using "C:\Users\Nerys\Documents\Biblioteca\Econometria, libos ebooks\Solucion a ejercicios de econometria\Base de datos wooldridge\rdchem.csv ", comma clear

. gen lrd=ln(rd)
. gen lsales=ln(sales)

. regress lrd lsales profmarg

      Source |       SS       df       MS              Number of obs =      32
-------------+------------------------------           F(  2,    29) =  162.24
       Model |  85.5970592     2  42.7985296           Prob > F      =  0.0000
    Residual |  7.65020517    29  .263800178           R-squared     =  0.9180
-------------+------------------------------           Adj R-squared =  0.9123
       Total |  93.2472644    31  3.00797627           Root MSE      =  .51361

------------------------------------------------------------------------------
         lrd |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
      lsales |   1.084228   .0601941    18.01   0.000     .9611171    1.207339
    profmarg |   .0216594    .012782     1.69   0.101    -.0044827    .0478015
       _cons |  -4.378348   .4680132    -9.36   0.000    -5.335543   -3.421154
------------------------------------------------------------------------------

*STATA proporciona directamente el intervalo de confianza para el estimador al 95% de significancia. ahora la regla de rechazo dependerá de si el valor testeado se encuentra fuera o dentro del intervalo obtenido. En este caso la unidad se encuentra dentro del intervalo, por lo que no se rechaza la h0; Beta[lsales]=1

HASTA AHORA SOLO SE HAN PROBADO HIPOTESIS RESPECTO A UN SOLO PARAMETRO, NO OBSTANTE TAMBIEN SE HACE NECESARIO PROBAR HIPOTESIS SOBRE VARIOS ELEMENTOS A LA VEZ.

El estadístico F de significancia conjunta. 

*Se estima un modelo, luego se eliminan variables a ver cómo cambian la suma de resídales al cuadrado y se crea un estadístico a partir de este cambio.

insheet using "C:\Users\Nerys\Documents\Biblioteca\Econometria, libos ebooks\Solucion a ejercicios de econometria\Base de datos wooldridge\mlb1.csv ", comma clear

estimates store m21, title(Model 1)
     regress lsalary years gamesyr bavg hrunsyr rbisyr

estimates store m23, title(Model 2)
     regress lsalary years gamesyr


estout m21 m23, cells(b(star fmt(5)) se(par fmt(5))) legend label varlabels(_cons constant) stats(N r2 rss)

----------------------------------------------------
                     Model comp~2         Model 2  
                             b/se            b/se  
----------------------------------------------------
years                     0.06886***      0.07132***
                        (0.01211)       (0.01251)  
gamesyr                   0.01255***      0.02017***
                        (0.00265)       (0.00134)  
bavg                      0.00098                  
                        (0.00110)                  
hrunsyr                   0.01443                  
                        (0.01606)                  
rbisyr                    0.01077                  
                        (0.00717)                  
constant                 11.19242***     11.22380***
                        (0.28882)       (0.10831)  
----------------------------------------------------
N                       353.00000       353.00000  
r2                        0.62780         0.59707  
rss                     183.18632       198.31150  
----------------------------------------------------
* p<0.05, ** p<0.01, *** p<0.001

*Algebraicamente, siempre que se eliminen variables del modelo se incrementa la SRC. Lo que se busca es ver si este aumento es suficientemente grande como para afirmar que estas variables son no significativas conjuntamente. Pero para poder probar hipótesis también se necesita un estadístico.

SSE(R): SRC(modelo rest)
SSE(F): SRC(modelo NO rest)
q     : No. De variables omitidas
n     : # observaciones
k     : # variables independientes
(n-k-1)son los grados de libertad del modelo no restringido

Regla de rechazo: F>c

scalar F=((198.31150-183.18632)/3)/(183.18632/(353-5-1))  
. display F
9.5502718

*cuando se rechaza h0, se dice que las variables son significativas conjuntamente. Una manera de llamar los valore crítico de la distribución F es:

. display invF(3,347,.95)
2.6306415

. display invF(3,347,.99)
3.83852

*por lo que el número es superior a los valores críticos, por lo que se rechaza h0 que indicaba que las variables omitidas no tienen un efecto. Según Wooldridge esto puede pasar aunque las variables de forma individual no sean significativas, por cuestión de correlación y multicolinialidad que impida ver claramente los efectos parciales.

*valores pequenos de F, muestra evidencia en contra de la Hipótesis nula






Recodificación de variables usando dplyr en R

Una base de datos suele tener diversos tipos de variables del tipo cualitativo y cuantitativo. En función del tipo de variables aplicamos di...