BellCurve 統計WEB

無料登録してPythonを学ぶ
未経験からデータ分析が学べる
  • Step3. 実践編
  • 1. データの整理と可視化

1-2. 相関係数と散布図


次のデータは、「Step0. 初級編 7-2. データの相関を見てみよう」で用いたデータです。このデータを使って「相関行列の算出」と「参加匹数と競技時間の散布図の作成」を行ってみましょう。

ファイルのダウンロードはこちらから

■Excelによる解析例

  1. 「neko_sports.csv」のデータのうち、A列を除くすべてのデータを選択(B1セルからD8セルまで)
  2. データ > データ分析 > 相関を選択 > [OK]をクリック
  3. ※「データ分析」が見当たらない方はこちらを参考に設定を行ってください。

  4. 「入力元」と「出力オプション」を図のように設定
  5. 
    	
  6. 相関行列(相関係数の行列)が出力される
  7. ※この結果から、「参加匹数と競技時間」の相関係数は0.768、「参加匹数と怪我した猫」の相関係数は0.929、「競技時間と怪我した猫」の相関係数は0.930であることが分かります。

  8. 再び「neko_sports.csv」データに戻り、B列とC列を選択(B1セルからC8セルまで)
  9. 挿入 > 散布図の絵 > 散布図を選択(デフォルトのグラフが出力されます)
  10. 
    
    

  11. デフォルトのグラフを加工
  12. 散布図からも、「参加匹数と競技時間」の間に強い正の相関があることが確認できます。

■Rによる解析例

・その1(packageを使わない場合)

dat <- read.csv("neko_sports_eng.csv", header=T)

#相関行列の算出
cor(dat[,2:4])

#散布図の作成
n <- dat[,2]
time <- dat[,3]
plot(n, time, pch = 19,  col = "blue")

・その2(ggplot2とpsychを使う場合)

library(ggplot2)
library(psych)

#相関行列の算出
pairs.panels(dat[,2:4])

#デフォルトのグラフの出力
G1 <-ggplot(dat, aes(x = n, y = time)) +  #x軸とy軸のデータを設定
  geom_point() #散布図を指定
plot(G1)

#加工後のグラフの出力
G2 <-ggplot(dat, aes(x = n, y = time)) + 
  geom_point(col = "blue", size=4) + #散布図を指定&点の色を指定&点の大きさを指定
  theme(panel.grid.major = element_blank(),  #背景のgridの削除 
        panel.grid.minor = element_blank(),  #背景のgridの削除
        panel.background = element_blank(),  #背景色の削除
        axis.line=element_line(colour = "black"),  #グラフの線の色を指定
        axis.ticks=element_line(colour = "black"),  #グラフの目盛(ticks)の色を指定
        axis.text=element_text(size=14),  #グラフの目盛のフォントサイズを指定
        axis.title=element_text(size=16))  #軸ラベルのフォントサイズを指定
plot(G2)

■Pythonによる解析例

・その1(matplotlibを使う場合)

import pandas as pd
import matplotlib.pyplot as plt

dat = pd.read_csv("neko_sports_eng.csv")

#相関行列の算出
dat.corr()

#散布図の出力
fig, ax = plt.subplots()  #グラフの大枠の作成
ax.scatter(dat["n"], dat["time"], 
           c="blue")  #点の色を指定
plt.xlabel("n", fontsize=14)  #x軸ラベルとフォントサイズを指定
plt.ylabel("time", fontsize=14)  #y軸ラベルとフォントサイズを指定
plt.show()  #グラフを表示

・その2(matplotlib + seabornを使う場合)

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

dat = pd.read_csv("neko_sports_eng.csv")

#散布図行列の出力
sns.set()  #グラフの設定を初期化
sns.set(font_scale=1.2)  #フォントサイズを指定
sns.set_style("white")  #グラフのスタイルを指定
sns.pairplot(dat) 
plt.show()

#散布図の出力
sns.set()
sns.set(font_scale=1.2)
sns.set_style("white")
sns.jointplot('n', 'time', data=dat, color="blue")  #データと点の色を指定
plt.show()


1. データの整理と可視化


統計学やデータ分析を学ぶなら、大人のための統計教室 和(なごみ) [業務提携]


統計WEBを運営するBellCurveは、統計解析ソフト「エクセル統計」を開発・販売しています! 統計解析ソフト「エクセル統計」をインストール後のExcel上のタブとメニュー エクセル統計ジャケット画像


【BellCurve監修】統計検定®2級対策に最適な模擬問題集1~3を各500円(税込)にて販売中!

Kindleストアで配信中

統計検定®2級 模擬問題集1

500円(税込)

統計検定®2級 模擬問題集2

500円(税込)

統計検定®2級 模擬問題集3

500円(税込)