Capítulo 3 - Conceitos probabilísticos#


# !pip install -r requirements.txt

1. Risco e probabilidade#

Todos os investimentos são feitos num ambiente de risco e as ferramentas que nos permitem tomar decisões com consistência e lógica neste ambiente acabam por estar ligadas à probabilidade.

2. Probabilidade, retornos e variância#

Evento: Um evento é um conjunto de resultados (um subconjunto do espaço amostral) ao qual é associado um valor de probabilidade. Habitualmente, quando o espaço amostral é finito, qualquer subconjunto seu é um evento.

A e B são diferentes eventos.

Exaustivos: Não há outra possibilidade que não esteja abrangida por um evento.

A e B são exaustivos porque só há probabilidade de ser A ou B.

Neste exemplo são também:

Mutuamente exclusivos: Não podem acontecer simultaneamente.

No exemplo ou acontece A ou B

Independentes: São eventos em que a probabilidade de um acontecer em nada afecta a probabilidade de outro acontecer. A probabilidade de A acontecer dado B é igual à probabilidade de A.

Naturalmente se o eventos não são independentes são dependentes. Ou seja saber que A aconteceu dá-nos informação sobre a probabilidade do B.


Propriedades de probabilidade#

A probabilidade de qualquer evento é um número entre 0 e 1. Sendo uma probabilidade de 0 o mesmo que dizer que o evento é impossível e uma probabilidade de 1 uma certeza absoluta.

A soma das probabilidade de todos os eventos mutuamente exclusivos e exaustivos é de 1.

No exemplo em cima P(A)+P(B)=1P(A) + P(B) = 1P(A)+P(B)=1

Como calcular probabilidades e outros conceitos#

Mutuamente exclusivos e exaustivos

\[ P(A) = \frac{A}{\text{Obs}} \]
\[ P(A) = \frac{4}{10} = 0.4 \]
\[ P(B) = \frac{6}{10} = 0.6 \]

Porque os eventos A e B são exaustivos

\[ P(A) + P(B) = 1 \]

Porque os eventos A e B são mutuamente exclusivos

\[ P(A \cup B) = P(A) + P(B) \]

Mutuamente exclusivos mas não exaustivos#

\[ P(A) = \frac{A}{\text{Obs}} \]
\[ P(A) = \frac{4}{10} = 0.4 \]
\[ P(B) = \frac{3}{10} = 0.3 \]

Porque os eventos A e B são não exaustivos

\[ P(A) + P(B) \neq 1 \]

Porque os eventos A e B são mutuamente exclusivos

\[ P(A \text{ ou } B) = P(A) + P(B) = 0.7 \]

Não exclusivos e exaustivos#

\[ S = 9 \]
\[ P(S) = 1 \]
\[ P(A) = \frac{5}{9} \]

Porque os eventos A e B são exaustivos

\[ P(A) + P(B) - P(A \cap B) = \frac{5}{9} + \frac{5}{9} - \frac{1}{9} = \frac{9}{9} = 1 \]

Temos de subtrair \( P(A \cap B) \) pois senão contamos duas vezes.

Porque os eventos A e B são não exclusivos

\[ P(A \cup B) = P(A) + P(B) - P(A \cap B) \]

Neste caso é A ou B é igual a 1 pois eles exaustivos, mas pode não ser o caso.

Não A e não B

Da mesma forma que podemos calcular a probabilidade do evento A (ou b) ocorrer também podemos calcular a probabilidade do evento não ocorrer.

\[ P(\overline{A}) = 1 - P(A) \]

O evento “não A” \(( \overline{A} )\) é denominado o complemento de A e a soma de A e não A é sempre 1 pois são sempre mutuamente exclusivos.


3. Casos práticos e probabilidade nos investimentos#

Nem sempre na realidade sabemos o S e ou a forma acima é a forma correcta de calcularmos a probabilidade de um acontecimento.

Probabilidades empíricas#

Em investimentos muitas vezes estima-se a probabilidade de um evento com base na frequência histórica com que aconteceu. Semelhante aos exemplos em cima.

Exemplo: Qual a probabilidade do S&P ter uma rentabilidade negativa em determinado dia?

# !pip install yfinance
import yfinance as yf

data = yf.download("^GSPC", start="1970-01-01", end="2030-04-30", progress=False)

data['Change (%)'] = data['Close'].pct_change() # Calcular os retornos

data = data.dropna() # Apagar os dias para os quais não há retorno
                     # O primeiro dia, pois não há nenhum dia anterior
                     # com o qual calcular o retorno

data_p = data[data['Change (%)'] > 0] # Calcular dias positivos

len_data = len(data)

len_data_p = len(data_p)

prob_p = round(len(data_p) / len(data), 2)

prob_p
0.53
last_day = data.iloc[-1].name.strftime('%Y-%m-%d')
first_day = data.iloc[0].name.strftime('%Y-%m-%d')
formatted_prob_p = f"{prob_p:.0%}"
print(f'À data de {last_day} o número de dias na dataframe com a cotação do S&P 500 é de {len_data} dias e o número de dias positivos é de {len_data_p}. Logo a probabilidade empírica do S&P ter um retorno positivo em qualquer dia é por isso {len_data_p} a dividir por {len_data}, ou seja, {prob_p} ou {formatted_prob_p}.')
À data de 2024-11-18 o número de dias na dataframe com a cotação do S&P 500 é de 13841 dias e o número de dias positivos é de 7319. Logo a probabilidade empírica do S&P ter um retorno positivo em qualquer dia é por isso 7319 a dividir por 13841, ou seja, 0.53 ou 53%.

Probabilidades à priori#

Por vezes, dependendo dos problemas, podemos, com base em análise lógica deduzir probabilidades correctas. Estas não são nem as probabilidades empíricas nem são subjectivas.

As probabilidades à priori e as empíricas são muitas vezes agrupadas como probabilidades objectivas, já que não variam de pessoa para pessoa.

Ex: Lançamento de uma moeda

Probabilidades subjectivas#

Outro tipo de probabilidade é a probabilidade subjectiva, que tal como o nome indica vai depender do nosso julgamento subjectivo da nossa parte, com base nas nossas opniões e percepções pessoais.

Tipos de probabilidade (conceitos)#

Probabilidade incondicional#

É a probabilidade de um evento isoladamente. Como no exemplo em cima, a probabilidade do S&P ter um retorno diário negativo.

Probabilidade condicional#

É a probabilidade de um evento dado que outro evento já aconteceu. Por exemplo a probabilidade do S&P ter um retorno diário positivo, sendo que ontem teve um retorno positivo.

# Criar coluna com variação de ontem
data["Yesterdays Change (%)"] = data['Change (%)'].shift()

# Seleccionar dias em que a variação de hoje foi positiva e a variação de ontem
# foi positiva
# Probabilidade condicionada: Qual a probabilidade de hoje ser positivo sabendo
# que ontem foi positivo 
data_p_p = data[(data['Change (%)'] > 0) & (data['Yesterdays Change (%)'] > 0)]

len_data_p_if_p = len(data_p_p)

prob_p_p = len_data_p_if_p / len_data_p

prob_p_p = round(prob_p_p, 3)

prob_p_p
/tmp/ipykernel_158685/3588659013.py:2: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  data["Yesterdays Change (%)"] = data['Change (%)'].shift()
0.536
Hide code cell source
print(f'O número de dias positivos é de {len_data_p} e o número de dias em que o retorno é positivo \ndado que tinha sido positivo no dia anterior é de {len_data_p_if_p}.')

print('\n')

print(f"O que nos dá uma probabilidade empírica de um retorno diário ser positivo dado \nque tinha sido positivo no dia anterior de {prob_p_p}.")
O número de dias positivos é de 7319 e o número de dias em que o retorno é positivo 
dado que tinha sido positivo no dia anterior é de 3920.


O que nos dá uma probabilidade empírica de um retorno diário ser positivo dado 
que tinha sido positivo no dia anterior de 0.536.

A probabilidade condicional é igual à probabilidade conjunta do evento A e do evento B a dividir pela probabilidade do evento B, com a probabilidade de B diferente de 0.

\[ P(A | B) = \frac{P(AB)}{P(B)}, \quad P(B) \neq 0 \]
Exercício 3.1

Supondo que 5% das acções que vão de encontro com nossos critérios de selecção de investimentos são de empresas de telecomunicações. Sabemos também que empresas de telecomunicações que pagam dividendos representam 1% de todas as acções que vão de encontro com os nossos critérios. Qual a probabilidade que uma acção paga dividendos sendo que é um acção de telecomunicações que foi de encontro com os nossos critérios.

Resolução

\[ P(A | B) = \frac{P(AB)}{P(B)} = \frac{0.01}{0.05} = 0.2\]

Com diagrama:

S = Todas as empresas que vão de encontro com os nossos critérios de investimento

T = 5

T e PD = 1

Quanto é que o PD representa dentro da elipse do T?

1 em 5, ou 20%.

Regra de multiplicação para eventos independentes#

Quando dois eventos são independentes a probabilidade conjunta de A e B é a multiplicação entre a probabilidade de A e a probabilidade de B

Exercício 3.2

Estamos a seleccionar empresas que poderão ser alvo de aquisição de uma lista de 1000 empresas. Usamos 3 critérios.

Assumindo que todos os critérios são independentes quantas empresas passam nos 3 critérios?

0.2×0.45×0.3=0.027

\[ P(AB) = P(A)\times P(B) \]
\[ E(X) = E(X|S) \times P(S) + E(X|\overline{S}) \times P(\overline{S}) \]

ou

\[ E(X) = E(X|S_1) \times P(S_1) + E(X|S_2) \times P(S_2) + \dots + E(X|S_n) \times P(S_n) \]

onde

\[ ( S_1, S_2, \dots , S_n ) \]

são eventos mutuamente exclusivos e exaustivos

Exercício 3.3

Supondo que as perspectivas de recuperação do principal (capital) de uma emissão de obrigações que entraram em incumprimento dependem de qual dos dois cenários económicos possíveis. O cenário 1 tem probabilidade 0,75 e resultará na recuperação de 0,90 cêntimos por cada 1 euro do principal com probabilidade de 0,45 ou na recuperação de 80 cêntimos por cada euro investido com probabilidade de 0.55. O cenário económico 2 tem probabilidade de 0.25 e poderá resultar numa recuperação de 50 cêntimos ao euro, com probabilidade 0,85 ou na recuperação de 40 cêntimos ao euro com probabilidade 0,15.

Faça o diagrama em árvore das probabilidades e calcule a probabilidade de cada cenário.

Resolução

Exercício 3.3

\[ P(90c)=0.75×0.45=0.3375 \]
\[ P(80c)=0.75×0.55=0.4125P(80c) = 0.75 \times 0.55 = 0.4125P(80c)=0.75 \times 0.55=0.4125 \]
\[ P(50c)=0.25×0.85=0.2125P(50c) = 0.25 \times 0.85 = 0.2125P(50c)=0.25 \times 0.85=0.2125 \]
\[ P(40c)=0.25×0.15=0.0375P(40c) = 0.25 \times 0.15 = 0.0375P(40c)=0.25 \times 0.15=0.0375 \]
\[ 0.3375+0.4125+0.2125+0.0375=1 \]

Tópicos em probabilidade#

Fórmula de Bayes#

Quando tomamos decisões que envolvem investimentos muitas vezes começamos com pontos de vista baseados em na nossa experiência e conhecimento. Esses pontos de vista podem ser alterados ou confirmados por novos conhecimentos e observações. A fórmula de Bayes é um método racional para ajustar os nossos pontos de vista à medida que confrontamos novas informações.

Fórmula de Bayes: Dado um conjunto de probabilidades anteriores de um evento, se recebermos novas informações, a regra para actualizar a probabilidade do evento é:

Exercício 3.4

Desenvolvemos um conjunto de critérios para avaliar crédito mal parado. Empresas que reprovam nos critérios são classificadas como propensas a falir dentro de 12 meses. Reunimos as seguintes informações ao validar os critérios:

  • 40 % das empresas nas quais o teste é aplicado irão à falência em 12 meses: \( P(\bar S) = 0,40 \)

  • 55% das empresas às quais o teste é aplicado são aprovadas: \( P(T)=0,55 \)

  • A probabilidade de uma empresa passar no teste dado que sobreviverá os próximos 12 meses é de 0,85: \( P(PT∣S) = 0,85 \)

A) Calcule \( P(PT∣\bar S) \)

B) Usando a fórmula de Bayes calcule a probabilidade da companhia sobreviver, dado que passou o teste. \( P(S|PT) \)

PT = Passou Teste S = Sobreviveu

Resolução

A)

Aqui podemos aplicar a fórmula de probabilidade total que nos diz que \( E(X) =(X∣S)\times P(S)+E(X∣ \bar S) \times P( \bar S)\)

Transpondo para o nosso caso:

\( P(PT)= P(PT|S)\times P(S) + P(PT| \bar S) \times P(\bar S) \)

Para isso precisamos de primeiro calcular \( P(S)=1-P(\bar S)=1-0.4=0.6 \)

ou seja:

\( 0.55=0.85 \times 0.6+P(PT∣ \bar S) \times 0.4⇔ \)

\( \frac{0.55 - 0.85 \times 0.60}{0.4} = P(PT| \bar S)⇔ \)

\( P(PT| \bar S) = 0.1 \)

B)

\( P(S| PT) = \frac{P(PT|S)}{P(PT)} \times P(S) = \)

\( (\frac{0.85}{0.55} \times 0.6) = 0.9273 \)

Princípios de contagem#

Regra de multiplicação de contagem#

Se um operação pode ser feita de nnn formas e uma segunda operação pode ser feita de n1n_1n​1​​ formas e uma tarefa pode ser feita de n2n_2n​2​​ formas e por aí em diante, então um número de tarefas kkk pode ser feita em n×n1×n2​​…n​k​​ formas.

Exemplo: (possibilidades variam conforme os passos) Imaginemos que há 3 passos num processo de decisão de investimento. O primeiro passo pode tem duas formas de ser feito, o segundo pode ser feito de 4 formas e o terceiro poder ser feito de três formas. Segundo a regra de multiplicação de contagem há 2×4×3=24 formas/caminhos de a nossa decisão pode tomar tendo em consideração os 3 passos acima descritos.

Exemplo 2: (possibilidades diminuem conforme os passos) Suponhamos que pretendemos atribuir 3 analistas para analisar 3 indústrias (um analista em cada indústria). De quantas formas podemos fazer as nomeações? O primeiro analista pode ser assignado de 3 formas diferentes. Sobram dois analistas. O segundo analista pode ser assignado de 2 formas diferentes. Então um analista e uma indústria sobram, Esse analista só pode ser assignado de uma forma. O número total de possibilidade de nomeações é: 3×2×1=6. A notação matemática compacta da multiplicação que acabamos de fazer é $\( 3! \)$ (três factorial).

Exercício 3.5

Quantas pares ordenados de pessoas conseguimos escolher num grupo de 5 pessoas?

Resolução

Vamos denominar as cinco pessoas como A, B, C, D e E. Todas as possibilidades de pares ordenados são:

A negrito as possibilidades impossíveis pois não podemos repetir uma pessoa. Só está para ajudar na visualização.

from sympy.functions.combinatorial.numbers import nC, nP

nP(5,2)
\[\displaystyle 20\]

Contagem quando a ordem não interessa (Combinação)#

Exercício 3.6

A partir do momento que a ordem não interessa o par (A, B) é o mesmo que o par (B, A). Pegando no rectângulo de pares em cima ficamos com dois conjuntos equivalentes de pares não ordenados:

nC(5, 2)
\[\displaystyle 10\]
Aviso!!

Quando é que num par de duas pessoas a ordem pode interessar? Podemos por exemplo pensar que no caso de pares ordenados o que escolhemos primeiro é o “líder” do par na resolução de uma tarefa. . Afinal escolher a Joana e o João ou o João e a Joana não é a mesma coisa. No caso de pares não ordenadosseria por exemplo em casos em que não há líder por isso realmente tanto faz (A, B) como (B, A)