データサイエンス基本編 | R | 散布図

散布図

ソースコードに国語と情報の成績
2つのの変数間の関係を考えていましょう。

例えば、国語の試験成績と情報ないし英語の試験成績には関係が認められるでしょうか?
library()でdplyrをロード
またlibrary()でggplot2をロード
testsオブジェクトから%>%(パイプ)演算子で渡します
グラフ(プロット)描画の為にggplot関数の中にaes()関数を使い、x軸をJapanese
そして、Y軸にはInfomation
散布図を描きたいのでgeom_point()としましょう。

 

散布図
# 国語と情報の成績
tests %>% ggplot(aes(x=Japanese,y=Information))+geom_point()

2つの科目をプロットする場合、一報を横軸を縦軸に設定するのが定石です。

 

ggplot2ではx軸y軸という形で設定します。

国語と英語の関係を見てみます。
国語と英語の成績
testsオブジェクトから%>%(パイプ)で渡すグラフ(プロット)描画のためにggplot()
x軸にはJapaneseそして、Y軸にはEnglish
今度も散布図を書きたいのでgeom_point()です。

国語と英語のプロットからこの科目の成績は関連がありそうです。

どういう関係性があると言えるでしょうか考えてみてください。
そうです。

国語の成績がよければ英語の成績も良い傾向がみえるかと思います。
ただ、もちろんこれは視覚的な印象に過ぎませんが、数値で確認するのが相関係数です。

相関係数は変数の平均について、個々のデータがどのよう増減しているのか
また、もう片方の変数の平均値と個々のデータの増減を対応し数値化した指標です。

まずは求めてみます。
「tests」オブジェクトから%>%(パイプ)で渡す
selectでJapanese、Englishの列を抽出してさらに%>%(パイプ)で渡してcor関数で相関係数を求めます

 

散布図

# 国語と英語の成績
tests %>% ggplot(aes(x=Japanese,y=English))+ geom_point()

tests %>% select(Japanese,English) %>% cor()

相関係数は計算上-1から1の範囲の値となります
マイナスをその”負の相関“、
プラスを”正の相関“と言います。

正の相関は、一方が増えると他方も増える関係を言います。
負の相関とは一方が増えると他方が減るケースです。

例えば、夏場の最高気温とおでんの売り上げ
泥水の濃度とその透明度などが考えられます。

国語と英語ではこのように相関係数を算出します。
相関係数が1より0に近い場合一つの変数の間に関連性はないとみなします。

一方、先の国語と英語の相関関係は0.44でした。
ので2つの科目にはあまり関連性が認められませんでした。

相関係数から変数の関係を判断するにはその変数の性質にもよりますが、一般的に言えば絶対値で0.7を超えるようであればかなり強い関連性が認められると判断して構わないでしょう。

変数間の相関が強い場合この性質を利用して、一方でデーターの大きさから他方のデータの大きさを予測することが可能になります。

国語と情報の成績
「tests」を打ったら%>%(パイプ)で渡す
グラフ(プロット)描画のためにggplot
x軸にはJapaneseそして、Y軸にEnglish
散布図を書くのでgeom_point()
さらに回帰直線もレイヤーに追加しましょう。
geom_smmoth()でメソッドは”lm”にしましょう。

相関係数

# 相関係数
tests %>% select(Japanese,Mathematics) %>% cor()

# 国語と数学の成績
tests %>% ggplot(aes(x=Japanese,y=English)) + geom_point() + geom_smooth(method = "lm")

散布図の左下から右上にかけて直線を引きました。
この直線はあてずっぽうに敷かれているのではなく”最小二乗法“という方法で求めた直線の式を利用しています。
最小二乗法とは直感的に説明すると、データのちょうど中央を取るような直線を取れる方法です。

このために作図の段階でRのlm関数を使っています。

この直線を元にすると、例えば国語が70点の生徒は英語がおよそ68点程度になると予想できます。

直線の上下のグレーの範囲は誤差幅で国語70点の生徒は英語が68点と予想されるものの誤差などを考慮すると概ね65点から71点程度の範囲になる可能性が高いことを表しています。
この直線のことを回帰直線
回帰直線の傾きと切片を求める方法を回帰分析と言います。

Rのlm関数は回帰分析を実行するための関数です。

相関に基づいてデータを予測する方法はシンプルですが、データサイエンスの分野では広く使われている重要な手法です。