buto > /dev/null

だいたい急に挑戦してゴールにたどり着かずに飽きる日々です

pythonで相関分析に挑戦

やったこと

機械学習、データ分析でよく聞く相関分析を体験してみた

お手本にした記事:【相関分析】相関係数行列の算出→ヒートマップ化

相関分析とは

xとyの関係を見ること xの値が増えるとyの値も増えるなら「正の相関あり」、 xの値が増えるとyの値が減るなら「負の相関あり」と言う xの値が増える・減ってもyの値が左右されていないなら「相関なし」と言う

pythonで相関分析してみよう!

今回は「1日の最高気温(℃)」と「チョコレートの売上金額(千円)」を 負の相関があるように手作りでデータを作成しました

相関分析をするpandas、グラフを表示するライブラリをインポート 手作りデータを読み込む

f:id:butorisa:20201020125906p:plain

読み込んだデータの「highest_temperature(x)」「sales_amount(y)」で相関を見ます x-yグラフを表示(気温が上がると売り上げが下がっていますね~)

f:id:butorisa:20201020125923p:plain

df.corr(method='pearson')で相関分析を実行 Out[7]の表に相関係数が出ました x-yの相関係数は「-0.889426」なので高い負の相関ありと言えます

f:id:butorisa:20201020125947p:plain

おまけで相関関係が見やすくなる(らしい)ヒートマップも表示してみました

f:id:butorisa:20201020125957p:plain

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import linear_model, metrics, preprocessing
import seaborn as sons

data = pd.read_csv('./data_choco.csv', header=0)
df = pd.DataFrame(data)
pd.DataFrame(data)
#-------データが表示される-------

%matplotlib inline
x = data['highest_temperature']
y = data['sales_amount']
plt.scatter(x,y)
plt.show
#-------グラフが表示される-------

corr_mat = df.corr(method='pearson')
df.corr(method='pearson')
#-------相関係数が表示される-------

sons.heatmap(corr_mat,
            vmin=-1.0,
            vmax=1.0,
            center=0,
            annot=True, # True:格子の中に値を表示
            fmt='.1f',
            xticklabels=corr_mat.columns.values,
            yticklabels=corr_mat.columns.values
           )
plt.show()
#-------ヒートマップが表示される-------

相関分析を体験してみて

xとyのデータ列を決めるだけでグラフが表示されるのはすごい!! ライブラリのこととか全然分からないけれど、図がぽんって出ると面白くていい 相関分析に使うデータをAPIやクローリングなどで作れるようになったら分析してるっぽくて理解が深まるのかも