付録:Rについて A.1 なぜRを使うべきなのか? RはR-project (http://www.r-project.org/)という国際共同プロジェクトで開発されている,ソースが公開されていて[1],誰でも自由に利用できる統計ソフトである。ベル研で開発され市販されているSやS-Plusと8割くらいは共通の言語仕様をもつとされ,Poorman's Sと呼ばれることもある。 Rの操作性を市販統計ソフトと比べると,STATISTICAとかJMPとかSPSSのようなメニューから統計手法を選ぶものとはまったく異なり,関数を打たねばならないので,初めて使うときはとっつきにくいかもしれない。が,市販ソフトの中でも,プログラムをタイプするという意味では,SASと似ている[2]。記述統計から多変量解析まで,およそ必要な統計解析はすべてできるといっていいし,計算に使われている手法も新しい。大手市販ソフトでは新しい方法のフォローが遅いので,時としてベストではない統計手法が使われたりするのだが,Rは現時点でベストとされるかあるいは標準的な手法がデフォルトになっている。たとえば擬似乱数列生成のアルゴリズムはバージョン1.7.0からメルセンヌツイスター(第1章参照)がデフォルトになったし,多重比較のデフォルトはHolmの方法になっている(第10章参照)。 プログラムをタイプするのが面倒だと思う人もいるかもしれないが,よく考えてみれば,それが誤解に過ぎないことがわかると思う。少なくともMicrosoft Excelでマクロを使うよりもずっと簡単な場合が多い。 たとえば,Microsoft Excelで独立2標本の平均の差の検定をするには,ツールの分析ツール(アドインなので,フルインストールするか,インストール時に指定しないと入らない)を使うわけだが,まず等分散性の検定を選び,標本の範囲をそれぞれ指定して実行し,その結果等分散という帰無仮説が棄却されなければ,等分散を仮定した2群の平均の差の検定を選んで再び2つの標本の範囲を選んで実行するし,棄却されたときは等分散でないときの2群の平均の差の検定を選んで2つの標本の範囲を選んで実行する,という手順を踏む必要がある。結果は別々のシートに出力され,それは表として提示できるような形にはなっていない。少なくとも10ステップくらいのマウスの操作が必要であり,わずらわしい。 Rならば,標本サイズが小さければ,変数xとy(変数名は何でもよい)に直接2つの標本データを付値(代入)してから,var.test(x,y)をして,pが有意水準未満ならばt.test(x,y)でいいし,そうでなければt.test(x,y,var.equal=T)とすればよい。データ範囲を何度も選ぶよりも,xとかyとかタイプする方が一般的にいえばずっと楽だと思う。もちろん,表形式のデータを読み込んで分析する関数だけ指定することもできる。 しかも,Rでは,結果を変数に代入して保存したり加工したりできる。xtableというライブラリ[3]をインストールして読み込めば,結果をxtable( )の括弧内に入れるだけで,HTML形式や\LaTeX 形式に変換できたりする。 美しい図を作るのも実に簡単で,しかもその図をPDFとかpostscriptとかpngとかjpegとかWindows拡張メタファイル(emf)の形式で保存でき,他のソフトに容易に取り込める。たとえばemf形式で保存すれば,Microsoft PowerPointやOpenOffice.orgのDrawなどの中で,ベクトルグラフィックスとして再編集できる。PDF形式で出力してから,pTeX に入っているpdftopsプログラムで-epsオプションをつけて変換すれば,Encapsulated Postscript形式(EPS形式)のファイルを作るのも容易である。 本書出版時点では[4],おそらく多くの日本人にとって最大の難点は,日本語が使えない(グラフィック表示は面倒な指定をすればできないこともないし,フォントを変更すればコンソール表示もできるし,データに日本語が入っていてもだいたい扱えるが,変数名としては使えないので,たとえば1行目に日本語を使って変数名を打ってある表データは読み込めない)ことだったろう。しかしこの欠点は中間栄治さんのコードがR Core Teamに採用されることによって,R-2.0.0以降解消された。 また,本書出版時点では,日本語による解説があまり出回っていない(英語が読めれば無料でもたくさん出回っている)のも,多くの日本人にとっては難点と思われた。しかしその後,本書を皮切りにして4年間で20冊を超えるR関連書籍が既に出版されており,他のソフトに引けを取らなくなった。 A.2 Rを使うための最初の1歩 A.2.1. インストール ・Rは,2008年6月現在,Windows 2000/XP/Vista,MacOS X,LinuxなどのOSの上で利用可能である。PDAやスマートフォンで動作させたという報告もある。 ・Windows版バージョン2.7.0 Patchedのインストールは,CRAN(または会津大学,筑波大学,東京大学等にあるミラーサイト)からR-2.7.0pat-win32.exeをダウンロードして実行し,問い合わせダイアログに答えていくだけなので簡単である。インストールに使用する言語としてデフォルトがWindowsの言語設定と同じ(多くの人の場合Japaneseのはず)になっているので「OK」ボタンをクリックすると,「R for Windows 2.7.0 Patched セットアップウィザードの開始」というウィンドウが出てくる。「次へ」ボタンをクリックするとライセンス条件としてGNU GENERAL PUBLIC LICENSEが表示されるのでざっと目を通してから「次へ」ボタンをクリックすると,インストール先の指定ウィンドウが開く。デフォルトのインストール先ディレクトリは,C:\Program Files\R\R-2.7.0などとバージョン番号が付き(Patched版ではR-2.7.0patがデフォルトだがpatは消しても問題ない),アップグレードしても旧バージョンは自動的には消去されない。次にコンポーネントの選択ウィンドウが開くので,通常は「利用者向けインストール」のまま「次へ」を選べば良いが,ハードディスク容量に余裕があれば「全てインストール」にすることをお薦めする。次に起動時オプションをカスタマイズするかどうかを尋ねるウィンドウが出てくるが,ここは「はい(カスタマイズする)」を選び,次のウィンドウで「SDI(複数のウィンドウを使用して表示)」を選び,「HTMLヘルプ」と「Internet2」を選ぶことをお薦めする[5]。なお,手動で追加したライブラリはバージョンアップの際には継承されないので(バージョン依存性があるかもしれないから当然だが),それらのライブラリがzip形式で公開されているならばそれもどこかに保存しておき,R本体をバージョンアップした後で,「パッケージ(Packages)」メニューの「ローカルになるzipファイルからのパッケージのインストール(Install package from local zip file)」を選んで,保存しておいた追加ライブラリを選択するという手順を踏む必要がある[6]。 ・Linuxでは,ソースのtarボールをダウンロードして展開し,そのディレクトリで./configureをやってからmakeするだけでコンパイルできるので,suしてmake installすればインストールが完了するが,Debianなど,いくつかのLinuxディストリビューションではバイナリパッケージが公開されているので,それをインストールする方が簡単かもしれない。 A.2.2 もっとも基本的な操作 ・起動は,Windowsではデスクトップにできるアイコン(またはスタートメニューのプログラムのRにできるアイコン)をクリックするだけでいい。Windowsなら,コマンドラインでもRterm --no-saveとして起動できる。Linuxのシェルをtelnetやsshで使う場合は,Rと打てば良い。いずれの場合でも>というプロンプトが表示されて入力待ちになる。 (画面) ・終了は,プロンプトに対してq()と打てば良い。コマンドラインパラメータとして--no-saveなどとつけて起動した場合以外はワークスペースを保存するかどうかの問い合わせがあるので,その回のセッションを記録しておきたいならばyを,そうでなければnと打つ。ワークスペースを保存しすぎると.RDataというファイルが大きくなって起動が遅くなるが,作業中は便利な機能である。 ・基本的に,関数にデータを与えて得られる結果を表示したり,変数に付値したりして使う。アルファベットとドットからなる文字列は変数になりうる。付値とは,ほぼ代入を意味する。たとえば,xという変数に3, 5, 7という3つの値からなるベクトルを付値するには,x <- c(3,5,7)とする。これら3つの値の平均を得るには,mean()という関数を使って,mean(x)とすれば良い。付値せずに関数だけを打てば結果を表示するが,もちろん関数の値を別の変数に付値することもできる。たとえばy <- mean(x)として,yをまた別の計算に使うこともできる。変数の情報を見るにはstr()という関数が便利である。 ・GUI環境では,HelpメニューからR Manual(html)を選べば,階層構造で説明を参照できる。関数へのインデックスもある。 ・関数の使い方を忘れたときは,help(関数)とかhelp.search("キーワード")で説明が得られる。 ・example(関数)で関数の利用例が得られる。 ・プログラムは>というプロンプトに対して1行ずつ入力してもいいが,予めテキストファイル(たとえば,d:/test.R)として用意しておけば,source("d:/test.R")として一度に読み込んで実行させることもできる。 A.2.3 R Commanderを使ってみる 構造方程式モデリングのパッケージとして有名なsemを初めとして様々なパッケージを開発し,``An R and S-Plus companion to applied regression''という優れた教科書も書いているMcMaster大学のJohn Fox教授が発表した,Rをメニュー形式で操作するためのパッケージがRcmdrである。 メニュー項目はテキストファイルで定義されているので書き換え可能である。Rcmdrのテキスト表示はtcl/tkで行われており,tcl/tkはバージョン8.1から国際化対応しているので,UTF-8で日本語を表示することができ,当初は林啓一さん,中間栄治さんら,後には荒木孝治さんらの尽力によりほぼ完全に日本語化されたメニューが利用できる。 メニューから呼び出す関数が,かなりさまざまな追加パッケージのものを利用しているので,それらのパッケージ群(依存パッケージと呼ぶ)も同時にインストールしなくてはRcmdrパッケージの機能をフルに使うことができない。依存パッケージを含めてRcmdrをインストールするには,ネットワークに接続された環境であれば下記の1行だけで済む。 install.packages("Rcmdr",dep=TRUE) インストール完了後,R Commanderを使うには,プロンプトに対してlibrary(Rcmdr)と入力するだけで良い。かなりいろいろな操作をメニューから選んで実行できるので,Rへの入門としては便利である。R Commanderを本格的に使いたい方には,参考書として舟尾暢男『R Commanderハンドブック』九天社,2007年をお薦めする。 A.3 Rの参考書・webサイトなど A.3.1. webサイト ・R Project (http://www.r-project.org/):プロジェクトのサイト ・R-announce Info Page(https://www.stat.math.ethz.ch/mailman/listinfo/r-announce/):重要なお知らせが英語で流れるMLの情報ページ。 ・CRAN (http://cran.r-project.org/):プログラムやライブラリのダウンロード用サイト。 ・会津大学のミラー(ftp://ftp.u-aizu.ac.jp/pub/lang/R/CRAN/index.html):CRANのミラーサイト。日本国内の公式ミラーサイトは,この他に,筑波大学と東京大学にもある。 ・公式入門書やマニュアルの日本語訳は,東京工業大学・間瀬教授のサイト(http://www.is.titech.ac.jp/~mase/R.html)で公開されている。そのpdf版は学芸大の森厚さんのサイト(http://buran.u-gakugei.ac.jp/~mori/LEARN/R/)からダウンロードできる。なお,2002年末での最新版及び2003年5月に公開されたバージョン1.7.0のR-introの暫定和訳については,間瀬教授のサイトからソースファイルをダウンロードし,日本語コードをSJISに変えてWindows版pTeXとdvipdfmを使って個人的にpdf化したものを,http://phi.med.gunma-u.ac.jp/swtips/R-jp-docs/にも置いてある。 ・群馬大学社会情報学部・青木繁伸教授がRによる統計処理(http://aoki2.si.gunma-u.ac.jp/R/)という凄いページを作られている。Rを使おうと思う方は必見である。また,青木教授が書かれた「Rによるデータ解析」というテキスト(http://aoki2.si.gunma-u.ac.jp/R/Rstat.pdf)とその内容についての掲示板(http://aoki2.si.gunma-u.ac.jp/taygeta/Rstat.cgi)も有益である。 ・東海大学・山本義郎准教授によるR--統計解析とグラフィックスの環境 (http://stat.sm.u-tokai.ac.jp/~yama/R/)とR入門(http://stat.sm.u-tokai.ac.jp/~yama/R/Rintro.html)は,丁寧に書かれていて役に立つと思う。 ・Rについての日本語メーリングリスト(R-jp)が,筑波大学のサーバで,岡田昌史さんによって運営されている。元々はドキュメント翻訳用のメーリングリストとしてスタートしたらしいが,Rについて日本語で議論されているMLとしては唯一のものである。登録の仕方などの説明はhttp://epidemiology.md.tsukuba.ac.jp/~mokada/ml/R-jp.htmlにあり,過去に投稿されたメールのアーカイヴも公開されている。 ・その岡田さんが2003年6月に立ち上げたRjpWiki(http://www.okada.jp.org/RWiki/)には,役に立つ情報がものすごい速さで集積しつつある。とくに日本語(を含むマルチバイト環境)対応については,ここの「日本語化掲示板」(http://www.okada.jp.org/RWiki/?%C6%FC%CB%DC%B8%EC%B2%BD%B7%C7%BC%A8%C8%C4)を舞台として,中間さんと岡田さんが尽力されたおかげで実現したといえる。 ・中央農業研究センター・竹澤邦夫さんのサイト内に,舟尾暢男さんが書かれたオンラインテキスト,R-Tips:統計解析フリーソフトRの備忘録頁(http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html)が公開されている。一括で読みたい方にはpdf版も公開されているし,書籍としても出版されている。機能別にインデックスが付与されており,Rの機能を確かめながら自習するには最適のマニュアルであろう。 ・群馬大学の中澤のサイト内でもhttp://phi.med.gunma-u.ac.jp/swtips/R.htmlとしてRについての使い方のtipsや最新情報を公開している。本書のサポートもここで行う予定である。応用例として,「Rでシミュレーション」(http://phi.med.gunma-u.ac.jp/swtips/Rsim/)や,「人口ピラミッドの作り方」(http://phi.med.gunma-u.ac.jp/demography/makepyramid.html)も参考にされたい。 A.3.2. 参考書 本書はRで統計解析をするための,初めての日本語で書かれた入門書であったが,Rの使い方そのものの解説というよりは,統計学の入門テキストとして書いたために,具体的にRを使ってデータ解析をするには,情報がやや不足がちであった。しかし本書出版から4年以上が経過した2008年現在では,さまざまな良書が出版されている。中でも以下のものはお薦めである(括弧内は特徴と想定される読者層を中澤の独断で示した)。 ・間瀬 茂,神保雅一,鎌倉稔成,金藤浩司『工学のための数学3 工学のためのデータサイエンス入門 −フリーな統計環境Rを用いたデータ解析− 』ISBN 4-901683-12-8,2004年3月,数理工学社:Rのマニュアルの邦訳でも中心的に活動され,RjpWikiでも含蓄の深い書き込みをいくつもされている間瀬先生が書かれた本であり,例題が充実しているのと,実に深みのあるコラムが素晴らしいと思う。(バランスのとれた良書,全般) ・岡田昌史編『The R Book: データ解析環境Rの活用事例集』ISBN 4-901676-97-0,2004年6月,九天社:この本には例題データや日本語対応版まで含まれたCDROMが付属しており,ネットワークに繋がっていない環境でも,すぐにRを使い始めることができる。2部構成になっていて,第1部ではインストールの仕方や基本的な使い方が説明されており,第2部は,実際にいろいろな分野でRを活用した例がいくつも載っていて,実践的なRのガイドブックになっていると思う。(Rでこんなことまでできるという活用事例集,中級〜上級) ・舟尾暢男『The R Tips』ISBN 4-861670-39-X,2005年2月,九天社:オンラインで公開されていたものが出版されたもの。機能別マニュアルとして使うのに便利。(R操作マニュアル,全般) ・U.リゲス(著),石田基広(訳)『Rの基礎とプログラミング技法』ISBN4-431-71218-6,2006年2月,シュプリンガー・ジャパン:著者はR Development Core Teamの一人であり,Rのオブジェクト指向言語としての側面を強調した点に特徴がある。(プログラム開発者向け,中〜上級) ・舟尾暢男『R Commanderハンドブック』ISBN 978-4-86167-191-3,2007年8月,九天社:前述の通り。(Rcmdrライブラリの活用マニュアル,初級〜中級) ・金明哲『Rによるデータサイエンス - データ解析の基礎から最新手法まで』ISBN 978-4627096011,2007年10月,森北出版:「エストレーラ」連載記事の一部に手を入れてまとめたもの。きわめてコンパクトにまとまった第I部『Rとデータマイニングの基礎』に続いて,第II部に入るといきなり主成分分析,因子分析,対応分析,多次元尺度法,クラスター分析,と,ある意味よくわかる順番で多変量解析の手法が並んでいる。(実践的な統計解析の活用法,中級〜上級) ・間瀬 茂『Rプログラミングマニュアル』ISBN 978-4-901683-50-0,2007年11月,数理工学社:RjpWikiに集積されたTipsの多くを含んでおり,Rのプログラムを書くとき,やりたいプロセスに該当する部分を目次から探して読むというのが正しい使い方である。(プログラム開発者向け,上級) ・中澤 港『Rによる保健医療データ解析演習』ISBN 978-4-89471-755-8,2007年12月,ピアソン・エデュケーション:本書をベースにして抜本的に増補改訂し,医学・保健学領域の実例データを数多く掲載して,具体的にRを使って解析するためのコードと結果のまとめ方,解釈の仕方を解説した本。サポートページ(http://phi.med.gunma-u.ac.jp/msb/index.html)あり。(自習できるワークブック,全般) ========================== [1] その気になれば実際にどういう計算が行われているのかを確認できるという意味で,もっとも信頼性を高めることに寄与するポイントである。 [2] もっとも,SASのプログラムをFORTRANとすれば,C++やAPLくらいに洗練されている言語体系だと思う。 [3] Rは拡張が楽なので世界中の研究者が追加のライブラリを作って,R本体と同じような配布条件で公開しているものが山ほどある。 [4] 以下,2008年6月の増刷に際して,あまりに古い情報は全面的に書き換えた。 [5] とくに,Rcmdrを利用する場合はSDIでないと不便である。 [6] ネットワークにつながれた環境であれば,CRANに登録されているパッケージはCRANからダウンロードする方が安全である。install.packages("xtable", dep=TRUE)などとするだけでよい。なお,Vistaの場合,Rをシステム管理者として実行しないとパッケージのインストールができないので注意されたい。