Aplicaciones I
Modelo Insumo-Producto
Aplicación tomada del libro "Matemática para Economistas con Excel y Matlab" de Alicia Bernardello y coautores
Características del modelo:
- Describe relaciones interindustriales o intersectoriales.
- Usa dichas relaciones para predecir cambios en la demanda para predecir causados por cambios en la demanda autónoma del los productos finales.
Suponga una economía con tres sectores:
Prod/Ins | I | II | III |
---|---|---|---|
I | 0.2 | 0.6 | 0 |
II | 0.2 | 0 | 0.2 |
III | 0.4 | 0.2 | 0.5 |
- Columna 1: Por cada peso producido del producto I se usan: 0.2 pesos del mismo producto, 0.2 pesos del producto II, y 0.4 pesos del producto III.
- La demanda de cada una de las tres industrias está compuesta de la demanda derivada de las otras industrias y la demanda autónoma:
\begin{eqnarray} x_1 &=& 0.2x_1+0.6x_2+d_1 \ x_2 &=& 0.2x_1+0.2x_3+d_2 \ x_3 &=& 0.4x_1+0.2x_2+0.5x_3+d_3 \ \end{eqnarray}
- Definamos la matriz de coeficientes técnicos como:
clear all;
A = [0.2 0.6 0; 0.2 0 0.2; 0.4 0.2 0.5]
A =
0.2000 0.6000 0
0.2000 0 0.2000
0.4000 0.2000 0.5000
- Si definimos los vectores \(x=(x_1,x_2,x_3)'\) y \(d=(d_1,d_2,d_3)'\) tenemos:
$$x = Ax + d$$
- Entonces:
$$x=(I-A)^{-1}d$$
- La matriz \(I-A\) es denominada matriz de Leontief.
- La matriz \(A\) tiene todo sus autovalores en el círculo unitario y \(I-A\) es no singular. Entonces \((I-A)^{-1}\) es no negativa.
eigA = eig(A)
detL = det(eye(3)-A)
eigA =
0.7445
0.1432
-0.1877
detL =
0.2600
invL = inv(eye(3)-A)
invL =
1.7692 1.1538 0.4615
0.6923 1.5385 0.6154
1.6923 1.5385 2.6154
- Si \(d_1=100\), \(d_2=50\), y \(d_3=200\), las demandas sectoriales serían:
d = [100; 50; 200]
x = invL*d
d =
100
50
200
x =
326.9231
269.2308
769.2308
- Nos interesa calcular el efecto de un cambio en la demanda autónoma de un producto sobre la demanda total (dadas las relaciones entre sectores).
$$\Delta x = (I-A)^{-1} \Delta d$$
- Suponga ahora \(d'_1=110\), \(d'_2=100\), y \(d'_3=180\).
d2 = [110; 100; 180];
Dd = d2-d
Dx = invL*Dd
Dd =
10
50
-20
Dx =
66.1538
71.5385
41.5385
Equilibrio de Mercado con Dos Bienes
Aplicación tomada del libro "Matemática para Economistas con Excel y Matlab" de Alicia Bernardello y coautores
El Modelo:
- Función de Demanda del producto 1: $$Q_{d1} = 40 - 2 P_1 + P_2$$
- Función de Oferta del producto 1: $$Q_{o1} = -5 + 3 P_1 - P_2$$
- Equilibrio en el mercado 1: $$Q_{d1}=Q_{o1}=Q_1$$
- Función de Demanda del producto 2: $$Q_{d2} = 90 + P_1 - P_2$$
- Función de Oferta del producto 2: $$Q_{o2} = -2 + 2 P_2 $$
- Equilibrio en el mercado 2: $$Q_{d2}=Q_{o2}=Q_2$$
El modelo puede ser resuelto usando el método de reemplazo para encontrar la solución al sistema de ecuaciones. Bastante tedioso. Definamos mas bien el siguiente vector: $$x = (Q_1,Q_2,P_1,P_2)'$$
Definamos entonces: $$ Ax = b$$
La solución del sistema de ecuaciones es entonces (si \(A\) es invertible): $$x = A^{-1} \times b$$
A = [1 0 2 -1;
1 0 -3 1;
0 1 -1 1;
0 1 0 -2]
b = [40; -5; 90; -2]
dA = det(A)
A =
1 0 2 -1
1 0 -3 1
0 1 -1 1
0 1 0 -2
b =
40
-5
90
-2
dA =
-13
Solución:
x = A \ b % alternativamente x =inv(A)*b
x =
29.7692
75.6923
24.5385
38.8462
Entonces: \(Q_1=29.7\) ,\(P_1=24.5\), \(Q_2=75.7\), \(P_2=38.8\) .
Mínimos Cuadrados Ordinarios
Construiremos dos vectores \(X_1\) y \(X_2\) de \(N \times 1\) cada uno y con ello un vector \(y\) de acuerdo a:
$$y_i = 3 + 0.5X_{1i} + 0.9X_{2i} + \epsilon_i$$
donde \(X_{1i} \sim N(1,4)\), \(X_{2i} \sim N(2,4)\) y \(\epsilon \sim N(0,1)\).
A partir de estos datos usaremos la fórmula estándar de MCO para encontrar los coeficientes estimados. $$\hat{\beta} = (X'X)^{-1} X'y$$
- Generando Datos:
N = 100;
X1 = 1 + 2*randn(N,1);
X2 = 2 + 2*randn(N,1);
eps = randn(N,1);
y = 3 + 0.5*X1 +0.9*X2 + eps;
data = [y X1 X2];
dlmwrite('DatosMCO.txt',data);
- Cargando Datos y estimado los parámetros:
clear all;
whos
impdata = importdata('DatosMCO.txt');
whos;
Name Size Bytes Class Attributes
impdata 100x3 2400 double
[N, K] = size(impdata);
y = impdata(:,1);
X1 = impdata(:,2);
X2 = impdata(:,3);
X = [ones(N,1) X1 X2];
beta = (X'*X)\(X'*y) % alternativa beta = inv(X'*X)*(X'*y)
beta =
2.9913
0.5640
0.8020
- Graficando la predicción y los errores del modelo.
err = y - X*beta;
yhat = X*beta;
plot([y yhat]);
title('Ajuste')
legend('y','yhat');
plot(err);
title('Errores');