Categories: Python経済指標

Python3でビットコインの回帰線を描いてみる

現在のビットコインの値段の推移はどうなっているのか調べてみました。

%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')

関連する投稿:

kaz

Share
Published by
kaz

Recent Posts

よく使うショートカットキー

土曜日の日経新聞のNIKKEI…

3年 ago

気になるETFのメモ

ETFを色々調べていたので銘柄…

4年 ago

SPDRゴールド・シェアETF(GLD)を買いました

無事に米国株取引口座を開設でき…

4年 ago

インフレになったらどうなるのか

最近、インフレになったらどうな…

4年 ago

複利の話とiDeCoのすすめ

転職した会社には確定拠出年金が…

4年 ago