Vou dar uma olhada nos dados para ver se as transformações estão indo bem

Médias e Variâncias

Como dito antes, o ideal para a maioria dos modelos de machine learning é que a média seja 0 e a variância 1. Isso não vai rolar, pois os modelos foram normalizados usando lógica e algum empirismo, afinal, a idéia da normalização é dar resultados razoáveis para qualquer ação; mesmo assim queria que os valores não se desviassem muito disso.

O Ultimate Oscillator, o desvio padrão e o MACD do índice Bovespa (IBOV) estão com valores muito baixos, eles foram corrigidos posteriormente para dar um desvio padrão próximo de 0.8

Coeficiente de correlação

O coeficiente de correlação, o amigo da garotada R^2, mede o quanto da variância de uma variável pode ser explicada por outra variável. Eu espero que haja um certo nível de colinearidade entre algumas variáveis, já que no fundo muitas medem as mesmas coisas de forma diferente

Como esperado os preços são bem colineares, nenhuma surpresa aqui. Eu vou manter por curiosidade e porque todos os outros indicadores são expansões não lineares dos preços e do volume. Vai que os modelos descobrem outras expansões relevantes? A surpresa é que volume e ADX não são colineares com nada, ADX, eu esperava que se correlacionasse um pouquinho com MACD, já que ambos indicam momento. ATR e o DP10 se relacionam apenas consigo mesmo, bom pois ambos são medidas de volatilidade. IBOV mexe um bocado com os preço, isso é importante destacar, mostrando que é uma boa idéia adicioná-lo as variáveis. Ultimate Oscilator, MFI e o Estocástico lento (EL) também são correlacionados, os 3 dão sinais de overbought e oversold, então é natural que eles disparem juntos várias vezes. A melhor parte dessa análise é que identifiquei 3 pares de variáveis com R2 altos demais: K e D do EL, e os sinais e os MACDs do IBOV e da PETR3. Decidi matar o K e os sinais, reduzindo para 22 o número de variáveis.

PCA

Análise de componentes principais é muito usada para analisar as colinearidades do conjunto todo, enquanto o R2 vê apenas par a par. Eu não usarei PCA para redução de dimensionalidade, pois eu teria que assumir que a distribuição da PETR3 seria similar aos das outras ações e que a base de dados não é uma série temporal, e essas hipóteses não são verdade

PCA é uma transformação linear baseada na variância da base de dados. Ele transforma os dados em uma base ortogonal, de forma que o primeiro vetor da base, o primeiro loading é explica maior parte da variância, o segundo pela segunda maior parte da variância e assim por diante. Os últimos loadings são praticamente ruído.

c

Os scores mostram que a base de dados tá de boa, não tem nenhum grande ponto fora da curva.

O pareto é a parte mais importante dessa análise. Ele diz quanto da variância da base de dados é explicada por cada loading. 95% da variância é explicada pelos 10 primeiros loadings, indicando que metade da base de dados é meio redundante e poderia ser excluída. Se a base de dados não fosse uma série temporal eu até faria isso mesmo, mataria pelo menos umas 5 colunas para facilitar pros modelos.

Esse último gráfico mostra quais os componentes mais usados nos loadings 1 e 2. Como esperado os preços andam juntos, e eles estão bem juntos do OBV e IBOV, indicando que essas 6 características são meio redundantes juntas. Do outro lado as medidas de força, os histogramas do MACD, são as maiores fontes do segundo loading. O volume e o ADX respondem por quase nada, indicando que eles são relvantes nos loadings seguintes