En Greene, Análisis Econométrico, se muestra la siguiente tabla de una regresión probit:
Estoy intentando reproducir estos resultados. (Esta es mi forma preferida de entenderlo mejor). Mi pregunta: ¿Qué es esto? pendiente (derivada) en la columna de regresión Probit ? Creo que podría ser:
- La media de $$\frac{\partial f(x_i'\hat{\beta})}{\partial\hat{\beta}_j}$$
- O simplemente $$\frac{\partial f(\bar{x}'\hat{\beta})}{\partial\hat{\beta}_j}$$ como el $f(\bar{x}'\hat{\beta})$ cantidad en la parte inferior (Greene lo llama "factor de escala"). No he tenido problemas para reproducir este valor (0,328).
- O puede ser otra cosa. Hay algo llamado efecto marginal, definido como $f(x,\beta) \beta_k$ (no sé qué $x$ está aquí, puede ser $\bar{x}$ y si puedo interpretar $\beta$ como $\hat{\beta}$ ).
¿Existe una definición para esta cantidad de pendiente?
Mis intentos hasta ahora:
$ontext
Probit Estimation
-----------------
We use OLS to get a good starting point
Erwin Kalvelagen, Amsterdam Optimization
Data:
http://pages.stern.nyu.edu/~wgreene/Text/tables/TableF21-1.txt
$offtext
*-----------------------------------------------------------
* raw data from Greene
*-----------------------------------------------------------
sets
i 'records' /1*32/
p0 'all variables' /constant,grade,gpa,tuce,psi/
;
table data(i,p0)
GPA TUCE PSI GRADE
1 2.66 20 0 0
2 2.89 22 0 0
3 3.28 24 0 0
4 2.92 12 0 0
5 4.00 21 0 1
6 2.86 17 0 0
7 2.76 17 0 0
8 2.87 21 0 0
9 3.03 25 0 0
10 3.92 29 0 1
11 2.63 20 0 0
12 3.32 23 0 0
13 3.57 23 0 0
14 3.26 25 0 1
15 3.53 26 0 0
16 2.74 19 0 0
17 2.75 25 0 0
18 2.83 19 0 0
19 3.12 23 1 0
20 3.16 25 1 1
21 2.06 22 1 0
22 3.62 28 1 1
23 2.89 14 1 0
24 3.51 26 1 0
25 3.54 24 1 1
26 2.83 27 1 1
27 3.39 17 1 1
28 2.67 24 1 0
29 3.65 21 1 1
30 4.00 23 1 1
31 3.10 21 1 0
32 2.39 19 1 1
;
data(i,'constant') = 1;
display data;
*-----------------------------------------------------------
* extract data
* form y, x
*-----------------------------------------------------------
set p(p0) 'independent variables' /constant,gpa,tuce,psi/;
parameters
y(i) 'grade'
x(i,p) 'independent variables'
;
y(i) = data(i,'grade');
x(i,p) = data(i,p);
display x,y;
*-----------------------------------------------------------
* solve OLS as QP
*-----------------------------------------------------------
parameter estimate(p,*) 'results';
variable
sse 'sum of squared errors'
coeff(p) 'estimated coefficients'
e(i) 'error term'
;
equation
obj 'objective'
fit(i) 'linear fit'
;
obj.. sse =e= sum(i, sqr(e(i)));
fit(i).. y(i) =e= sum(p, coeff(p)*x(i,p)) + e(i);
model ols /obj,fit/;
solve ols using qcp minimizing sse;
estimate(p,'OLS') = coeff.l(p);
*-----------------------------------------------------------
* Max log likelihood
*-----------------------------------------------------------
variable logl 'log likelihood';
equation like;
like.. logl =e= sum(i$(y(i)=1), log(errorf(sum(p,coeff(p)*x(i,p)))))
+sum(i$(y(i)=0), log(1-errorf(sum(p,coeff(p)*x(i,p)))));
model mle /like/;
solve mle using nlp maximizing logl;
estimate(p,'Probit') = coeff.l(p);
display estimate;
*-----------------------------------------------------------
* reproduce f
*-----------------------------------------------------------
parameter xbar(p) 'mean of the data';
xbar(p) = sum(i,x(i,p))/card(i);
display xbar;
scalar f 'scale factor: density evaluated at the means';
f = errorf.grad(sum(p,xbar(p)*coeff.l(p)));
display f;
Conclusión: la pendiente es el "efecto marginal". Por lo tanto: $${\mathit slope}_j = f(\bar{x}'\hat{\beta})\cdot \hat{\beta}_j$$
parameter slope(p) 'marginal effect';
slope(p)$(not sameas(p,'constant')) = f*coeff.l(p);
display slope;
Este fue un ejercicio interesante.