clc clear all cd 'C:\Users\Nicolas\Documents\Clases\Econometría\' %% Modelo con efectos aleatorios %Idea: Modelo Y=XB+ai+ei, donde ai es un término aleatorio independiente de %los regresores y de los errores. %Y=dD+XB+u Modelo con efecto aleatorio. %Creo matriz x, 100 individuos (N) y 10 periodos (T), con 3 variables %explicativas (K). %Dimensión x, NxT x K, 100x10 x 3 %Dimensión Y, NxT x 1 %Dimensión e, NxT x 1 %Dimensión a, NxT x 1 %Dimensión B, K x 1 N=100; T=10; K=3; X=rand(N*T,K)*10; %No se incluye constante por efectos fijos s_e=2.3; e=randn(N*T,1)*s_e; %IID, sin autocorrelación ni heterocedasticidad B=[4 5 6]'; %Vector de parámetros de las X s_a=1.4; a0=randn(N,1)*s_a; k=1; a=zeros(N*T,1); for i=1:N for j=1:T a(k,1)=a0(i,1); k=k+1; end end Y=X*B+a+e; %% Estimación de modelo Random Effects %Modelo transformado Y=XB+alpha+u %Dimensión alpha: NxT x 1 %alpha es una constante %Dimensión u: NxT x 1 %u_it=e_it+(a_i-alpha) I=eye(N*T); I2=ones(N*T,1); y=(I-I2*(I2'*I2)^-1*I2')*Y; x=(I-I2*(I2'*I2)^-1*I2')*X; B_re=(x'*x)^-1*x'*y; %% Random Effects: Representación equivalente x_av=kron((1/(N*T))*sum(X,1),ones(N*T,1)); y_av=kron((1/(N*T))*sum(Y,1),ones(N*T,1)); x_x=(X-x_av); x_y=(Y-y_av); suma1=zeros(K,K); j=1; for i=1:N for t=1:T suma1=x_x(j,:)'*x_x(j,:)+suma1; j=j+1; end end suma2=zeros(K,1); j=1; for i=1:N for t=1:T suma2=x_x(j,:)'*x_y(j,:)+suma2; j=j+1; end end B_re2=suma1^-1*suma2; %% Random Effects: Between Estimation a=1; b=T; x_m=zeros(N,K); y_m=zeros(N,1); for i=1:N x_m(i,:)=mean(X(a:b,:),1); y_m(i,1)=mean(Y(a:b,1),1); a=b+1; b=b+T; end clear x_av clear y_av x_av=kron((1/(N*T))*sum(X,1),ones(N,1)); y_av=kron((1/(N*T))*sum(Y,1),ones(N,1)); clear suma_1 clear suma_2 clear x_x clear x_y x_x=(x_m-x_av); x_y=(y_m-y_av); suma1=zeros(K,K); j=1; for i=1:N suma1=x_x(j,:)'*x_x(j,:)+suma1; j=j+1; end suma2=zeros(K,1); j=1; for i=1:N suma2=x_x(j,:)'*x_y(j,:)+suma2; j=j+1; end B_be=suma1^-1*suma2; %% Panel Data FE %%Yit=XitB+eit %Estimación de efecto fijo individuo eit=ai+uit %Y=dD+XB+u Modelo con efecto fijo. %Creo matriz x, 100 individuos (N) y 10 periodos (T), con 3 variables %explicativas (K). %Dimensión x, NxT x K, 100x10 x 3 %Dimensión Y, NxT x 1 %Dimensión b, K x 1 %Estimación within. %Calculo promedio de cada individuo en el tiempo a=1; b=10; x_prom=zeros(N*T,K); y_prom=zeros(N*T,1); i2=1; for i=1:N for i1=1:T x_prom(i2,:)=mean(X(a:b,:),1); y_prom(i2,:)=mean(Y(a:b,:),1); i2=i2+1; end a=b+1; b=b+10; end x_dm=X-x_prom; y_dm=Y-y_prom; B_fe=(x_dm'*x_dm)^-1*x_dm'*y_dm; %Mostrar que B_re está entre B_be y B_fe %Ver página 620 del Rudd