# Carregar bibliotecas necessárias
library(ggplot2)
library(patchwork) # Para combinar gráficos
# Definir parâmetros da função de produção Cobb-Douglas
A <- 1
alpha <- 0.3
beta <- 0.7
Q <- 100 # Nível de produção desejado
# Criar uma sequência de valores para o capital (K)
K <- seq(1, 100, length.out = 100)
# Calcular o trabalho (L) necessário para cada valor de K para manter Q constante
L <- (Q / (A * K^alpha))^(1/beta)
# Criar um data frame com os valores de K e L
isoquanta <- data.frame(K = K, L = L)
# Plotar a isoquanta
ggplot(isoquanta, aes(x = K, y = L)) +
geom_line(color = "blue") +
labs(title = "Isoquanta Econômica",
x = "Capital (K)",
y = "Trabalho (L)") +
theme_minimal()Simulação de uma Isoquanta Econômica
Introdução
Uma isoquanta é uma curva que representa todas as combinações possíveis de dois insumos (por exemplo, capital ( K ) e trabalho ( L )) que produzem o mesmo nível de produção ( Q ). Neste exemplo, vamos simular uma isoquanta usando a função de produção Cobb-Douglas, que é amplamente utilizada em economia.
A função de produção Cobb-Douglas é dada por:
\(Q=A.K^\alpha.L^\beta\)
Onde:
- ( Q ) é o nível de produção;
- ( A ) é um parâmetro de tecnologia (constante);
- ( K ) é o capital;
- ( L ) é o trabalho; e,
- ( \(\alpha\) ) e ( \(\beta\) ) são os parâmetros que representam a elasticidade da produção em relação ao capital e ao trabalho, respectivamente.
Código em R
Abaixo está o código em R para simular uma isoquanta:
Função de Produção
# Criar sequências de valores para K e L
K <- seq(1, 100, length.out = 100)
L <- seq(1, 100, length.out = 100)
# Fixar um valor para L ao plotar Q em função de K
L_fixo <- 50 # Valor fixo para L
Q_K <- A * K^alpha * L_fixo^beta
# Fixar um valor para K ao plotar Q em função de L
K_fixo <- 50 # Valor fixo para K
Q_L <- A * K_fixo^alpha * L^beta
# Criar data frames para os gráficos
df_K <- data.frame(K = K, Q = Q_K)
df_L <- data.frame(L = L, Q = Q_L)
# Plotar Q em função de K
plot_K <- ggplot(df_K, aes(x = K, y = Q)) +
geom_line(color = "blue", linewidth = 1) + # Usar linewidth em vez de size
labs(title = "Produção Q em função do Capital K (L fixo)",
x = "Capital (K)",
y = "Produção (Q)") +
theme_minimal()
# Plotar Q em função de L
plot_L <- ggplot(df_L, aes(x = L, y = Q)) +
geom_line(color = "red", linewidth = 1) + # Usar linewidth em vez de size
labs(title = "Produção Q em função do Trabalho L (K fixo)",
x = "Trabalho (L)",
y = "Produção (Q)") +
theme_minimal()
# Combinar os gráficos usando patchwork
plot_K + plot_LFunção de produção cúbica
Podemos simular uma função de produção que apresenta retornos crescentes no início, depois retornos decrescentes até atingir um ponto máximo de produção (Q), e, finalmente, começa a decrescer. Esse comportamento é comum em funções de produção que incorporam uma combinação de fatores como capital (\(K\)) e trabalho (\(L\)), onde, após um certo ponto, a adição de mais insumos resulta em diminuição da produção devido a fatores como saturação ou ineficiência.
Vamos usar uma função de produção cúbica para modelar esse comportamento. A função terá a seguinte forma:
\(Q=aK^3+bK^2+cK+d\)
Onde:
- \(K\) é o fator de produção (por exemplo, capital);
- \(a\), \(b\),\(c\), e \(d\) são coeficientes que determinam a forma da curva.
Aqui está o código em Quarto (Posit) para simular essa função de produção:
# Carregar bibliotecas necessárias
library(ggplot2)
# Definir coeficientes da função cúbica
a <- -0.01
b <- 0.5
c <- 5
d <- 0
# Criar uma sequência de valores para K (capital)
K <- seq(0, 50, length.out = 100)
# Calcular a produção Q para cada valor de K
Q <- a * K^3 + b * K^2 + c * K + d
# Criar um data frame com os valores de K e Q
dados <- data.frame(K = K, Q = Q)
# Plotar a função de produção
ggplot(dados, aes(x = K, y = Q)) +
geom_line(color = "blue", linewidth = 1.5) +
labs(title = "Função de Produção com Retornos Crescentes e Decrescentes",
x = "Capital (K)",
y = "Produção (Q)") +
theme_minimal() +
geom_hline(yintercept = max(Q), linetype = "dashed", color = "red") + # Linha do máximo de Q
annotate("text", x = 40, y = max(Q) + 5, label = paste("Máximo Q =", round(max(Q), 2)), color = "red")