Testes de permutação para correlações
Como a volatilidade do Bitcoin se compara à volatilidade do S&P 500?
Você calculou anteriormente a volatilidade como a variação percentual diária, que foi armazenada para você nas colunas Pct_Daily_Change_BTC e Pct_Daily_Change_SP500 nos seus dados. A pergunta que você quer responder é em que medida esses dois valores se correlacionam. Uma forma de responder é por meio de um teste de permutação. Ao embaralhar aleatoriamente os valores entre o S&P 500 e o BTC, você consegue ver como seria um resultado aleatório e, em seguida, comparar com os valores observados.
Um DataFrame com preços do S&P 500 e do Bitcoin (btc_sp_df) já foi carregado para você, assim como os pacotes pandas como pd, NumPy como np e stats do SciPy.
Este exercicio faz parte do curso
Fundamentos de Inferência em Python
Instruções do exercicio
- Defina uma função
statistic()que retorne apenas o valor de R de Pearson entre dois vetores. - Defina seus
datacomo uma tupla contendo a volatilidade deBTCeSP500. - Realize um teste de permutação com esses dados, a estatística, 1000 reamostragens e com a hipótese alternativa de maior volatilidade com Bitcoin.
- Imprima se o p-valor é significativo a 5%.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Define a function which returns the Pearson R value
def statistic(x, y):
____
# Define the data as the percent daily change from each asset
data = ____
# Compute a permutation test for the percent daily change of each asset
res = ____(____, ____,
n_resamples=____,
vectorized=____,
alternative='____')
# Print if the p-value is significant at 5%
print(res.pvalue < 0.05)