# Carregar bibliotecas necessárias
library(ggplot2)
library(patchwork) # Para combinar gráficos
# Definir parâmetros da função de produção Cobb-Douglas
<- 1
A <- 0.3
alpha <- 0.7
beta <- 100 # Nível de produção desejado
Q
# Criar uma sequência de valores para o capital (K)
<- seq(1, 100, length.out = 100)
K
# Calcular o trabalho (L) necessário para cada valor de K para manter Q constante
<- (Q / (A * K^alpha))^(1/beta)
L
# Criar um data frame com os valores de K e L
<- data.frame(K = K, L = L)
isoquanta
# 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
<- seq(1, 100, length.out = 100)
K <- seq(1, 100, length.out = 100)
L
# Fixar um valor para L ao plotar Q em função de K
<- 50 # Valor fixo para L
L_fixo <- A * K^alpha * L_fixo^beta
Q_K
# Fixar um valor para K ao plotar Q em função de L
<- 50 # Valor fixo para K
K_fixo <- A * K_fixo^alpha * L^beta
Q_L
# Criar data frames para os gráficos
<- data.frame(K = K, Q = Q_K)
df_K <- data.frame(L = L, Q = Q_L)
df_L
# Plotar Q em função de K
<- ggplot(df_K, aes(x = K, y = Q)) +
plot_K 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
<- ggplot(df_L, aes(x = L, y = Q)) +
plot_L 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_L plot_K
Funçã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
<- -0.01
a <- 0.5
b <- 5
c <- 0
d
# Criar uma sequência de valores para K (capital)
<- seq(0, 50, length.out = 100)
K
# Calcular a produção Q para cada valor de K
<- a * K^3 + b * K^2 + c * K + d
Q
# Criar um data frame com os valores de K e Q
<- data.frame(K = K, Q = Q)
dados
# 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")