*Ejemplo Frisch-Waugh *definir matriz de medias y varianzas matrix M=(2,3) matrix list M /*mostrar la matriz en pantalla*/ matrix V=(1,0\0,1) matrix list V *simular una normal bivariada como variable explicativa drawnorm x1 x2, n(100) cov(V) means(M) /*sintaxis drawnorm vector1 vector2 vector3 ..., n(n° muestras) cov(matriz var-cov) means(media)*/ *generar errores uniformes [-3,3] set obs 100 /*runiform() genera un escalar uniforme. Para generar 100 obs fijo obs=100*/ gen u= -3+(3+3)*runiform() codebook /*Sirve para chequear metadata: Labels, tipo de variable, missing values*/ sum *generar betas poblacionales gen beta1=6 gen beta2=4 *generar variable dependiente gen y=x1*beta1+x2*beta2+u *********************************************************** *********************************************************** *calcularemos el coeficiente asociado a x2 mediante el teorema *de Frisch Waugh. *Calcularemos el coeficiente asociado a x1 *parcializar y de x1 quietly reg y x2 /*quietly se usa para no mostrar la tabla de resultados en pantalla*/ *obtener residuos predict u1, resid *parcializar y de x2 quietly reg x1 x2 *obtener resiudos predict u2, resid *regresion entre variables parcializadas reg u1 u2 matrix fw=e(b) /* Guardamos la matriz con valores de Beta*/ *comprobamos resultado reg y x1 x2 matrix poolreg=e(b) display "El valor de beta calculado por FW y la pool regression son, respectivamente " fw[1,1] " y " poolreg[1,1]