中学3年生×大学ゼミ 統計解析ソフト「r」の基本2019.11.8).pdf ·...

42
学3 ×大学ゼミ ソフト「R大学 2019 11 8 ( ) 小森 (成蹊大学) 中学3年生×大学ゼミ 2019 11 8 () 1 / 42

Upload: others

Post on 07-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

中学3年生×大学ゼミ–統計解析ソフト「R」の基本–

小森 理情報科学科

場所:成蹊大学日時:2019年 11月 8日 (金)

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 1 / 42

Page 2: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

本日の内容

.

. . 1 統計解析ソフトR(データサイエンティストの料理道具)

.

. .

2 Rの使い方

.

. .

3 実際のデータ (哺乳類とアヤメのデータ)

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 2 / 42

Page 3: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

統計解析ソフトRとは?

「探索的データ解析」(Exploratory Data Analysis: EDA)を実践するために作られた対話型計算機環境.グラフィクスの機能も充実している.EDAは1970年代に John Wilder Tukey博士によって初めて提唱された.https://cran.r-project.org/

前身は AT&T(American Telephone & Telegraph Company)のベル研究所で開発された Sである.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 3 / 42

Page 4: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

ベル研究所

1925年設立.電気通信基礎技術に関する研究が盛ん.1940年代まではニューヨーク市内に本拠地があったが,今現在ニューヨーク郊外のニュージャージー州に移転.さまざまな革新的技術を開発してきた(電波望遠鏡,トランジスタ,情報理論,C,C++言語).ノーベル物理学賞受賞者を数多く輩出.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 4 / 42

Page 5: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

探索的データ解析 (EDA)

(Tukey博士)

探索的データ解析は1970年代に John Wilder Tukey博士によって初めて提唱された.データと対話(知的やり取り)をしながらデータの背後にあるメカニズム(本質)を探り出すための能動的解析方法 (⇔記述統計).Bell LabsとPrinceton Universityに勤務.データサイエンスの提唱者W.S. Clevelandも Tukeyの弟子の一人.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 5 / 42

Page 6: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

Rでできること

.

. .1 統計解析全般.仮説検定も容易(分布表も不要)

.

..

2 描画機能も豊富

.

.

.

3 さまざまな packageが用意されている.ほとんど全ての解析が実行可能

.

.

.

4 電卓の代わりとしても有用

.

.

.

5 線形計算(ベクトルや行列の計算)は得意.ただ非線形な計算は不得意

.

.

.

6 計算速度はそれほど速くない.ただしCや Fortranを内部で呼び出せる.また並列化の packageも容易されている.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 6 / 42

Page 7: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

本日の内容

.

. . 1 統計解析ソフトR(データサイエンティストの料理道具)

.

. .

2 Rの使い方

.

. .

3 実際のデータ (哺乳類とアヤメのデータ)

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 7 / 42

Page 8: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

便利なショートカット I

Ctrl+C:コピー

Ctrl+V:貼り付け

Ctrl+S:保存

Ctrl+X:切り取り

Ctrl+Z:やり直し (間違えたときに元の状態に戻す)

Ctrl+A:全て選択

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 8 / 42

Page 9: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

関数を自作する I

1+2+3+· · · +nを計算する関数を作る.

.

..

1 fixを使い関数の中身を表示

.

.

. ...

.

> fix(tashizan) # 関数の名前は何でも良い

.

.

.

2 中身の編集

.

.

. ..

.

.

function(n=5){ #nのデフォルトの値を設定.特に指定しなくてもよい  x=0 # 初期値を設定for(i in 1:n){ #1:n=1,2,..,nの数列x=x+i # xに iを足すprint(x) # xの表示

}

}

青文字はコメント文.引用符「{」を入力するには「Shift」キーを押しながら「[」を,「}」を入力するには「Shift」キーを押しながら「む」を入力する.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 9 / 42

Page 10: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

関数を自作する II

.

. .3 Crtl+Sで中身を保存(その前に Crtl+A, Ctrl+Cで中身を全てコピーしておくことを勧める)

.

..

4 画面の右上の×印をクリックして編集を終了.但しプログラムにエラーがあると,中身が保存されずに強制終了される.

.

.

.

5 関数を実行する (Enterキーを押す)

.

.

. ...

.

> tashizan() # 1+2+3+4+5=15の計算 (デフォルト n=5で計算)

.

.

.

6 引数を明示的に与えることもできる

.

.

. ...

.

> tashizan(n=10) # 1+2+3+....+10=55の計算

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 10 / 42

Page 11: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

問題 I

.

..

1 1+2-3+4+5-6+7+8-9+10+· · · +nを計算する関数を作る.

.

.

. ...

.

> fix(keisan)

.

.

. ..

.

.

function(n=5){ #nのデフォルトの値を設定.特に指定しなくてもよい  x=0 # 初期値を設定for(i in 1:n){if(i%%3==0) #iが 3で割り切れるときx=「?」 #xから iを引く

else #iが 3で割り切れないときx=「?」 # xに iを足す

print(x) # xの表示}

}

.

.

. ...

.

> keisan(n=10) # 1+2-3+4+5-6+7+8-9+10=19の計算

.

.

. ..

.

.

> 10%%3 # %%は余りを計算する[1] 1

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 11 / 42

Page 12: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

Rの作業スペースの保存

好きな名前で保存できる.ただし拡張子は RData.例えば作業スペースの名前を zemi とすると

zemi.RData で保存できる.こうすると R で作成したオブジェクトが全て保存され,保存した時点

の状態でRの作業を再開できる.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 12 / 42

Page 13: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

2次元のランダムウォーク (酔歩) I

1827年にイギリス人のロバート・ブラウンが顕微鏡を使い,水面上の花粉の断片がジグザグ運動をすることを再最初に発見した.

1905年にアインシュタインによって,熱運動する水分子の不規則な衝突によってブラウン運動が引き起こされることが示された (拡散方程式).

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 13 / 42

Page 14: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

2次元のランダムウォーク (酔歩) II

.

ランダムウォーク Sn

.

.

.

. ..

.

.

Z1,Z2, . . . ,Znをカテゴリカル分布に従う確率変数とする

P(Zi = (1,0)) = P(Zi = (−1,0)) = P(Zi = (0,1)) = P(Zi = (0,−1)) =14

⇔ P(右に進む) = P(左に進む) = P(上に進む) = P(下に進む) =14

このときSn = Z1 + Z2 + · · · + Zn

を 2次元の対称なランダムウォークという.但し S0 = (0,0)(原点)とする.

.

R のプログラム

.

.

.

. ..

.

.

>fix(rwalk) #random walkのプログラムを編集する>rwalk() #random walkのプログラムを実行する

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 14 / 42

Page 15: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

Rでの 2次元ランダムウォーク (酔歩)の実装 I

.

rwalk 関数の中身

.

.

.

. ..

.

.

function(n=200){ # n=200000 でも試してみるset.seed(1); x=0; y=0; col=1 #x=0; y=0 で初期値を原点に設定plot(1,1,,xlim=c(-400,100),ylim=c(-400,300),type="n",xlab="x",ylab="y")for(i in 1:n){ran=which(rmultinom(1,1,prob=rep(0.25,4))==1) #カテゴリカル分布の乱数if(ran==1){ #右に進む (x 軸の正の方向に 1 進む). y 軸の値はそのままx[i+1]="?"y[i+1]="?"

}else if(ran==2){ #左に進む (x 軸の負の方向に 1 進む). y 軸の値はそのままx[i+1]=x[i]-1y[i+1]=y[i]

}else if(ran==3){ #上に進む (y 軸の正の方向に 1 進む). x 軸の値はそのままx[i+1]="?"y[i+1]="?"

}else{ #下に進む (y 軸の負の方向に 1 進む).x 軸の値はそのままx[i+1]=x[i]y[i+1]=y[i]-1

}if(i%%20000==0) col=col+1 # 線の色を変えるsegments(x[i],y[i],x[i+1],y[i+1],col=col) #線分を引く (酔歩の軌跡)

}}

上記の”?”を埋めてプログラムを完成させよ.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 15 / 42

Page 16: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

Rでの 2次元ランダムウォーク (酔歩)の実装 II

-400 -300 -200 -100 0 100

-400

-300

-200

-100

0100

200

300

x

y

2次元ランダムウォーク

図2  2 次元ランダムウォーク

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 16 / 42

Page 17: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

本日の内容

.

. . 1 統計解析ソフトR(データサイエンティストの料理道具)

.

. .

2 Rの使い方

.

. .

3 実際のデータ (哺乳類とアヤメのデータ)

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 17 / 42

Page 18: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

哺乳類の体と脳の重さのデータ I

.

.

. ..

.

.

>library(MASS) # mammalsデータが保存されている MASS packageを loadする>ma=mammals

>ma[1:5,] #最初の 5サンプルだけ表示body brain

Arctic fox 3.385 44.5

Owl monkey 0.480 15.5

Mountain beaver 1.350 8.1

Cow 465.000 423.0

Grey wolf 36.330 119.5

.....

>plot(ma) # 哺乳類データの散布図>identify(ma[,1],ma[,2],rownames(ma)) # データを対数変換する#マウスを図の点に移動させ,クリックするとそのデータの名前が表示される.止めるときは右クリックで「停止」を選択.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 18 / 42

Page 19: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

哺乳類の体と脳の重さのデータ II

0 1000 2000 3000 4000 5000 6000

01

00

02

00

03

00

04

00

05

00

0

body

bra

inAsian elephant

Giraffe

Human

African elephant

脳と体の重さの散布図 (original)

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 19 / 42

Page 20: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

哺乳類の体と脳の重さのデータ III

散布図が見にくい!そこで対数変換を考える

.

.

. ..

.

.

>lma=log(ma) #データを対数変換する>plot(lma) # 対数変換 (log変換)したデータを描画>identify(lma[,1],lma[,2],rownames(lma)) #マウスを図の点に移動させ,クリックするとそのデータの名前が表示される.止めるときは右クリックで「停止」を選択.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 20 / 42

Page 21: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

哺乳類の体と脳の重さのデータ IV

−4 −2 0 2 4 6 8

−2

02

46

8

body

bra

in

Owl monkey

Lesser short−tailed shrew

Asian elephant

Human

Water opossum

脳と体の重さの散布図 (対数変換後)

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 21 / 42

Page 22: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

哺乳類の体と脳の重さのデータ V

そもそも対数変換とはy = log(x)

もともとのデータ xを yに変換すること.値が大きなデータ xを値が小さなデータ yに変換できる(基準化).

.

.

. ..

.

.

>x=1:1000/10

>plot(x,log(x),type="l",xlab="x",ylab="y")

>title("y=log(x)")

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 22 / 42

Page 23: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

哺乳類の体と脳の重さのデータ VI

0 20 40 60 80 100

−2

−1

01

23

4

x

y

y=log(x)

対数変換

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 23 / 42

Page 24: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

哺乳類の体と脳の重さのデータ VII

.

.

. ..

.

.

>boxplot(ma)# もともとのデータの箱型図>boxplot(lma)# 対数変換後のデータの箱型図

body brain

01

00

02

00

03

00

04

00

05

00

06

00

0

脳と体の重さの箱型図 (original)

body brain

−4

−2

02

46

8

脳と体の重さの箱型図 (対数変換後)

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 24 / 42

Page 25: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

哺乳類のデータ I

−4 −2 0 2 4 6 8

−20

24

68

body

brain

対数変換後の哺乳類のデータに対し回帰モデルを考える

yi = β0 + β1xi + ϵi , (i = 1, . . . ,62)

但し yi は対数変換後の脳の重さ (g), xi は対数変換後の体の重さ (kg), ϵi は誤差

項.哺乳類の総数は 62.ではどのように β0と β1を決めたらいいのか?小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 25 / 42

Page 26: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

誤差項 ϵiに注目 I

−4 −2 0 2 4 6 8

−20

24

68

body

brain ε1

ε2ε3

ε4

ε5ε6ε7

ε8

ε9

ε10

ε11

ε12ε13

ε14

ε15

ε16ε17

ε18

ε19

ε20

ε21

ε22

ε23

ε24

ε25

ε26

ε27

ε28

ε29

ε30

ε31

ε32

ε33

ε34

ε35 ε36

ε37

ε38

ε39

ε40

ε41

ε42

ε43

ε44ε45

ε46

ε47

ε48

ε49

ε50

ε51

ε52

ε53

ε54

ε55

ε56

ε57

ε58

ε59

ε60

ε61

ε62

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 26 / 42

Page 27: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

誤差項 ϵiに注目 II

以下のような誤差項の2乗和を考える

Loss(β0, β1) =

62∑i=1

(yi − β0 − β1xi)2

=

62∑i=1

ϵ2i

= ϵ21 + ϵ22 + · · · + ϵ262

= ϵ⊤ϵ

これを最小化するように β0と β1を求める.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 27 / 42

Page 28: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

Rのプログラム I

.

.

. ...

.

>fix(estimation)

.

.

. ..

.

.

function(dat=lma){ #lmaは対数変換後の哺乳類のデータy=dat$brain #脳の重さのデータx=dat$body #体の重さのデータX=cbind(1,x) #データ行列 Xbeta.hat=solve(t(X)%*%X)%*%t(X)%*%y #betaの推定値y.hat=X%*%beta.hat # yの推定値plot(dat) #散布図の描画abline(beta.hat,col="red") #推定された回帰直線を描画.色は赤beta.hat<<-beta.hat #永続付置

}

上記のように estimationを作成後 (β = (2.13,0.75)⊤),以下のように実行する.

.

.

. ..

.

.

>estimation()

>identify(lma[,1],lma[,2],rownames(lma))

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 28 / 42

Page 29: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

Rのプログラム II

−4 −2 0 2 4 6 8

−20

24

68

body

brain

Owl monkey

Star−nosed mole

Asian elephant

Human

Water opossum

Musk shrew

Human,Owl(フクロウ) は上に,Musk shrew(トガリネズミ), Water opossum(ネズミの一種) は下

に予測がずれている.Star-nozed mole(鼻が星の形をしたモグラ) はほぼ予測が的中

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 29 / 42

Page 30: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

推定されたモデル I

結局推定されたモデルは

yi = β0 + β1xi

= 2.13+ 0.75xi

ただし yi = log(脳の重さi), xi = log(体の重さi)であった.よって元のスケールに戻すと

脳の重さi = exp(2.13)体の重さi0.75

= 8.45×体の重さi0.75

の関係式が哺乳類の動物に関し成り立つことが分かった.一般にこのような関

係式 (y = axb)は,生物の2つの部分 (xと y)の間でよく成立する関係式であり,

アロメトリー (allometry)の関係式と呼ぶ.陸上哺乳類において,心臓重量と体

重の関係では b = 1.0,骨重量と体重の関係では b = 1.09,心拍数と体重の関係

では b = −0.25などが知られている (?).

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 30 / 42

Page 31: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

アヤメのデータ I

3つのアヤメ

アヤメの petal(花弁)と sepal(萼片)

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 31 / 42

Page 32: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

アヤメのデータ II

.

.

. ..

.

.

>iris[1:3,]

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

1 5.1 3.5 1.4 0.2 setosa

2 4.9 3.0 1.4 0.2 setosa

3 4.7 3.2 1.3 0.2 setosa

>pairs2=pairs.default

>fix(pairs2) # pairs2 の一部を以下のように修正else if (i < j){

localLowerPanel(as.vector(x[1:50, j]),as.vector(x[1:50,i]))#setosa

localLowerPanel(as.vector(x[51:100,j]),as.vector(x[51:100,i]),col=2)#versicolor

localLowerPanel(as.vector(x[101:150,j]),as.vector(x[101:150,i]),col=3)#virginica

}

else{

localUpperPanel(as.vector(x[1:50, j]),as.vector(x[1:50, i]))#setosa

localUpperPanel(as.vector(x[51:100, j]),as.vector(x[51:100,i]),col=2)#versicolor

localUpperPanel(as.vector(x[101:150, j]),as.vector(x[101:150,i]),col=3)#virginica

}

>pairs2(iris)

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 32 / 42

Page 33: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

アヤメのデータ III

Sepal.Length

2.0 3.0 4.0 0.5 1.5 2.5

4.5

5.5

6.5

7.5

2.0

3.0

4.0

Sepal.Width

Petal.Length

12

34

56

7

0.5

1.5

2.5

Petal.Width

4.5 5.5 6.5 7.5 1 2 3 4 5 6 7 1.0 1.5 2.0 2.5 3.0

1.0

2.0

3.0

Species

3つのアヤメの散布図.黒:setosa,赤:versicolor,緑:virginica

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 33 / 42

Page 34: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

付録 I

以下付録です

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 34 / 42

Page 35: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

Rの使い方 (Enterキーで実行)

計算

.

.

. ...

.

1+2, 1-2, 1*2, 1/2, 2ˆ3

付値

.

.

. ...

.

x=1 or x<-1

続けて付値(セミコロンで区切る)

.

.

. ...

.

x=1;y=1

オンライン解説(演算子,制御語は引用符で囲む)

.

.

. ...

.

help(fix), help("+"), help("if"), help(iris)

または”?”の記号を代用できる

.

.

. ...

.

?fix, ?"+", ?"if", ?iris

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 35 / 42

Page 36: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

初等関数 I

平方根,絶対値

.

.

. ...

.

sqrt(2), abs(-3)

指数関数,対数関数,三角関数

.

.

. ...

.

exp(1), log(3), sin(pi/2), tan(pi/4)

pi: 円周率

天井関数,床関数,打ち切り関数,四捨五入関数

.

.

. ...

.

ceiling(1.2), floor(1.2), trunc(2.34), round(pi,3)

ceiling: 引数以上の最小の整数,floor: 引数以下の最大の整数(いわゆるガウス記号 []), trunc: 整数部分の取り出し,round: 四捨五入,桁数は第二引数で指定

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 36 / 42

Page 37: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

初等関数 II

文字列結合関数

.

.

. ...

.

paste("AB","C",sep="+"), paste("AB","C",sep="")

文字列はダブルクォーテーション””で囲む.セパレータ sepはいろいろな引数をとることができる.

等差数列関数

.

.

. ...

.

1:5, seq(-2,8,by=2)

「:」は R独特の演算子なので注意.ただ非常に便利なので必ず覚えておくこと.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 37 / 42

Page 38: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

ベクトル I

複数のオブジェクト (計算対象)を1つにまとめる (ベクトルを作る)関数に c(combine, concatenate)がある.

.

.

. ...

.

aa=c(NULL, 1.5, 2*pi, -1, NA)

NULL:空(何もなし)を表す.反復演算の初期値などに使われる.NA:欠損値 (Not Available)の意味.

オブジェクトの長さは lengthで計る

.

.

. ...

.

length(c(1,2,3)), length(aa)

ベクトルとスカラー (要素数1のベクトル)の演算は,各ベクトルの要素とスカラーの演算となる.また要素数が少ないベクトルはサイクリックに複製されて計算される.

.

.

. ...

.

1+1:5, 1:3+1:6

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 38 / 42

Page 39: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

ベクトル II

同じ要素を持つベクトルを生成するには repを使う.

.

.

. ...

.

rep(1,100), rep(c(1,2),3)

rep: repetitionの略

ベクトルの重複を取り除く関数は unique

.

.

. ... .

unique(c(1,1,2,3,3,3))

ベクトルの要素の和と積の計算

.

.

. ...

.

sum(1:10), prod(1:5)

平均,分散,中央値,最大値,最小値,階差,ソート,逆順

.

.

. ..

.

.

a=c(1:10,-1)

mean(a), var(a), median(a), max(a), min(a), diff(a), sort(a), rev(a)

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 39 / 42

Page 40: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

ベクトル III

累積和 (cumulative sum)

.

.

. ...

.

cumsum(1:10)

rank, order

.

.

. ..

. .

b=c(1,10,-1,5)

rank(b), order(b)

rank: 整列化 (sort)したときの各要素の順位.order: 整列化した時の各要素のもとの位置.よって orderは最小値の位置を求める際に用いることができる.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 40 / 42

Page 41: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

演算子 I

比較演算子

.

.

. ...

.

==, !=, <=, >=, <, >

それぞれ,同値,否定,以下,以上,より大きい,より小さいを意味する.論理式を書くときに用いる.返り値は論理数の TRUE(T), FALSE(F).

論理演算子

.

.

. ...

.

!, &, |, &&, ||

比較演算子の結果 (論理数)を組み合わせる (否定する)ときに使用.それぞれ否定,論理積,論理和,条件付き論理積,条件付き論理和を意味する.(式 1)が FALSEのとき (式 1)&&(式 2)の (式 2)は評価されず,(式1)が TRUEのとき (式 1)||(式 2)の (式 2)は評価されない.つまり条件付き論理積,論理和は (式 2)を場合によって (式 1の値によって)は評価したくない特殊な場合に用いる.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 41 / 42

Page 42: 中学3年生×大学ゼミ 統計解析ソフト「R」の基本2019.11.8).pdf · 本日の内容.. . 1 統計解析ソフトr(データサイエンティストの料理 道具)

反復文 I

一番基本的な反復分は for文である.

.

.

. ...

.

for(要素 in 集合)式

集合としてベクトル c(1,2,3),1:10やリスト (list)を取ることができる.要素は集合の中の要素のこと.全ての要素に対し式が評価される.

反復の回数があらかじめ固定できないときに用いる.

.

.

. ...

.

while(論理式)式

論理式が TRUEである限り評価され続ける.論理式が FALSEまはbreakで反復が終わる.

小森 理 (成蹊大学) 中学3年生×大学ゼミ 2019 年 11 月 8 日 (金) 42 / 42