ソフトウェア R を用いた統計解析 清水顕史 R のインストール R の情報 ( 日本語 ) は RjpWikihttp://www.okada.jp.org/RWiki/?RjpWiki にまとめられています 説明に従って最新版の exe ファイルをダウンロード (http://cran.md.tsukuba.ac.jp/bin/windows/base/) し クリックしてインストールします インストール終了後 デスクトップのアイコンをクリックすると R が起動します 起動すると下のようなウィンドウが開きます 左下の端の > 印の右側は カーソル 1 が点 滅しており この位置からキーボード入力が可能です R の操作は コマンドを入力して行います 例えば以下のコマンドを入力し 各行ごとに Enter キーを押して実行してみましょう (# より右はコメント用で入力の必要はありません ) X <- c(5,4,5,4,2,6) mean(x) var(x) sd(x) plot(x) Y <- c(3,4,2,3,4,2) plot(x,y) # ベクトルXに数列 5,4,5,4,2,6 を入力する # ベクトルXの全要素の平均値を計算する # 分散を計算する # 標準偏差を計算する # プロットする # 散布図を描く 以下 R への入力コマンドはゴシック赤字で表記することにします (# 以降はコメント行 のため 入力する必要なし ) 演習上の操作は 入力コマンド部分のみをコピー & ペースト することで再現できます 1 縦棒 があり
パッケージのインストール Rには 複雑な解析を便利に行うためのパッケージが容易されています ( 世界中の研究者達が提供してくれる ) 今回は例として多重比較検定用のmultcomp パッケージをインストールしてみます ( 注意 ) 滋賀県立大学のようにプロキシ経由でインターネットに接続する環境で R のパッケージインストールを行う場合 以下のようにアイコンのプロパティ ( アイコンを右クリックして表示 ) で リンク先の Rgui.exe の後ろに 半角空白 --internet2 と入力しておき アイコンをクリックして R を起動し直します ファイルメニューから [ パッケージ ]->[ パッケージのインストール ] を選び CRAN mirror のリストから適当なミラーサイトを選びます ( 例えばJapan(Hyogo)) インストール可能なパッケージリストがアルファベット順で表示されるので multcomp を選びインストールします インストールしたパッケージは R 起動後に library(multcomp) というコマンドを実行すると利用できるようになりま す
一要因データの解析 1( 総当たりの要因間の差のチューキー検定 ) 例として 或る栽培条件下で育てたイネ 4 品種 ( 系統番号 WRC1, 23, 57, 60) の或る酵素の活性量を調べたデータ "vartest.txt" を利用します データはエクセルなどを利用して作成されたタブ区切りのテキストファイルで 列 1 は品種名 列 2 が活性量で 一行目は見出しです 各品種 4 個体反復のデータが記録されています 3 種類以上の群の平均値の大小を比較する場合 チューキー検定を用います R を用いた検定手順は以下の通りです まず R のファイルメニューで [ ファイル ] [ ディレクトリの変更 ] で 入力用データの置いてあるフォルダを指定します ( データがデスクトップにある場合はデスクトップを指定 ) その後 以下のコマンドを入力します d <- read.table("vartest1.txt", header=t) Pd <- data.frame(variety=factor(d$val),activity=d$data) plot(activity~variety,data=pd) # データの読み込み # フレームワーク作成 # 箱ヒゲ図の描出
箱ヒゲ図 ( 左 ) とその見方 ( 右 ) 各品種の中央値を横太線で 箱の上端はデータを降順にならべた 25% の点 下端は 75% 点を示す 髭はデータの最大値または最小値を示すが ただし上位四分位数 +1.5 四分位範囲および下位四分位数 -1.5 四分位数の範囲を越えたデータは外れ値 ( ) として示す 例データの場合は各品種のデータ数は 4 個なので 降順にならべたデータの一番と二番の平均が上位四分位数 二番と三番の平均が中央値 三番と四番の平均が下位四分位数となる res1 <- aov(activity~variety,data=pd) library(multcomp) # 一元分散分析 # パッケージをロード res2 <- glht(res1, linfct = mcp(variety = "Tukey")) # チューキー クレーマー検定 # 検定結果の表示 検定結果は 全 6 組合せ毎に系統平均間に差がないと仮定した場合の有意確率として表示されます 一般に 有意確率は 0.05 以下の場合に統計学的に有意差があるとみなします ( 考え方については 統計学の入門書などを参考にしましょう ) WRC1 とそれ以外の品種に危険率 5% 以下で有意差がみられました (WRC1 だけ酵素活性が高い )
一要因データの解析 2( ダネット検定による対照に対する多重比較 ) CSSLs( 染色体断片置換系統 ) は染色体領域の一部が供与親に置換した系統で それ以外の殆どのゲノムは反復親と同じ情報を持ちます CSSLs は置換領域に含まれる遺伝情報が形質にもたらす影響を調べるのに非常に便利な遺伝解析材料で 形質に差があるかどうかは反復親と各置換系統との差を比較します この場合 総当たりの比較をするチューキー検定ではなく 対照群とその他の各群を比較するダネット検定を用います 例として コシヒカリ ( 反復親 ) とその 39 種類の CSSL(SL201~SL239) を用いて 或る酵素活性量を調べたデータ "CSSLtest.txt" を解析してみます データはエクセルなどを利用して作成されたタブ区切りのテキストファイルで 列 1 は系統名 列 2 が活性量で 一行目は見出しです 各品種 8 個体反復のデータが記録されています multcomp パッケージを利用したダネット検定では 群の名前をアルファベット順に並べたときに一番小さいものが自動的に対照群に割り当てられます 例では Koshi が対照群になり その他の SL 群と比較されます ) 検定は以下のコードで行います s <- read.table("cssltest.txt ", header=t) Sd <- data.frame(line=factor(s$val),activity=s$data) plot(activity~line,data=sd) res1 <- aov(activity~line,data=sd) library(multcomp) res2 <- glht(res1, linfct = mcp(line = "Dunnett")) # ファイルの読み込み # フレームワーク作成 # 箱ヒゲ図 # 一元分散分析 # パッケージ起動 # ダネット検定 # 結果を出力
Simultaneous Tests for General Linear Hypotheses Multiple Comparisons of Means: Dunnett Contrasts Fit: aov(formula = ACTIVITY ~ LINE, data = Sd) Linear Hypotheses: Estimate Std. Error t value Pr(> t ) SL201 - Koshihikari == 0 0.66959 2.10825 0.318 1.00000 SL202 - Koshihikari == 0 0.65550 2.10825 0.311 1.00000 SL203 - Koshihikari == 0 7.89194 2.10825 3.743 0.00946 ** SL204 - Koshihikari == 0 3.37681 2.10825 1.602 0.93668 SL205 - Koshihikari == 0 1.68980 2.10825 0.802 1.00000 SL206 - Koshihikari == 0 1.83996 2.10825 0.873 1.00000 SL207 - Koshihikari == 0 2.14356 2.10825 1.017 0.99994 SL208 - Koshihikari == 0 4.07980 2.10825 1.935 0.73137 SL209 - Koshihikari == 0 3.15161 2.10825 1.495 0.96934 SL210 - Koshihikari == 0-1.09424 2.10825-0.519 1.00000 SL211 - Koshihikari == 0-1.03110 2.10825-0.489 1.00000 SL212 - Koshihikari == 0-0.62057 2.10825-0.294 1.00000 SL213 - Koshihikari == 0-2.54484 2.10825-1.207 0.99851 SL214 - Koshihikari == 0-1.98675 2.10825-0.942 0.99999 SL215 - Koshihikari == 0-1.68585 2.10825-0.800 1.00000 SL216 - Koshihikari == 0-0.65567 2.10825-0.311 1.00000 SL217 - Koshihikari == 0-1.98371 2.10825-0.941 0.99999 SL218 - Koshihikari == 0 2.46874 2.10825 1.171 0.99911 SL219 - Koshihikari == 0-2.50817 2.10825-1.190 0.99883 SL220 - Koshihikari == 0-1.44697 2.10825-0.686 1.00000 SL221 - Koshihikari == 0 2.28499 2.10825 1.084 0.99979 SL222 - Koshihikari == 0-1.93910 2.10825-0.920 0.99999 SL223 - Koshihikari == 0 0.57384 2.10825 0.272 1.00000 SL224 - Koshihikari == 0 9.60235 2.10825 4.555 < 0.001 *** SL225 - Koshihikari == 0-2.10284 2.10825-0.997 0.99996 SL226 - Koshihikari == 0-0.75202 2.10825-0.357 1.00000 SL227 - Koshihikari == 0-1.24104 2.10825-0.589 1.00000 SL228 - Koshihikari == 0-0.72796 2.10825-0.345 1.00000 SL229 - Koshihikari == 0 1.06719 2.10825 0.506 1.00000 SL230 - Koshihikari == 0-2.03250 2.10825-0.964 0.99998 SL231 - Koshihikari == 0 2.53240 2.10825 1.201 0.99863 SL232 - Koshihikari == 0 1.06885 2.10825 0.507 1.00000 SL233 - Koshihikari == 0-2.51909 2.10825-1.195 0.99875 SL234 - Koshihikari == 0 2.68222 2.10825 1.272 0.99651 SL235 - Koshihikari == 0 2.61650 2.10825 1.241 0.99765 SL236 - Koshihikari == 0 1.22089 2.10825 0.579 1.00000 SL237 - Koshihikari == 0-1.33756 2.10825-0.634 1.00000 SL238 - Koshihikari == 0-0.03783 2.10825-0.018 1.00000 SL239 - Koshihikari == 0 14.24457 2.10825 6.757 < 0.001 *** --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 (Adjusted p values reported -- single-step method) 検定の結果より SL203 は危険率 1% で SL224 および 239 は危険率 0.1% でコシヒカリ との有意差が検出された つまりそれらの系統の染色体置換領域に形質に影響を及ぼす遺 伝子が存在する可能性が示唆された なお コシヒカリよりも平均値が高い置換系統のみを片側検定する場合 res2 <- glht(res1, linfct = mcp(line = "Dunnett"), alternative = "greater") コシヒカリよりも平均値が低い置換系統のみを片側検定する場合 res2 <- glht(res1, linfct = mcp(line = "Dunnett"), alternative = "less") とします