Uma barra de erro para cada afirmação
Um backtest diz que uma estratégia ganhou 0,05% ao dia. Habilidade ou sorte? Um teste de hipótese responde com um valor p: se a média verdadeira fosse zero, com que frequência uma amostra pareceria tão boa? stats.ttest_1samp(r, 0.0) testa uma média, e stats.ttest_ind(a, b, equal_var=False) compara dois ativos sem supor que sejam igualmente voláteis (teste de Welch, a escolha segura). stats.jarque_bera(r) verifica se os retornos são normais olhando assimetria e curtose. Um valor p pequeno é evidência contra a ideia testada, não prova da ideia de que gostamos. E um teste vale o que valem suas suposições: o teste t supõe caudas finas, que os retornos diários não têm.
Quando as fórmulas são duvidosas, reamostre. O bootstrap sorteia muitas amostras com reposição dos seus dados, recalcula uma estatística a cada vez (a média, um índice de Sharpe, um quantil) e lê um intervalo da dispersão dos resultados: stats.bootstrap((r,), stat, method='percentile', random_state=np.random.default_rng(seed)). A estatística precisa aceitar um argumento axis, porque o SciPy passa um lote inteiro de reamostras de uma vez, e a semente torna a resposta repetível. Um teste de permutação embaralha os rótulos de dois grupos para ver com que frequência o acaso sozinho dá uma diferença tão grande quanto a observada. Por fim, teste 62 ativos a 5% e cerca de três parecerão significativos só por sorte. stats.false_discovery_control(p) aplica a correção de Benjamini–Hochberg e diz quais descobertas sobrevivem.
- Welch por padrão: não suponha que dois ativos tenham a mesma volatilidade.
- Reamostrar na dúvida: um bootstrap precisa de uma estatística com argumento
axise uma semente. - Conte seus testes: 62 testes a 5% dão cerca de três falsas descobertas; corrija-as.
Lab: o que é avaliado
- A média é zero?8 pts
- Dois ativos, duas volatilidades8 pts
- Um teste de normalidade6 pts
- Um intervalo bootstrap18 pts
- Um índice de Sharpe anualizado8 pts
- Um índice de Sharpe com barra de erro10 pts
- Um teste de permutação14 pts
- Contar falsas descobertas12 pts
- O estudo completo16 pts