現在のビットコインの値段の推移はどうなっているのか調べてみました。
%matplotlib inline
import datetime as dt
import pandas as pd
import matplotlib.pyplot as plt
btc = pd.read_csv("https://api.blockchain.info/charts/market-price?format=csv", names=['Date', 'Value'])
tmd = pd.to_datetime(btc['Date'])
btc.index = tmd
btc.plot(color='darkblue')
plt.ylabel('BITCOIN')
ついでにビットコインの対数の回帰線も調べてみます。
import statsmodels.api as sm
import numpy as np
lnnbtc=np.log(btc['Value'].dropna())
y=lnnbtc
x=range(len(lnnbtc)) #lnnbtcと同じ長さに設定
x=sm.add_constant(x) #線形回帰の切片のために列(要素)を作成
model=sm.OLS(y,x) #線形回帰分析を設定modelとして保存
results=model.fit()
print(results.summary())
OLS Regression Results
==============================================================================
Dep. Variable: Value R-squared: 0.914
Model: OLS Adj. R-squared: 0.914
Method: Least Squares F-statistic: 7707.
Date: Sat, 11 Feb 2017 Prob (F-statistic): 0.00
Time: 20:26:09 Log-Likelihood: 438.28
No. Observations: 730 AIC: -872.6
Df Residuals: 728 BIC: -863.4
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [95.0% Conf. Int.]
------------------------------------------------------------------------------
const 5.2796 0.010 537.106 0.000 5.260 5.299
x1 0.0020 2.33e-05 87.790 0.000 0.002 0.002
==============================================================================
Omnibus: 2.417 Durbin-Watson: 0.045
Prob(Omnibus): 0.299 Jarque-Bera (JB): 2.273
Skew: 0.131 Prob(JB): 0.321
Kurtosis: 3.076 Cond. No. 841.
==============================================================================
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
R-squared(決定係数):0.914となっているのでイイ感じなんじゃないでしょうか。
plt.plot(y,label='Value',color="darkgray")
results.fittedvalues.plot(label='prediction',style='--')
plt.ylabel('log(BTC)')
plt.legend(loc='upper left')