Rのインストール編 - Takahashi Lab · Rのインストールについて④ ④0-CloudのR...

7
1 インフォマティクス編 (2回目配付資料) 2014/05/28 園芸学研究科 応用生命化学領域 髙橋広夫 2014年度 分子生体機能学実験 2 講義の資料置き場 Internet Explorerを起動しGoogleを使って「高橋広夫」で検索 2ページ目 ぐらいにあるかも Googleか確認 (bingではない) 3 「講義の資料置き場」をクリック 講義の資料置き場 4 講義の資料置き場 分子生体機能学実験をクリック 5 Rのインストール編 6 Rのインストールについて① Googleで「R project」で検索 1番目の「The R Project for Statistical Computing」をクリック

Transcript of Rのインストール編 - Takahashi Lab · Rのインストールについて④ ④0-CloudのR...

Page 1: Rのインストール編 - Takahashi Lab · Rのインストールについて④ ④0-CloudのR Projectのダウンロードベージ Windows版を選択し、クリック 10 Rのインストールについて⑤

1

インフォマティクス編(第2回目配付資料)

2014/05/28

園芸学研究科 応用生命化学領域

髙橋広夫

2014年度 分子生体機能学実験

2

講義の資料置き場

Internet Explorerを起動しGoogleを使って「高橋広夫」で検索

2ページ目ぐらいにあるかも

Googleか確認(bingではない)

3「講義の資料置き場」をクリック

講義の資料置き場

4

講義の資料置き場

分子生体機能学実験をクリック

5

Rのインストール編

6

Rのインストールについて①

① Googleで 「R project」で検索

1番目の「The R Project for Statistical Computing」をクリック

Page 2: Rのインストール編 - Takahashi Lab · Rのインストールについて④ ④0-CloudのR Projectのダウンロードベージ Windows版を選択し、クリック 10 Rのインストールについて⑤

7

Rのインストールについて②

② R Projectのホームページ

「 CRAN 」をクリック8

Rのインストールについて③

③ R Projectのダウンロードベージ

「0-Cloud」をクリック

9

Rのインストールについて④

④ 0-CloudのR Projectのダウンロードベージ

Windows版を選択し、クリック

10

Rのインストールについて⑤

⑤ 0-CloudのR Projectのダウンロードベージ(Windows版)

Rの基本パッケージ(base)を選択し、クリック

11

Rのインストールについて⑥

⑥ 0-CloudのR Projectのダウンロードベージ(Windows版)

Rの基本パッケージ(base)をクリックしてダウンロード

最新版はR 3.1.0

12

Rのインストールについて⑦

⑦デスクトップに保存されたファイルからインストール

デスクトップ上に保存された上記のアイコンをクリック

「実行」 「OK」 「次へ」

「次へ」 「次へ」 「次へ」

Message translationのチェック確認

Page 3: Rのインストール編 - Takahashi Lab · Rのインストールについて④ ④0-CloudのR Projectのダウンロードベージ Windows版を選択し、クリック 10 Rのインストールについて⑤

13

Rのインストールについて⑧

⑧デスクトップに保存されたファイルからインストールの続き

「次へ」 「次へ」 「次へ」

インストール

「完了」「クリック」

Rが起動する

14

Rの基本画面

何か入力するときはここ。

15

統計の基礎(プログラム部分のみ)

16

R言語

中央値

命令

set.seed(1) data <- runif(10, min=0, max=10) windows()plot(data, pch=21, bg=2, col=2, cex=2, ylim=c(0,10)) abline(median(data), 0, lw=2, col=4)

[1] 0.62 [2] 2.0 [3] 2.7

[4] 3.7 [5] 5.7 [6] 6.3

[7] 6.6[8] 9.0 [9] 9.1 [10] 9.4

中央値数値を小さい順に並べ順位が真ん中になるもの(順位が真ん中になるものが2つある場合は、足して2で割る)

今回の場合は、5番目と6番目の数字を足して2で割ったもの

17

R言語

plot(data, pch=21, bg=2, col=2, cex=2, ylim=c(0,10))

abline(median(data), 0, lw=2, col=4)

丸の大きさ

y軸の範囲(0~10)

シンボルの枠の色(2は赤)

シンボルの塗りつぶし色(2は赤)

シンボルの形(21は丸)

プロット描写関数

直線描写関数

切片

傾き

ラインの太さ

ラインの色3は緑、4は青

18

R言語

平均値と中央値とはずれ値

命令

windows()par( mar=c(4,4,1,1), mfrow=c(1,2)) set.seed(1) data <- runif(10, min=0, max=10) plot(data, pch=21, bg=2, col=2, cex=2, ylim=c(0,50)) abline(mean(data), 0, lw=2,col=3) abline(median(data), 0, lw=2,col=4)

set.seed(1) data <- runif(9, min=0, max=10); data <-c(data, 50) plot(data, pch=21, bg=2, col=2, cex=2, ylim=c(0,50)) abline(mean(data), 0, lw=2,col=3) abline(median(data), 0, lw=2,col=4)

乱数でデータを9個(最初の9個は上と同じ)

10個目は50という数値にする

画面を左右2分割にする(覚えなくて良い)

Page 4: Rのインストール編 - Takahashi Lab · Rのインストールについて④ ④0-CloudのR Projectのダウンロードベージ Windows版を選択し、クリック 10 Rのインストールについて⑤

19

R言語

平均値と中央値とはずれ値

結果

平均値 5.53中央値 6.01

平均値 10.5中央値 6.45

はずれ値

平均値は、はずれ値の影響を大きくうける。それに対して、中央値は、はずれ値に対して安定である。

20

推定の補足(t分布) 標本数(n)が小さいときは、(生物)実験は、正規分布にならずt分布になる

(n∞のとき t分布は正規分布に一致する)

命令

x <- seq(-4, 4, 0.01)plot(NULL, xlim=c(-4,4), ylim=c(0,0.4), xlab="", ylab="")curve(dnorm, -4, 4, type="l", col = "red", lw=3, add=T)curve(dt(x, 10),-4, 4, type="l", col = "green", lw=3, add=T) curve(dt(x, 5),-4, 4, type="l", col = "blue", lw=3, add=T) abline(h=0, lw=3, col="black")

xの範囲を-4から4まで0.01刻みで定義

赤: 正規分布(平均0,標準偏差1) 緑: 自由度10のt分布青: 自由度5のt分布

正規分布に似ているがすそが広がっている

21

R言語

plot(NULL, xlim=c(-4,4), ylim=c(0,0.4), xlab="", ylab="")

x軸のラベルy軸の範囲(0~0.4)

x軸の範囲(-4~4)

プロット描写関数(枠だけ)

y軸のラベル

curve(dnorm, -4, 4, type="l", col = "red", lw=3, add=T)

関数形描写関数

描写するデータ無し

関数(正規分布) (d: distribution) (norm: normal)

色は数値でなくても色の名前(英語)で指定可

x軸の範囲(-4~4)

重ね合わせ

ラインの太さ

22

正規分布の信頼区間

q.upper <- qnorm(0.975); q.lower <- qnorm(0.025)limit.x <- c(-3.5,3.5)len <- 100 x = seq(q.lower, q.upper, length= len)y = dnorm(x)plot(NULL, xlim=limit.x, ylim=c(0,0.4), xlab="", ylab="")polygon(c(x[1],x,x[len]), c(0,y,0), col="red")curve(dnorm, -3.5, 3.5, lwd=3, col="blue", add=TRUE) abline(h=0, lw=3, col="black") abline(v=q.upper, lw=3, col="green") abline(v=q.lower, lw=3, col="green")

命令

95%の下側信頼限界(下側累積確率2.5%)

95%の上側信頼限界(下側累積確率97.5%)

x軸の左端と右端

塗りつぶし領域の分割数

(下側累積確率97.5%)(下側累積確率2.5%

23

正規分布の信頼区間

面積を積分すると95%

95%信頼区間の上側限界

95%信頼区間の下側限界

1.96 これより上側を積分すると2.5%

-1.96 これより下側を積分すると2.5%

正規分布

qnorm(0.975)qnorm(0.025)

24

R言語

plot(NULL, xlim=c(0,4), ylim=c(0,4), xlab="", ylab="") polygon(c(0,2,3,4,4), c(0,2,1,4,0), col="red")

枠をつくる塗りつぶし関数

x軸の座標

色指定

A B C D E X座標 0 2 3 4 4 Y座標 0 2 1 4 0 A

B

C

D

E

y軸の座標

Page 5: Rのインストール編 - Takahashi Lab · Rのインストールについて④ ④0-CloudのR Projectのダウンロードベージ Windows版を選択し、クリック 10 Rのインストールについて⑤

25

t分布の信頼区間

df <- 5 q.upper <- qt(0.975,df); q.lower <- qt(0.025,df)limit.x <- c(-3.5,3.5)len <- 100 x = seq(q.lower, q.upper, length= len)y = dt(x,df)plot(NULL, xlim=limit.x, ylim=c(0,0.4), xlab="", ylab="")polygon(c(x[1],x,x[len]), c(0,y,0), col="red")curve(dt(x, df),-3.5, 3.5, type="l", col = "blue", lw=3, add=T) abline(h=0, lw=3, col="black") abline(v=q.upper, lw=3, col="green") abline(v=q.lower, lw=3, col="green")

命令

t分布の自由度(今回は5) t分布の信頼限界

t分布の概形

26

t分布の信頼区間

面積を積分すると95%

95%信頼区間の上側限界

95%信頼区間の下側限界

2.57 これより上側を積分すると2.5%

-2.57 これより下側を積分すると2.5%

自由度5 のt分布

qt(0.975,df) qt(0.025,df)

27

問題(1) (問い) ある平均値が100、標準誤差(SE)が10のとき、自由度10のt分布を用いて平均値の99%, 95%, 90% 信頼区間を有効桁数3桁で算出せよ。

※課題はメールで高橋<[email protected]>へ送る。(メール提出の際は、タイトル「分子生体機能学バイオインフォ編2_学籍番号(半角)_名前(全角)」)「Bioinfo20140528_学籍番号(半角)_名前(全角).xls」という名前で添付)

課題の書式

28

統計学の基礎t分布と正規分布の信頼区間

命令

df <- c(1,5,10,15,20,50,100,1000,10000)

qt(0.050, df); qt(0.950, df)

qt(0.025, df); qt(0.975, df)

qt(0.005, df); qt(0.995, df)

qnorm(0.050); qnorm(0.950)

qnorm(0.025); qnorm(0.975)

qnorm(0.005); qnorm(0.995)

t分布の90%信頼区間の下側限界(5%)と上側限界(95%)

t分布の95%信頼区間の下側限界(2.5%)と上側限界(97.5%)

t分布の99%信頼区間の下側限界(0.5%)と上側限界(99.5%)

正規分布の90%信頼区間の下側限界(5%)と上側限界(95%)

正規分布の95%信頼区間の下側限界(2.5%)と上側限界(97.5%)

正規分布の99%信頼区間の下側限界(0.5%)と上側限界(99.5%)

自由度

29

統計学の基礎t分布と正規分布の信頼区間

結果

> df <- c(1,5,10,15,20,50,100,1000,10000)> qt(0.050, df); qt(0.950, df) [1] -6.313752 -2.015048 -1.812461 -1.753050 -1.724718[6] -1.675905 -1.660234 -1.646379 -1.645006[1] 6.313752 2.015048 1.812461 1.753050 1.724718 1.675905[7] 1.660234 1.646379 1.645006> qt(0.025, df); qt(0.975, df) [1] -12.706205 -2.570582 -2.228139 -2.131450 -2.085963[6] -2.008559 -1.983972 -1.962339 -1.960201[1] 12.706205 2.570582 2.228139 2.131450 2.085963[6] 2.008559 1.983972 1.962339 1.960201> qt(0.005, df); qt(0.995, df) [1] -63.656741 -4.032143 -3.169273 -2.946713 -2.845340[6] -2.677793 -2.625891 -2.580755 -2.576321[1] 63.656741 4.032143 3.169273 2.946713 2.845340[6] 2.677793 2.625891 2.580755 2.576321> qnorm(0.050); qnorm(0.950) [1] -1.644854[1] 1.644854> qnorm(0.025); qnorm(0.975) [1] -1.959964[1] 1.959964> qnorm(0.005); qnorm(0.995) [1] -2.575829[1] 2.575829

30

Rにおけるエラーバーのつけかた

パッケージgregmiscのインストールする。

install.packages(c("gregmisc"))

でもok

Page 6: Rのインストール編 - Takahashi Lab · Rのインストールについて④ ④0-CloudのR Projectのダウンロードベージ Windows版を選択し、クリック 10 Rのインストールについて⑤

31

Rにおけるエラーバーのつけかた

命令

library(gregmisc) x<-c(30,50,15,55,50,40,52,55,58,60,55,58) y<-c(0,0,0,10,10,10,30,30,30,100,100,100) tmp <- split(x, y) means <- sapply(tmp, mean) stdev <- sapply(tmp, sd) n <- sapply(tmp,length) ciw <- qt(0.975, n-1) * stdev / sqrt(n) windows() par( mar=c(4,4,1,1), mfrow=c(1,2)) plotCI(x=means, uiw=ciw,

col="black", barcol="blue", lwd=1, type="l") plotmeans( x ~ y , p=0.95)

plotCIの別解(信頼区間を自動で計算) 32

Rにおけるエラーバーのつけかた

33

R言語

split関数とsapply関数

x<-c(30,50,15,55,50,40,52,55,58,60,55,58) y<-c(0,0,0,0,0,1,1,1,1,2,2,2) (tmp <- split(x, y)) (means <- sapply(tmp, mean) )

命令

> x<-c(30,50,15,55,50,40,52,55,58,60,55,58) > y<-c(0,0,0,0,0,1,1,1,1,2,2,2) > (tmp <- split(x, y)) $`0`[1] 30 50 15 55 50 $`1`[1] 40 52 55 58 $`2`[1] 60 55 58 > (means <- sapply(tmp, mean) )

0 1 2 40.00000 51.25000 57.66667

結果

ベクトルyに応じてベクトルxを

グループに分割

グループごとに平均値を算出

34

R言語

平均値の信頼区間の計算

z <- c(40,52,55) ; mean(z) ( n <-length(z) ) ( stdev <- sd(z) ) ( ciw <- qt(0.975, n-1) * stdev / sqrt(n) )

命令

> z <- c(40,52,55) ; mean(z) [1] 49> ( n <-length(z) ) [1] 3> ( stdev <- sd(z) ) [1] 7.937254> ( ciw <- qt(0.975, n-1) * stdev / sqrt(n) )[1] 19.71723

結果

平均値の点推定値 49 95%信頼区間

49±20

29~69

平均値

データ数

標準偏差

標準誤差

35

問題(2)(問い) 30,40,52,55,90,99の6個のデータがある。このデータの平均値の点推定値と99%信頼区間を有効数字に注意して計算せよ (信頼区間は○~○と記述)

※課題はメールで高橋<[email protected]>へ送る。(メール提出の際は、タイトル「分子生体機能学バイオインフォ編2_学籍番号(半角)_名前(全角)」)「Bioinfo20140528_学籍番号(半角)_名前(全角).xls」という名前で添付)

課題の書式

36

Rを使った検定例

10個の測定値がある。母平均が10であるかどうか検定しなさい。また,95% 信頼区間を求めなさい。(1標本t検定) [測定値: 9.8, 10.2, 9.5, 7.5, 10.4, 10.5, 10.3, 11.3, 7.7, 8.7]

命令

x <- c(9.8, 10.2, 9.5, 7.5, 10.4, 10.5, 10.3, 11.3, 7.7, 8.7) t.test(x, mu=10, conf.level = 0.95)

> x <- c(9.8, 10.2, 9.5, 7.5, 10.4, 10.5, 10.3, 11.3, 7.7, 8.7) > t.test(x, mu=10, conf.level = 0.95)

One Sample t-test data: x t = -1.037, df = 9, p-value = 0.3268 alternative hypothesis: true mean is not equal to 10 95 percent confidence interval: 8.695597 10.484403 sample estimates: mean of x

9.59

結果

95%信頼区間は8.695597~10.484403

p ≧ 0.05.したがって、10と差があるとは言えない

平均値の点推定値は9.59 したがって、帰無仮説は棄却出来ない

Page 7: Rのインストール編 - Takahashi Lab · Rのインストールについて④ ④0-CloudのR Projectのダウンロードベージ Windows版を選択し、クリック 10 Rのインストールについて⑤

37

Rを使った検定例(正規性検定)10個測定値を2セット分の合計20個分のデータが正規分布に従うか検定しなさい (1標本コルモゴロフスミルノフ検定 ) 。測定値(1回目)は、set.seed(1); x <- rnorm(10, mean=10, sd=1) 測定値(2回目)は、set.seed(1); y <- rnorm(10, mean=11, sd=1) として、Rで乱数により生成しなさい。

命令

set.seed(1); x <- rnorm(10, mean=10, sd=1) set.seed(1); y <- rnorm(10, mean=11, sd=1) z <- c(x, y) ks.test(z,"pnorm",mean=mean(z),sd=sd(z))

> set.seed(1); x <- rnorm(10, mean=10, sd=1) > set.seed(1); y <- rnorm(10, mean=11, sd=1) > z <- c(x, y) > ks.test(z,"pnorm",mean=mean(z),sd=sd(z))

One-sample Kolmogorov-Smirnov test data: z D = 0.1049, p-value = 0.9638 alternative hypothesis: two-sided

結果

p>0.05なので、正規分布からはずれるとは言えない。

厳密には、有意なものを除外した解析を行いたい場合は、

偽陰性を考慮する必要

がある(しかし、現実には困難であるため有意水準は

大きく(10%以上に)設定する)

38

Rを使った検定例(対応無しt検定)10回の測定を2セット行った。この2セットの測定の平均値に差があるかどうかを対応無しt検定により検定しなさい。ただし、測定値(1回目)は、set.seed(1); x <- rnorm(10, mean=10, sd=1) 測定値(2回目)は、set.seed(2); y <- rnorm(10, mean=11, sd=1) として、Rで乱数により生成しなさい。

命令

set.seed(1); x <- rnorm(10, mean=10, sd=1) set.seed(2); y <- rnorm(10, mean=11, sd=1) t.test(x, y)

> t.test(x, y) Welch Two Sample t-test

data: x and y t = -2.7148, df = 17.107, p-value = 0.01465 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -1.9170560 -0.2408417 sample estimates: mean of x mean of y 10.13220 11.21115

結果

0.01<p < 0.05.したがって、有意水準1%では棄却出来ないが

5%とすれば棄却出来る

39

Rを使った検定例(U検定)10回の測定を2セット行った。この2セットの測定の中央値に差があるかどうかをU検定により検定しなさい。ただし、測定値(1回目)は、set.seed(1); x <- rnorm(10, mean=10, sd=1) 測定値(2回目)は、set.seed(2); y <- rnorm(10, mean=11, sd=1) として、Rで乱数により生成しなさい。

命令

set.seed(1); x <- rnorm(10, mean=10, sd=1) set.seed(2); y <- rnorm(10, mean=11, sd=1) wilcox.test(x, y)

> wilcox.test(x, y) Wilcoxon rank sum test

data: x and y W = 17, p-value = 0.01150 alternative hypothesis: true location shift is not equal to 0

結果

0.01<p < 0.05.したがって、有意水準1%では棄却出来ないが

5%とすれば棄却出来る

40

Rを使った検定例(対応有りt検定)10回の測定を2セット行った。この2セットの測定の平均値に差があるかどうかを対応有りt検定により検定しなさい。ただし、測定値(1回目)は、set.seed(1); x <- rnorm(10, mean=10, sd=1) 測定値(2回目)は、set.seed(2); y <- rnorm(10, mean=11, sd=1) として、Rで乱数により生成しなさい。

命令

set.seed(1); x <- rnorm(10, mean=10, sd=1) set.seed(2); y <- rnorm(10, mean=11, sd=1) t.test(x, y, paired = T)

> t.test(x, y, paired = T) Paired t-test

data: x and y t = -2.4534, df = 9, p-value = 0.03655 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -2.07379750 -0.08410023 sample estimates: mean of the differences

-1.078949

結果

0.01<p < 0.05.したがって、有意水準1%では棄却出来ないが

5%とすれば棄却出来る

41

Rを使った検定例(U検定)10回の測定を2セット行った。この2セットの測定の中央値に差が あるかどうかをウィルコクソンの符号付順位和により検定しなさい。ただし、測定値(1回目)は、set.seed(1); x <- rnorm(10, mean=10, sd=1) 測定値(2回目)は、set.seed(2); y <- rnorm(10, mean=11, sd=1) として、Rで乱数により生成しなさい。

命令

set.seed(1); x <- rnorm(10, mean=10, sd=1) set.seed(2); y <- rnorm(10, mean=11, sd=1) wilcox.test(x, y , paired=T)

> wilcox.test(x, y , paired = T) Wilcoxon signed rank test

data: x and y V = 7, p-value = 0.03711alternative hypothesis: true location shift is not equal to 0

結果

0.01<p < 0.05.したがって、有意水準1%では棄却出来ないが

5%とすれば棄却出来る