S&P 100 - Estudo de Caso
Tags: estudodecaso, sandp100, analisededados, mercadodeacoes
Published: 2020-05-18 23:32:13

Neste estudo de caso aplico o que aprendemos no post de [introdução ao uso de Python para análises financeiras](https://dev.to/luizabizoni/explorando-dados-financeiros-com-python-introducao-4f6b). Estes artigos fazem parte da série "Ciência de Dados aplicada a Finanças".

## O que é o S&P 100

<center><img src="https://dev-to-uploads.s3.amazonaws.com/i/25kcsqncmjplqzoffrk7.jpg" alt ="Computador com a tela aberta no acompanhamento do Mercado de ações" width="600"></center>
O S&P 100 é um índice ponderado de valor de mercado composto por 100 ativos do mercado de ações dos Estados Unidos mantido pela Standard & Poor's, uma empresa de consultoria financeira.

Os ativos são qualificados devido ao seu tamanho de mercado, sua liquidez e sua representação de grupo industrial e são selecionados por um comitê de acordo com critérios de seleção. 

## Primeiras análises
Nosso ponto de partida são quatro matrizes unidimensionais com os dados de cada uma das cem empresas do índice S&P 100 de 2017. Temos as seguintes matrizes: names, com o nome das empresas; prices, com o preço por ação; earnings, com o lucro por ação e sectors, com os setores.

Vamos visualizar os primeiros três itens de cada matriz para entendermos os dados que estamos trabalhando.:

    print(names[:3]) #Retorna: ['Apple Inc', 'Abbvie Inc', 'Abbott Laboratories']
    print(prices[:3]) #Retorna: [170.12, 93.29, 55.28, 145.3]
    print(earnings[:3]) #Retorna: [9.2, 5.31, 2.41, 5.91]
    print(sectors[:3]) #Retorna: ['Information Technology', 'Health Care', 'Health Care']

Perceba que temos duas matrizes com elementos do tipo string, com os nomes e setores das empresas e duas com elementos do tipo float, com os preços por ação e os lucros por ação das empresas.

<center><img src="https://dev-to-uploads.s3.amazonaws.com/i/f87o2w0jv0k3uaxdzzl5.jpg" alt ="Planta crescendo em um pote com moedas" width="600"></center>

### Análise da expectativa de crescimento das empresas 

Podemos fazer a análise da expectativa de crescimento das empresas calculando o índice preço/lucro, que é um índice usado para medir o quanto os preços das ações estão baratos ou caros em determinado período de tempo de comparação. Para isso, vamos dividir a matriz "prices" pela "earnings":

    import numpy as np
     
    # Calcular índice P/L
    pe = prices/earnings

O índice preço/lucro equivale a quantos dólares espera-se investir em uma empresa a fim de receber um dólar de proventos. Quanto mais alto o valor do índice, maior é a expectativa de crescimento daquela empresa.

Vamos visualizar os nomes e setores das 10 empresas com maior expectativa de crescimento para verificar se existe algum padrão:

    # Visualizar o índices P/L de corte das top 10
    pe_ordenado = np.sort(pe)
    top_10 = x = np.percentile(pe_ordenado, 90)
    print(top_10) # Retorna: 34.13901640570927
    
    # Criar matriz de booleanos para filtragem
    boolean_array = (pe >= top_10)
    
    # Selecionar os nomes e setores das top 10
    top_nomes = names[boolean_array]
    top_setores = sectors[boolean_array]
    
    # Visualizar
    print(top_nomes)
    print(top_setores)

Ao filtrar as top 10 empresas, podemos verificar que existe um padrão nos setores nos quais estas fazem parte. Apenas três dos 11 setores do S&P 100 de 2017, aparecem no top 10 empresas com maior expectativa de crescimento, que são os de energia,  tecnologia da informação e bens não-essenciais. 

<center><img src="https://dev-to-uploads.s3.amazonaws.com/i/6zhvppuozd9djj1cp4w3.png" alt ="Gráfico de dispersão dos índices preço/lucro das top dez empresas" width="600"></center>

Ao plotar um gráfico de dispersão dos índices preço/lucro dessas dez empresas é possível verificar um ponto com grande afastamento dos demais, que é da empresa do setor de energia Conocophillips. 

## Visualizando tendências 

Para fins de análise, voltaremos a verificar todo o grupo de empresas em busca de setores que possuam distribuições com menos outliers. 

Após analisar as médias e desvios padrão de cada um dos setores vamos seguir com os três com as maiores médias, mas que não possuem valores muito aberrantes. São eles: Bens Essenciais, Industrial e Tecnologia da Informação. 

Para visualizar e entender a distribuição dos índices preço/lucro desses setores, iremos plotar um histograma onde CS (Consumer Staples) são as empresas de Bens de Consumo, IN (Industrials) as do setor Industrial e IT (Information Technology) as do setor de Tecnologia da Informação:

<center><img src="https://dev-to-uploads.s3.amazonaws.com/i/rmkz4aq8vrnkotvamn24.png" alt ="Histograma dos índices preço/lucro das empresas dos setores de bens essenciais, indústria e tecnologia da informação" width="600"></center>

Veja que existe no setor de tecnologia da informação uma empresa com índice preço/lucro que ficou muito acima dos demais. Vamos identificar qual é essa empresa e qual foi seu índice preço/lucro no ano de 2017:

    # Identificar o índice P/L em it_pe que foi > 50
    outlier_price = it_pe[it_pe >  50]
    
    # Identificar a empresa com o índice P/L > 50
    it_names = names[it_boolean_array]
    outlier_name = it_names[it_pe >  50]
    
    # Mostrar resultado
    print("Em 2017, o índice P/L da empresa " + str(outlier_name[0]) + " foi de " + str(round(outlier_price[0], 2)) + ".")

A empresa que apresentou índice preço/lucro bem acima da média entre as empresas do setor de Tecnologia da Informação foi a Paypal Holdings e seu índice foi de 54.68.


*Este post foi escrito baseado em meu aprendizado com o curso "Introduction to Python for Finance" ministrado por Adina Howe disponível [neste link](https://campus.datacamp.com/courses/introduction-to-python-for-finance).*