Thanks for the tips! I'll update the tutorial code with that info in the next day or so. Until then, I've just added a note warning about the bias, and recommending the use of the ".pct_change()" method.
I think it helps to "step out" with correlation/regression to understand why something may be spurious or why you get the high correlation values that you do. In some cases, there is no logical connection between variables which leads to spurious regression. However, in this case, if you "step out", the reason for the correlation is pretty obvious.
There has been a lot of money pouring into crypto recently because most people are speculating on the space as a whole. Bitcoin's price is too high for smaller investors to make a significant amount of money on, but when a big Bitcoin move makes the news, those investors want a piece. They then pour money into the smaller coins, hoping to get a larger return on their investment.
All of this is to say that I think this is the opposite of spurious correlation. However, that doesn't make the correlation meaningful in any way. When ETH or BTC jumps and makes the news, the other coins tend to follow because the whole space is speculative right now.
As a fellow quant I wanted to clarify that we use changes of log prices. Your sentence suggests calculating the change in price and then taking the log rather than taking the log of the prices and then calculating the change.