clc clear all cd 'C:\Users\Nicolás\Documents\Clases\Econometría\' %% Autocorrelación %% Especifico modelo poblacional con Autocorrelación randn('seed', 123) n=10000; %Tamaño muestra 1,000 k=5; %Número de regresores K=k+1 K=1+k; %Número de regresores incluyendo 1's %Y=X*B+e %et=rho*et-1+ut abs(rho)<1 %Genero u s=2.5; u=randn(n,1)*s; %Genero e rho=0.62; e0=2.3; e=zeros(n,1); e(1,1)=rho*e0+u(1,1); for i=2:n e(i,1)=0.62*e(i-1,1)+u(i,1); end %Genero X, B; X=[ones(n,1) (10+unidrnd(100,n,k).*rand(n,k))]; %Crea vector de num aleatorios de 0 a 100 discretos B=[10.12 12.53 5.5 2 3.2 11.23]'; %Parámetros %Genero Y Y=X*B+e; %% Test de Autocorrelación, Wald y Normal % Test para determinar autocorrelación, sin variables dependientes % rezagadas. %Idea et=rho1*et-1+rho2*et-2+...+rhon*et-n+ut %Si se cree que hay autocorrelación de orden 1: et=rho*et-1+ut %Se testea: %H0:rho=0, Ha: rho!=0 %Paso 1: Estimo por OLS B_ols=(X'*X)^-1*X'*Y; %Paso 2: Errores estimados e_ols=Y-X*B_ols; %Paso 3: Calculo rho= sum(e.*lag(e))/sum(lag(e)^2) % Cálculo de rezagos de e_ols, lag_e_ols lag_e_ols=zeros(n,1); %Asumo que e_0=0 lag_e_ols(2:n,1)=e_ols(1:n-1,1); rho= (e_ols'*lag_e_ols)/(lag_e_ols'*lag_e_ols); %Paso 4: Test H0: rho=0 (sin autocorrelación) Ha rho!=0 (rechazo no %autocorrelación) %Normal estad_n=n^0.5*rho; norm = norminv(0.95,0,1); criterio_n=estad_n>norm; %criterio=1 -> rechazo H0, evidencia de autocorrelación %Wald p=1; % 1 solo rezago estad_w=n*rho^2; xi = chi2inv(0.95,p); criterio_w=estad_w>xi; %criterio=1 -> rechazo H0, evidencia de autocorrelación %Es lo mismo hacer ambos test cuando hay un solo grado de libertad. %% Test de Autocorrelación: Breusch-Godfrey %Permite testear autocorrelación con rezagos de variables dependientes. %Paso 1: Estimo por OLS %Paso 2: Errores estimados %Paso 3: Regresión e_t=rho*e_t-1+u_t rho_bg=(lag_e_ols'*lag_e_ols)^-1*lag_e_ols'*e_ols; %Es el mismo que el anterior %Paso 4: Calcular R2 SCR=(e_ols-lag_e_ols*rho_bg)'*(e_ols-lag_e_ols*rho_bg); % Suma cuadrática residual SCT=sum((e_ols- mean(e_ols)).^2); %Suma cuadrados Totales R2=1-SCR/SCT; %R cuadrado %Paso5: Calcular estadístico=n*R2 estad_bg=n*R2; %Paso6: Constrastar con X2 con p grados de libertad. criterio_bg=estad_bg>xi; %criterio=1 -> rechazo H0, evidencia de autocorrelación %% Estimador Varianza Newey West M=2; a=1; b=K; for j=0:M c=zeros(K,K); for i=j+1:n c=(1/n)*(e_ols(i,1)*e_ols(i-j,1)*X(i,:)'*X(i-j,:))+c; end gamma(a:b,:)=c; a=b+1; b=b+K; end suma=zeros(K,K); a=K+1; b=a+K-1; for j=2:M+1 suma=(1-j/M)*(gamma(a:b,:)+gamma(a:b,:)')+suma; a=b+1; b=b+K; end V_nw=gamma(1:K,:)+ suma; varB=(X'*X)^-1*V_nw*(X'*X)^-1; %% Panel Data %%Yit=XitB+eit %Estimación de efecto fijo individuo eit=ai+uit %Y=dD+XB+u Modelo con efecto fijo. clear all clc %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 u, NxT x 1 %Dimensión d, NxT x n (Vector de dummy's) %Dimensión D, N x 1 (Parámetro de las dummy's: Efecto fijo) %Dimensión b, K x 1 N=100; T=10; K=3; x=randn(N*T,K); %No se incluye constante por efectos fijos u=rand(N*T,1); %IID, sin autocorrelación ni heterocedasticidad b=[4 5 6]'; %Vector de parámetros de las X D=rand(N,1); %Vector de parámetros por efecto fijo d=zeros(N*T,N); i1=1; j1=1; for i=1:N for j=1:T d(i1,j1)=1; i1=i1+1; end j1=j1+1; end Y=d*D+x*b+u; B=[D;b]; X=[d x]; %Estimación Least Square Dummy Variable. B_ols_dm=(X'*X)^-1*X'*Y; %Estimación Between. %Calculo promedio de cada individuo en el tiempo a=1; b=10; x_prom=zeros(N*T,K); 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_ols_be=(x_dm'*x_dm)^-1*x_dm'*y_dm; %Son iguales ambos B