Web Analytics

Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

Rの初歩 - 共分散と相関係数

来月から始まる講座のため、確率・統計と話題に関連するRについての復習。今日は共分散と相関係数

あるデータ群について、その中の一つの値がデータ群の平均からどれほど離れているかを偏差と呼ぶ。全データの偏差を平均すると0になってしまうため、偏差の2乗を平均するとデータ全体のバラツキがわかる。それを分散と呼ぶ。

共分散は対応する2つのデータについて、そのバラツキ具合を求めたもの、その関係性を表す数値であり、相関係数はそれを指数化したものと呼べばよいか。

共分散

データ群が一つのとき、分散を求めるときには偏差の2乗を平均する。偏差の平均は0になってしまうからだ。データ群が2つのときも理屈は同じなのだろう。しかし2乗する代わりにデータ同士を掛け合わせる。
Sxy = 1 n i=1 n ( xi - x¯ ) ( yi - y¯ )

データ同士の差を求め、その差を平均しても良いのではないか、と考えると不都合が生じる。例えば引く方、引かれる方を固定できないので、結果の正負が一定しない。この考え方の場合は積の平均を用いる。
Sxy = 1 n i=1 n xi yi - xy¯

共分散が正の値 相関関係
共分散が0近辺 あまり関係はない
共分散が負の値 逆相関

相関係数

共分散の数字が異なるからと言って、それで関係性の強弱を語ることはできない。比較可能とするならば、指数化しなければならない。
仮に英語と数学のテスト成績から、関連性を測定する。そこには強い関連があり、A高校での場合、B高校での場合、ともに同程度の関連があったとする。もしA高校のテストは100点満点、B高校は200点満点だったとすれば、関連性が同程度であったとしても共分散の数値は大きく異なるからだ。
r = Sxy SxSy

演習問題

github.com
与えられた資料は職員の一覧だ。年齢、在職期間(Tenure)、評価(Rating)、時給(hourly rate)が記録されている。
次の項目の関係性を調査し、所見を述べよ。

a) age and tenure
b) age and rating
c) Tenure and rating
d) age and hourly rating
e) tenure and hourly rating

与えられた資料(Excel)を読み込む。

library(readxl)
data <- read_excel("data.xlsx")

調査項目同士の相関係数を求める。相関係数を求める関数はcor。ちなみに共分散はcov
www.rdocumentation.org

> cor(data$Age, data$Tenure)
[1] 0.6499389
> cor(data$Age, data$Rating)
[1] -0.05272349
> cor(data$Tenure, data$Rating)
[1] -0.09137619
> cor(data$Age, data$`Hourly Rate`)
[1] 0.6565317
> cor(data$Tenure, data$`Hourly Rate`)
[1] 0.9952028
  • 在職期間と時給に強い相関がある。
  • 年齢と在職期間、年齢と時給に、相関がある。
  • 年齢と評価、在職期間と評価には相関がない。

在職期間と時給の相関だけプロットする。

plot(data$Tenure, data$`Hourly Rate`)

f:id:espio999:20190206231902p:plain