ComeçarComece gratuitamente

Análise de sensibilidade da empresa

Agora você examinará o que aconteceria com os lucros da empresa no exercício anterior em uma variedade de valores mean_inflation e mean_volume. Isso 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 da inflação ou dos volumes de vendas que terá no futuro.

Os percentuais médios de inflação que você gostaria de explorar são 0, 1, 2, 5, 10, 15, 20, 50, enquanto os valores de vendas para uso como valor médio de volume são 100, 200, 500, 800, 1000. Como lembrete, 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 de exercício

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

Exercício interativo prático

Experimente este exercício preenchendo 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 código