K030 appstat201203 2variable

37
1 情報統計学 2 変量データの分析 20110520 scale 修正 20120502 スライド追加(散布図)

Transcript of K030 appstat201203 2variable

Page 1: K030 appstat201203 2variable

1

情報統計学

2変量データの分析20110520 scale 修正

20120502 スライド追加(散布図)

Page 2: K030 appstat201203 2variable

22変量データ

2変量データではあるが• それぞれの変量を 1変量データとして

1. 代表値2. 散布度3. ヒストグラム,ボックスプロット

などで分析できる。

Page 3: K030 appstat201203 2variable

3データの登録

データを登録,読み込む方法• weightという名前で登録し,その後, bodydataという形でまとめる。

• bodydataとして行列で登録

Page 4: K030 appstat201203 2variable

4ファイルからデータを読み込む(重要)

• data1.txtというデータファイルがあるとする。スペース orタブ区切り。

• data1.csvという CSVファイルを読み込むには

• データを確認してみよう• data1-1.csvという CSVファイル> bodydata <-read.csv("data1-1.csv")

Page 5: K030 appstat201203 2variable

5データの一部を取り出す

• まず, 1変量ずつ分析するため,一部を取り出そう

• height, weightそれぞれについて一変量の分析を行う。 関数 one.var.analysisをつくってあるのでそれを使う。

Page 6: K030 appstat201203 2variable

6

Page 7: K030 appstat201203 2variable

72変量の分析

• 並行箱ひげ図> boxplot(height, weight, names=c(”height”, ”weight”))

ちなみに

> boxplot(as.vector(scale(height)), as.vector(scale(weight)), names=c(“height”, “weight”))

とすれば ・・・

単位の異なる変数、数値の桁が異なる変数の平行箱ひげ図は意味が無い!ことが多い

Page 8: K030 appstat201203 2variable

散布図 plot

140 145 150 155 160

30

35

40

45

height

wei

ght

plot(bodydata)plot(height,weight)plot(weight~height)

Page 9: K030 appstat201203 2variable

9回帰直線

• 散布図から右上がり,右下がりの直線的な傾向

Page 10: K030 appstat201203 2variable

10回帰直線の導出

Page 11: K030 appstat201203 2variable

11

回帰分析の結果を bodylmに保存

Page 12: K030 appstat201203 2variable

12

Page 13: K030 appstat201203 2variable

13散布図に回帰直線を追加する。

Page 14: K030 appstat201203 2variable

14共分散・相関係数

• 散布図→直線的な傾向(回帰直線を引く)• 直線的傾向の強弱を数値化

右上がりか右下がりか どれだけ直線的傾向があるか

平均で分割した象限

「第 I,第 III象限のデータ数」>「第 II,第 IV象限のデータ数」の場合には右上がり「第 I,第 III象限のデータ数」<「第 II,第 IV象限のデータ数」の場合には右下がりの傾向

Page 15: K030 appstat201203 2variable

15

• 「第 I,第 III象限のデータ数」 - 「第 II,第 IV象限のデータ数」 正の場合は右上がり 負の場合は右下がり

最大の値は n – 0 = n 最小の値は 0 – n = – n

2つのデータでデータサイズが異なると (nAと nBなど),値により比較がしにくい。

• 比較しやすいようにデータ数で割る

• ケンドール

範囲は,-1から1±1に近いほど傾向が強い

Page 16: K030 appstat201203 2variable

16後のために別表現

ケンドールの τ係数

Page 17: K030 appstat201203 2variable

17共分散

• 共分散

• データの単位に関係する• どの程度強いか判定しにくい。

Page 18: K030 appstat201203 2variable

18

• →各軸からの距離を標準偏差で割った値にする

相関係数

Page 19: K030 appstat201203 2variable

19Rにおける共分散,相関係数

• Rで共分散を計算するには covを使うcov(height, weight)

• varでも計算できるn-1で割っていることを確認すること。 P37

• Rで相関係数を計算 corを使う cor(height, weight)

この例では, 0.851212

Page 20: K030 appstat201203 2variable

20相関係数の性質

• -1 ≦ r xy 1≦• 完全相関 r xy = ±1  1本の直線上にすべての点

• 無相関  r xy =0相関(直線的な傾向)が無い

• 計算結果が 0だとしても関係がないわけではない 直線的な関係以外

Page 21: K030 appstat201203 2variable

21-1 ≦ r xy 1≦

Page 22: K030 appstat201203 2variable

22完全相関

つまり直線状

Page 23: K030 appstat201203 2variable

23散布図と相関係数

• 散布図を見て,相関係数の値を読み取れるように練習。• testcor()

• 誤差は ±0.1の範囲で。

Page 24: K030 appstat201203 2variable

24順位相関係数

• データが順位( 1位, 2位,・・・)で与えられている場合の相関係数→順位相関係数

• スピアマンの順位相関係数 順位を普通のデータとして相関係数を計算

Aと Bの相関係数

Page 25: K030 appstat201203 2variable

25

• 順位の平均,分散 データは順位なので, 1から nが一度ずつ出てくる。

Page 26: K030 appstat201203 2variable

26

• 共分散

Page 27: K030 appstat201203 2variable

27

• よって相関係数は

スピアマンの順位相関係数

Page 28: K030 appstat201203 2variable

28ケンドールの順位相関係数

• 順位を全部に対してつけるのは難しい。 順位をつけられない場合もある

• n個の対象から取り出した nC2組の 2つの組み合わせに対して大小関係をつける。

• A,Bの 2名に大小関係をつけてもらう 一致した組数  K 不一致の組数  L M=K+L

• このとき ケンドールの順位相関係数

Page 29: K030 appstat201203 2variable

レポート• 2変量データ  carsデータに対して分析を行え。• しめきり

  月   日   時

Page 30: K030 appstat201203 2variable

30多変量データのグラフ表現

• irisデータ 3種類のアイリス(アヤメ)について各 50個の花を, 4ヶ所ずつ測定したデータ• がくの長さ• がくの幅• 花弁の長さ• 花弁の幅

• 有名なデータで,統計の分野では,よく利用される。• irisで確認できる。

Page 31: K030 appstat201203 2variable

31並行箱ひげ図

Sepal.Length Sepal.Width Petal.Length Petal.Width

02

46

8

Page 32: K030 appstat201203 2variable

32散布図行列

• pairs(iris[1:4])• pairs(iris[1:4],pch=21,bg = c("red", "green3", "blue")[unclass(iris$Species)])

Page 33: K030 appstat201203 2variable

333次元散布図

library(rgl)

rgl.points(iris[1:50,1], iris[1:50,2], iris[1:50,3], color="red", size=3)

rgl.points(iris[51:100,1], iris[51:100,2], iris[51:100,3], color="green", size=3)

rgl.points(iris[101:150,1], iris[101:150,2], iris[101:150,3], color="blue", size=3)

rgl.lines(c(0, max(iris[, 1])), c(0, 0), c(0, 0))

rgl.lines(c(0, 0), c(0, max(iris[, 2])), c(0, 0))

rgl.lines(c(0, 0), c(0, 0), c(0, max(iris[, 3])))

text3d(max(iris[, 1]), 0, 0, text = "X")

text3d(0, max(iris[, 2]), 0, text = "Y")

text3d(0, 0, max(iris[, 3]), text = "Z")

Page 34: K030 appstat201203 2variable

パッケージのインストール• > library(rgl)

以下にエラー library(rgl) : 'rgl' という名前のパッケージはありません

• パッケージ「 rgl」がインストールされていない。• Rguiウィンドウのメニュー「パッケージ」より

CRANミラーサイトの設定• Japan(Aizu) を選択(日本のどこでも可)

パッケージのインストール• rgl を選択

Page 35: K030 appstat201203 2variable

35

Page 36: K030 appstat201203 2variable

36平行座標プロット

library(MASS)

parcoord(iris[1:4], col = 1 + (0:149)%/%50)

Page 37: K030 appstat201203 2variable

37散布図と相関係数

• 散布図を見て,相関係数の値を読み取れるように練習。• testcor()

• 誤差は ±0.1の範囲で。