DEV Community

Cover image for S&P 100 - Estudo de Caso
Luiza Bizoni
Luiza Bizoni

Posted on • Updated on

S&P 100 - Estudo de Caso

Neste estudo de caso aplico o que aprendemos no post de introdução ao uso de Python para análises financeiras. Estes artigos fazem parte da série "Ciência de Dados aplicada a Finanças".

O que é o S&P 100

Computador com a tela aberta no acompanhamento do Mercado de ações

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.

Planta crescendo em um pote com moedas

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.

Gráfico de dispersão dos índices preço/lucro das top dez empresas

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:

Histograma dos índices preço/lucro das empresas dos setores de bens essenciais, indústria e tecnologia da informação

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.

Oldest comments (0)