Planteamiento: El consumidor enfrenta la recta presupuestal \(P_1x_1 + P_2x_2 = m\), con \(P_1 = 45\), \(P_2 = 60\), \(m = 9000\). Asumimos preferencias Cobb-Douglas simétricas: \(U(x_1, x_2) = x_1^{0.5} x_2^{0.5}\). Las demandas óptimas son: \(x_1^* = \frac{0.5m}{P_1}\) y \(x_2^* = \frac{0.5m}{P_2}\).
Cálculo de Óptimos por Escenario:
x1 <- seq(1, 650, length.out = 500)
# Rectas Presupuestales
r1 <- (9000 - 45 * x1) / 60
r2 <- (13500 - 45 * x1) / 60
r3 <- (13500 - 45 * x1) / 120
r4 <- (13500 - 22.5 * x1) / 120
# Curvas de Indiferencia (despejando x2 de U = x1^0.5 * x2^0.5)
u1_curve <- (100 * 75) / x1 # U^2 = 7500
u2_curve <- (150 * 112.5) / x1 # U^2 = 16875
u3_curve <- (150 * 56.25) / x1 # U^2 = 8437.5
u4_curve <- (300 * 56.25) / x1 # U^2 = 16875
df1 <- data.frame(x1, r1, r2, r3, r4, u1_curve, u2_curve, u3_curve, u4_curve)
df1[df1 < 0] <- NA
# Puntos óptimos
optimos <- data.frame(
x = c(100, 150, 150, 300),
y = c(75, 112.5, 56.25, 56.25),
label = c("E1 (100, 75)", "E2 (150, 112.5)", "E3 (150, 56.25)", "E4 (300, 56.25)")
)
ggplot(df1, aes(x = x1)) +
# Rectas
geom_line(aes(y = r1), color = "red", linetype = "dashed", linewidth = 0.8) +
geom_line(aes(y = r2), color = "blue", linetype = "dashed", linewidth = 0.8) +
geom_line(aes(y = r3), color = "darkgreen", linetype = "dashed", linewidth = 0.8) +
geom_line(aes(y = r4), color = "purple", linetype = "dashed", linewidth = 0.8) +
# Curvas de Indiferencia
geom_line(aes(y = u1_curve), color = "red", linewidth = 1) +
geom_line(aes(y = u2_curve), color = "blue", linewidth = 1) +
geom_line(aes(y = u3_curve), color = "darkgreen", linewidth = 1) +
geom_line(aes(y = u4_curve), color = "purple", linewidth = 1) +
# Puntos
geom_point(data = optimos, aes(x = x, y = y), size = 3, color = "black") +
geom_text(data = optimos, aes(x = x, y = y, label = label), vjust = -1, hjust = -0.1) +
coord_cartesian(xlim = c(0, 400), ylim = c(0, 200)) +
labs(title = "Equilibrio del Consumidor en Múltiples Escenarios",
x = "Bien 1 (x1)", y = "Bien 2 (x2)") +
theme_minimal()
Evolución de Restricciones y Curvas de Indiferencia
Planteamiento: Demanda: \(Q = 500 - 10P\). Curva Inversa de Demanda (despejando P): \(P = 50 - 0.1Q\). Si el precio de mercado es \(P = 20\), la cantidad demandada es \(Q = 300\). El Superávit del Consumidor (SC) es el triángulo entre el precio de reserva (\(P=50\)) y el precio de mercado (\(P=20\)): \[SC = \frac{300 \times (50 - 20)}{2} = 4500\]
q_vals <- seq(0, 500, length.out = 100)
p_vals <- 50 - 0.1 * q_vals
df_demanda <- data.frame(Q = q_vals, P = p_vals)
df_area <- data.frame(Q = c(0, 0, 300), P = c(20, 50, 20))
ggplot(df_demanda, aes(x = Q, y = P)) +
geom_line(color = "darkblue", linewidth = 1.2) +
geom_polygon(data = df_area, aes(x = Q, y = P), fill = "orange", alpha = 0.4) +
geom_hline(yintercept = 20, linetype = "dashed", color = "red") +
geom_segment(aes(x = 300, y = 0, xend = 300, yend = 20), linetype = "dashed") +
geom_point(aes(x = 300, y = 20), size = 3) +
annotate("text", x = 100, y = 30, label = "Superávit = 4500", fontface = "bold") +
labs(title = "Demanda y Superávit del Consumidor", x = "Cantidad", y = "Precio") +
theme_minimal()
Superávit del Consumidor
Planteamiento: Preferencias originales (A favor de ambos por igual): \(U_1 = x_1 x_2\). Nuevas preferencias (A favor del bien 2): \(U_2 = x_1 x_2^2\). Las curvas de indiferencia cambian su pendiente para reflejar que el consumidor ahora exige más del bien 1 para renunciar a una unidad del bien 2.
x_pref <- seq(1, 20, length.out = 100)
# U1 = 20
u_orig <- 20 / x_pref
# U2 = 80
u_nueva <- sqrt(80 / x_pref)
df_pref <- data.frame(x = x_pref, Orig = u_orig, Nueva = u_nueva)
ggplot(df_pref, aes(x = x)) +
geom_line(aes(y = Orig, color = "Preferencias Originales (Equilibradas)"), linewidth = 1) +
geom_line(aes(y = Nueva, color = "Nuevas Preferencias (Pro-Bien 2)"), linewidth = 1) +
coord_cartesian(xlim = c(0, 20), ylim = c(0, 15)) +
labs(title = "Cambio Estructural en las Preferencias", x = "Bien 1", y = "Bien 2") +
theme_minimal()
Desplazamiento por Cambio de Preferencias
Planteamiento: Demanda de Café (\(Q_c\)) dependiendo del precio del Té (\(P_t\)): \(Q_c = 100 - 2P_c + 1.5P_t\). * Si \(P_t = 20\): Inversa es \(P_c = 65 - 0.5Q_c\). * Si el Té sube a \(P_t = 40\): Inversa es \(P_c = 80 - 0.5Q_c\). La demanda de café se expande (bienes sustitutos).
qc <- seq(0, 160, length.out = 100)
pc_1 <- 65 - 0.5 * qc
pc_2 <- 80 - 0.5 * qc
df_sust <- data.frame(Q = qc, D1 = pc_1, D2 = pc_2)
df_sust[df_sust < 0] <- NA
ggplot(df_sust, aes(x = Q)) +
geom_line(aes(y = D1, color = "D1 (Té a 20)"), linewidth = 1) +
geom_line(aes(y = D2, color = "D2 (Té a 40)"), linewidth = 1) +
labs(title = "Efecto de un Bien Sustituto en la Demanda", x = "Cantidad Café", y = "Precio Café") +
theme_minimal()
Desplazamiento por Precio de Sustituto
Planteamiento: Situación inicial: \(m=100\), \(P_1=5\), \(P_2=10\). Ecuación: \(5x_1 + 10x_2 = 100\). Situación final: El ingreso cae a \(m=80\), pero el bien 1 se subsidia bajando a \(P_1=2\). Ecuación: \(2x_1 + 10x_2 = 80\). Observamos un efecto pivote combinado con un desplazamiento hacia adentro.
x_sim <- seq(0, 45, length.out = 100)
r_ini <- (100 - 5 * x_sim) / 10
r_fin <- (80 - 2 * x_sim) / 10
df_simul <- data.frame(x = x_sim, Inicial = r_ini, Final = r_fin)
df_simul[df_simul < 0] <- NA
ggplot(df_simul, aes(x = x)) +
geom_line(aes(y = Inicial, color = "Inicial (m=100, P1=5)"), linewidth = 1) +
geom_line(aes(y = Final, color = "Final (m=80, P1=2)"), linewidth = 1) +
coord_cartesian(xlim = c(0, 45), ylim = c(0, 12)) +
labs(title = "Cambio Simultáneo en Ingreso y Precio", x = "Bien 1", y = "Bien 2") +
theme_minimal()
Efectos Simultáneos
Planteamiento del Problema: Suponga que en el mercado de un bien tecnológico (por ejemplo, audífonos inalámbricos), la cantidad que los consumidores están dispuestos a comprar depende del precio según la siguiente Curva de Demanda: \[Q^d = 500 - 10P\]
1. Curva Inversa de Demanda: Para graficar y analizar el superávit, es matemáticamente más conveniente expresar el precio en función de la cantidad. Despejamos \(P\): \[10P = 500 - Q^d\] \[P = 50 - 0.1Q^d\] Esta es la curva inversa de demanda. Nos indica que el precio máximo que alguien está dispuesto a pagar (cuando \(Q=0\)) es \(P = 50\).
2. Equilibrio de Mercado y Cantidad Demandada: Supongamos que el precio de mercado actual de los audífonos es \(P = 20\). Sustituyendo en la demanda: \[Q^d = 500 - 10(20) = 500 - 200 = 300 \text{ unidades.}\]
3. Superávit del Consumidor (SC): El superávit del consumidor es la diferencia entre lo que los consumidores están dispuestos a pagar y lo que realmente pagan. Gráficamente, es el área del triángulo que se forma debajo de la curva de demanda y por encima del precio de mercado. * Base del triángulo: Cantidad comprada \(= 300\). * Altura del triángulo: Precio máximo dispuesto a pagar menos precio de mercado \(= 50 - 20 = 30\). * Cálculo: \[SC = \frac{\text{Base} \times \text{Altura}}{2} = \frac{300 \times 30}{2} = \frac{9000}{2} = 4500\]
A continuación, se presenta la gráfica que ilustra la curva inversa de demanda y sombrea el área correspondiente al superávit del consumidor.
# Parámetros del modelo
precio_mercado <- 20
cantidad_mercado <- 300
precio_maximo <- 50
# Generar datos para la curva inversa de demanda P = 50 - 0.1Q
q_valores <- seq(0, 500, length.out = 100)
p_valores <- 50 - 0.1 * q_valores
df_demanda <- data.frame(Q = q_valores, P = p_valores)
# Generar coordenadas para el polígono del superávit (Triángulo)
df_superavit_area <- data.frame(
Q = c(0, 0, cantidad_mercado),
P = c(precio_mercado, precio_maximo, precio_mercado)
)
# Gráfica
ggplot(df_demanda, aes(x = Q, y = P)) +
# Curva de demanda
geom_line(color = "purple", linewidth = 1.2) +
# Área del superávit del consumidor
geom_polygon(data = df_superavit_area, aes(x = Q, y = P), fill = "orange", alpha = 0.4) +
# Líneas de referencia para el precio y cantidad de mercado
geom_hline(yintercept = precio_mercado, linetype = "dashed", color = "darkred", linewidth = 0.8) +
geom_segment(aes(x = cantidad_mercado, y = 0, xend = cantidad_mercado, yend = precio_mercado),
linetype = "dashed", color = "darkgray") +
# Punto de consumo
geom_point(aes(x = cantidad_mercado, y = precio_mercado), color = "black", size = 3) +
# Etiquetas
annotate("text", x = 100, y = 30, label = "Superávit = 4,500", fontface = "bold", size = 5) +
annotate("text", x = 330, y = 22, label = "(300, 20)") +
# Estética del gráfico
coord_cartesian(xlim = c(0, 550), ylim = c(0, 60)) +
labs(title = "Análisis del Superávit del Consumidor",
subtitle = "Curva Inversa: P = 50 - 0.1Q",
x = "Cantidad Demandada (Q)",
y = "Precio (P)") +
theme_minimal()
Curva Inversa de Demanda y Área del Superávit del Consumidor