ComeçarComece de graça

Análise de sensibilidade da empresa

Agora você vai analisar o que aconteceria com os lucros da empresa do exercício anterior para diferentes valores de mean_inflation e mean_volume. Isso vai ajudar a empresa a se planejar para vários níveis de inflação e volumes de vendas, já que nenhuma empresa pode ter certeza sobre a inflação ou o volume de vendas que terá no futuro.

As porcentagens médias de inflação que você quer explorar são 0, 1, 2, 5, 10, 15, 20, 50, enquanto os valores de vendas para usar como volume médio são 100, 200, 500, 800, 1000. Para relembrar, aqui está a definição da função profit_next_year_mc(), que já foi carregada para você.

def profit_next_year_mc(mean_inflation, mean_volume, n):
  profits = []
  for i in range(n):
    # Generate inputs by sampling from the multivariate normal distribution
    rate_sales_volume = st.multivariate_normal.rvs(mean=[mean_inflation,mean_volume], cov=cov_matrix,size=1000)
    # Deterministic calculation of company profit
    price = 100 * (100 + rate_sales_volume[:,0])/100
    volume = rate_sales_volume[:,1]
    loan_and_cost = 50 * volume + 45 * (100 + 3 * rate_sales_volume[:,0]) * (volume/100)
    profit = (np.mean(price * volume - loan_and_cost))
    profits.append(profit)
  return profits

Os seguintes pacotes foram importados: pandas como pd, numpy como np, scipy.stats como st, matplotlib.pyplot como plt e seaborn como sns.

Este exercício faz parte do curso

Simulações de Monte Carlo em Python

Ver curso

Instruções do exercício

  • Complete a simulação de Monte Carlo executando profit_next_year_mc() para calcular o lucro 100 vezes, percorrendo a lista de valores infl e a lista de valores vol a cada vez.
  • Use um displot para visualizar os resultados da simulação salvos na coluna Profit do DataFrame resultante.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

x1 = []
x2 = []
y = []
for infl in [0, 1, 2, 5, 10, 15, 20, 50]:
    for vol in [100, 200, 500, 800, 1000]:
		# Run profit_next_year_mc so that it samples 100 times for each infl and vol combination
        avg_prof = np.mean(____)
        x1.append(infl)
        x2.append(vol)
        y.append(avg_prof)
df_sa = pd.concat([pd.Series(x1), pd.Series(x2), pd.Series(y)], axis=1)
df_sa.columns = ["Inflation", "Volume", "Profit"]
# Create a displot of the simulation results for "Profit"
____
plt.show()
Editar e executar o código