In [2]:
import config
from coin import Coin
import plot

In [3]:
fields = ['block_chain_work', 'block_num_tx', 'price']
coins = [Coin(ticker) for ticker in config.TICKERS]
frames = [coin.get_frame(*fields, normalize='z_score') for coin in coins]

In [7]:
corrs = {}
for (coin, df) in zip(coins, frames):
    plot.plot_timeseries(coin.ticker, df, window=100)
    corrs[coin.ticker] = df.corr()
    print corrs[coin.ticker]


                  block_chain_work  block_num_tx     price
block_chain_work          1.000000     -0.023273 -0.020047
block_num_tx             -0.023273      1.000000  0.227554
price                    -0.020047      0.227554  1.000000
                  block_chain_work  block_num_tx     price
block_chain_work          1.000000     -0.006589 -0.052038
block_num_tx             -0.006589      1.000000  0.134769
price                    -0.052038      0.134769  1.000000
                  block_chain_work  block_num_tx    price
block_chain_work          1.000000     -0.066344 -0.16987
block_num_tx             -0.066344      1.000000  0.10410
price                    -0.169870      0.104100  1.00000
                  block_chain_work  block_num_tx     price
block_chain_work          1.000000      0.044167 -0.260599
block_num_tx              0.044167      1.000000  0.047648
price                    -0.260599      0.047648  1.000000
                  block_chain_work  block_num_tx     price
block_chain_work          1.000000     -0.073549 -0.031882
block_num_tx             -0.073549      1.000000  0.079505
price                    -0.031882      0.079505  1.000000
              block_num_tx     price
block_num_tx      1.000000  0.019668
price             0.019668  1.000000
                  block_chain_work  block_num_tx     price
block_chain_work          1.000000      0.091292  0.082153
block_num_tx              0.091292      1.000000  0.105890
price                     0.082153      0.105890  1.000000
                  block_chain_work  block_num_tx     price
block_chain_work          1.000000     -0.065853 -0.142190
block_num_tx             -0.065853      1.000000  0.103507
price                    -0.142190      0.103507  1.000000
                  block_chain_work  block_num_tx     price
block_chain_work          1.000000      0.083396  0.260938
block_num_tx              0.083396      1.000000  0.239360
price                     0.260938      0.239360  1.000000
                  block_chain_work  block_num_tx     price
block_chain_work          1.000000      0.050167 -0.345186
block_num_tx              0.050167      1.000000  0.326527
price                    -0.345186      0.326527  1.000000
                  block_chain_work  block_num_tx     price
block_chain_work          1.000000     -0.009246  0.598207
block_num_tx             -0.009246      1.000000  0.051958
price                     0.598207      0.051958  1.000000

In [47]:
# Create histograms of correlation coefficient distribution
def plot_histogram(m1, m2, num_bins=10, color='red'):
    data = [corrs[ticker][m1][m2] for ticker in corrs if ticker != 'nmc']

    # the histogram of the data
    plt.hist(data, num_bins, facecolor=color, alpha=0.75)
    plt.xlabel('Correlation Coefficient')
    plt.ylabel('Count')
    plt.title(m1 + ' vs. ' + m2)
    plt.grid(True)
    plt.show()

plot_histogram('price', 'block_chain_work', num_bins=8)
plot_histogram('price', 'block_num_tx', num_bins=8, color='green')
plot_histogram('block_chain_work', 'block_num_tx', num_bins=8, color='blue')