Data Study on Bitcoin News Sentiments and Return Rates
The skills the author demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.
For my second project as part of the curriculum of NYC Data Science Academy's 12 week Data Science Bootcamp, I decided to look at the price movement of Bitcoin. It's an interesting topic for reasons such as its high volatility, unique macroeconomic role, and murky reputation. I employ linear regression and distribution fitting to describe trends relating to Bitcoin, and show motivation for future directions in the signal processing domain. Bitcoin's volatile nature is confirmed, and evidence is presented to suggest that Bitcoin behaves more like a commodity than a currency.
If you are not familiar with the basics of Bitcoin then you can inform yourself at the Bitcoin wiki.
I scraped text and price data found at 99bitcoins.com to use in my analysis using Scrapy. Specifically, I scraped links to 61 major articles relating to Bitcoin, the 10 day price difference for each event, and the complete daily price history of Bitcoin. The types of events range from the hacking of Mt. Gox, a prominent bitcoin exchange, to the People's Bank of China condoning Bitcoin.
I decided to use the Syuzhet package in R to quickly run a sentiment analysis on these articles. I used nrc_sentiment to extract specific emotions from the text and found a clear increase in positive and trusting tones. From this small sample size, the sentiment + NLP analysis direction appeared promising. Nevertheless, I didn't want to dig too far in before learning more about various python libraries and obtaining a higher volume of articles.
In order to explore Bitcoin's behavior further I decided to plot a histogram of its daily return rates. The plot shows a clear distribution, although I was not sure which one. After failing to find a good fit with the normal distribution, I found a somewhat suitable fit with the Cauchy Distribution. This is probably due to the fact that the Cauchy is better for describing the behavior in the tails where extreme events occur (and have occurred) for Bitcoin.
The Cauchy does not have well-defined mean or variance which also makes sense in the context of bitcoin's extreme volatility. I used scipy.stats to fit the distribution so did not retrieve exact quality of fit parameters but do plan to do so in the future with the scipy.odr module.
After digging further, I found that it is an ongoing argument as to the nature of bitcoin being more akin to a commodity or a currency. To address this question, I decided to plot this same distribution for some common commodities.
Bitcoin behaving like a commodity isn't surprising given certain realities about Bitcoin:
- The total number of bitcoins are to be capped at 21 million
- It accommodates a need for international or anonymous exchange that is usually frowned upon by states
- It has acted as an emergency currency in countries where the national currency is unstable. As in Cyprus or Venezuela
These factors and others make bitcoin unique in its role (along with other lesser crypto-currencies), and provide it with an underlying value. Being the most well-known and first crypto-currency gives it an advantage in terms of usage, and it will be interesting to see in the future if there will be room for other crypto-currencies such as Ethereum or LiteCoin.
The next step in my analysis led me into the realm of Financial Signal Processing, something that is unfamiliar to me. I obtained historical data from the btc-e Bitcoin exchange and I plotted various daily return rates over time to obtain the following plot:
Looking at the daily return rate over time definitely reminds me of a signal which naturally follow techniques such as Fourier Transforms and Auto-Correlation plots. These would be my natural next inclinations for the time series analysis. A traditional Auto-Correlation plot would not be appropriate for a return rate that does not have a defined mean or variance so some other approach or modification would need to be used.
In conclusion, what we've learned about bitcoin is that it's highly volatile in value and seems to exhibit commodity-like behaviors in its daily return rates. Over time, it appears to have gained in trust and positive feeling as indicated by relevant news articles. I look forward to exploring bitcoin and other financial time series data in the future to learn more about proper analytical techniques. Please feel free to reach out with any questions or comments. Thank you for reading.