Rのインストール編

2014年度 分子生体機能学実験
講義の資料置き場
Internet Explorerを起動しGoogleを使って「高橋広夫」で検索
インフォマティクス編
(第2回目配付資料)
Googleか確認
(bingではない)
2014/05/28
2ページ目
ぐらいにあるかも
園芸学研究科 応用生命化学領域
髙橋広夫
1
講義の資料置き場
2
講義の資料置き場
分子生体機能学実験をクリック
「講義の資料置き場」をクリック
3
4
Rのインストールについて①
① Googleで 「R project」で検索
Rのインストール編
5
1番目の「The R Project for Statistical Computing」をクリック
6
Rのインストールについて②
Rのインストールについて③
② R Projectのホームページ
③ R Projectのダウンロードベージ
「 CRAN 」をクリック
「0-Cloud」をクリック
7
Rのインストールについて④
8
Rのインストールについて⑤
④ 0-CloudのR Projectのダウンロードベージ
⑤ 0-CloudのR Projectのダウンロードベージ(Windows版)
Windows版を選択し、クリック
Rの基本パッケージ(base)を選択し、クリック
9
Rのインストールについて⑥
10
Rのインストールについて⑦
⑥ 0-CloudのR Projectのダウンロードベージ(Windows版)
⑦デスクトップに保存されたファイルからインストール
デスクトップ上に保存された
上記のアイコンをクリック
最新版は
R 3.1.0
「実行」
Rの基本パッケージ(base)をクリックしてダウンロード
11
「次へ」
「OK」
「次へ」
「次へ」
Message
translationの
チェック確認
「次へ」
12
Rのインストールについて⑧
Rの基本画面
⑧デスクトップに保存されたファイルからインストールの続き
「次へ」
「次へ」
「次へ」
インストール
「クリック」
「完了」
何か入力するときはここ。
Rが起動する
13
14
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)
統計の基礎
[10] 9.4
[9] 9.1
[8] 9.0
(プログラム部分のみ)
[7] 6.6
[5] 5.7
[6] 6.3
[4] 3.7
[3] 2.7
[2] 2.0
[1] 0.62
15
R言語
中央値
数値を小さい順に並べ
順位が真ん中になるもの
(順位が真ん中になるもの
が2つある場合は、足して
2で割る)
今回の場合は、5番目と
6番目の数字を足して
2で割ったもの
16
R言語
画面を左右2分割にする
 平均値と中央値とはずれ値
(覚えなくて良い)
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)
10個目は
乱数でデータを9個
50という数値にする
(最初の9個は上と同じ)
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)
 プロット描写関数
シンボルの形
(21は丸)
シンボルの枠の色
(2は赤)
y軸の範囲
(0~10)
シンボルの塗りつぶし色
(2は赤)
命令
plot(data, pch=21, bg=2, col=2, cex=2, ylim=c(0,10))
丸の大きさ
 直線描写関数
ラインの太さ
切片
abline(median(data), 0, lw=2, col=4)
ラインの色
3は緑、4は青
傾き
17
18
推定の補足(t分布)
R言語
はずれ値
平均値 10.5
中央値 6.45
命令
結果
平均値 5.53
中央値 6.01
正規分布に似ているが
すそが広がっている
標本数(n)が小さいときは、
(生物)実験は、正規分布にならずt分布になる
(n∞のとき t分布は正規分布に一致する)
xの範囲を-4から4まで
x <- seq(-4, 4, 0.01)
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")
 平均値と中央値とはずれ値
赤: 正規分布(平均0,標準偏差1)
緑: 自由度10のt分布
青: 自由度5のt分布
平均値は、はずれ値の影響を大きくうける。
それに対して、中央値は、はずれ値に対して安定である。
19
20
R言語
正規分布の信頼区間
 プロット描写関数(枠だけ)
描写する
データ無し
y軸の範囲
(0~0.4)
95%の上側信頼限界
(下側累積確率97.5%)
x軸のラベル
y軸のラベル
plot(NULL, xlim=c(-4,4), ylim=c(0,0.4), xlab="", ylab="")
命令
x軸の範囲
(-4~4)
色は数値でなくても色
の名前(英語)で指定可
ラインの太さ
 関数形描写関数
curve(dnorm, -4, 4, type="l", col = "red", lw=3, add=T)
関数(正規分布)
(d: distribution)
(norm: normal)
x軸の範囲
(-4~4)
重ね合わせ
95%の下側信頼限界
(下側累積確率2.5%)
q.upper <- qnorm(0.975); q.lower <- qnorm(0.025)
limit.x <- c(-3.5,3.5)
x軸の左端と右端
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") (下側累積確率97.5%)
abline(v=q.lower, lw=3, col="green")
(下側累積確率2.5%
21
22
R言語
正規分布の信頼区間
 塗りつぶし関数
95%信頼区間
の上側限界
95%信頼区間
の下側限界
qnorm(0.025)
-1.96
これより下側を
積分すると2.5%
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軸の座標
qnorm(0.975)
正規分布
面積を
積分する
と95%
枠をつくる
D
y軸の座標
1.96
これより上側を
積分すると2.5%
B
A B CDE
C
X座標 0 2 3 4 4
Y座標 0 2 1 4 0
A
E
23
24
t分布の信頼区間
t分布の信頼区間
命令
t分布の自由度(今回は5)
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)
t分布の概形
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")
95%信頼区間
の上側限界
95%信頼区間
の下側限界
qt(0.025,df)
-2.57
これより下側を
積分すると2.5%
qt(0.975,df)
自由度5
のt分布
2.57
これより上側を
積分すると2.5%
面積を
積分する
と95%
25
26
t分布と正規分布の信頼区間
統計学の基礎
問題(1)
(問い) ある平均値が100、標準誤差(SE)が10のとき、
自由度10のt分布を用いて平均値の99%, 95%, 90%
信頼区間を有効桁数3桁で算出せよ。
自由度
df <- c(1,5,10,15,20,50,100,1000,10000)
t分布の90%信頼区間の
下側限界(5%)と上側限界(95%)
qt(0.025, df); qt(0.975, df)
t分布の95%信頼区間の
下側限界(2.5%)と上側限界(97.5%)
命令
qt(0.050, df); qt(0.950, df)
qt(0.005, df); qt(0.995, df)
課題の書式
qnorm(0.050); qnorm(0.950)
※課題はメールで高橋<[email protected]>へ送る。
(メール提出の際は、タイトル「分子生体機能学バイオインフォ編2_学籍番号(半角)_名前(全角)」)
「Bioinfo20140528_学籍番号(半角)_名前(全角).xls」という名前で添付)
t分布の99%信頼区間の
下側限界(0.5%)と上側限界(99.5%)
正規分布の90%信頼区間の
下側限界(5%)と上側限界(95%)
qnorm(0.025); qnorm(0.975)
正規分布の95%信頼区間の
下側限界(2.5%)と上側限界(97.5%)
qnorm(0.005); qnorm(0.995)
正規分布の99%信頼区間の
下側限界(0.5%)と上側限界(99.5%)
28
27
Rにおけるエラーバーのつけかた
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
パッケージgregmiscのインストールする。
install.packages(c("gregmisc"))
でもok
29
30
Rにおけるエラーバーのつけかた
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の別解(信頼区間を自動で計算)
31
32
R言語
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`
ベクトルyに応じて
[1] 30 50 15 55 50
ベクトルxを
$`1`
グループに分割
[1] 40 52 55 58
$`2`
[1] 60 55 58
グループごとに
> (means <- sapply(tmp, mean) )
0
1
2
平均値を算出
40.00000 51.25000 57.66667
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
平均値
平均値の点推定値  49
> ( n <-length(z) )
95%信頼区間
[1] 3
49±20
データ数
> ( stdev <- sd(z) )

[1] 7.937254
29~69
標準偏差
> ( ciw <- qt(0.975, n-1) * stdev / sqrt(n) )
[1] 19.71723
標準誤差
33
34
Rを使った検定例
問題(2)
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]
命令
(問い) 30,40,52,55,90,99の6個のデータがある。この
データの平均値の点推定値と99%信頼区間を有効数字
に注意して計算せよ (信頼区間は○~○と記述)
課題の書式
結果
※課題はメールで高橋<[email protected]>へ送る。
(メール提出の際は、タイトル「分子生体機能学バイオインフォ編2_学籍番号(半角)_名前(全角)」)
「Bioinfo20140528_学籍番号(半角)_名前(全角).xls」という名前で添付)
35
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)
p ≧ 0.05.したがって、
One Sample t-test
10と差があるとは言えない
data: x
t = -1.037, df = 9, p-value = 0.3268
alternative hypothesis: true mean is not equal to 10
95 percent confidence interval:
95%信頼区間は
8.695597 10.484403
8.695597~10.484403
sample estimates:
mean of x
平均値の点推定値は9.59
9.59
したがって、帰無仮説は棄却出来ない
36
Rを使った検定例(正規性検定)
Rを使った検定例(対応無しt検定)
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))
One-sample Kolmogorov-Smirnov test
data: z
p>0.05なので、正規分布から
D = 0.1049, p-value = 0.9638
はずれるとは言えない。
alternative hypothesis: two-sided
set.seed(1); x <- rnorm(10, mean=10, sd=1)
set.seed(2); y <- rnorm(10, mean=11, sd=1)
t.test(x, y)
0.01<p < 0.05.したがって、
結果
結果
厳密には、
有意なものを
除外した解析を
行いたい場合は、
偽陰性を
考慮する必要
がある
(しかし、現実には
困難であるため
有意水準は
大きく(10%以上
に)設定する)
命令
命令
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))
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で乱数により生成しなさい。
37
Rを使った検定例(U検定)
> t.test(x, y)
有意水準1%では棄却出来ないが
Welch Two Sample t-test
5%とすれば棄却出来る
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
38
Rを使った検定例(対応有りt検定)
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で乱数により生成しなさい。
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)
wilcox.test(x, y)
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)
0.01<p < 0.05.したがって、
結果
結果
0.01<p < 0.05.したがって、
> wilcox.test(x, y)
有意水準1%では棄却出来ないが
Wilcoxon rank sum test
5%とすれば棄却出来る
data: x and y
W = 17, p-value = 0.01150
alternative hypothesis: true location shift is not equal to 0
39
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)
結果
0.01<p < 0.05.したがって、
> wilcox.test(x, y , paired = T)
有意水準1%では棄却出来ないが
Wilcoxon signed rank test
5%とすれば棄却出来る
data: x and y
V = 7, p-value = 0.03711
alternative hypothesis: true location shift is not equal to 0
41
> t.test(x, y, paired = T)
有意水準1%では棄却出来ないが
Paired t-test
5%とすれば棄却出来る
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
40