* Use UTF-8 for character encoding. このページの文字コードはUTF-8を使用しています。 Updated: 2005-04-02 5:44 am

統計解析言語 R で多変量解析を行う

英語コーパス学会第24回大会ワークショップ付録―

田畑 智司(大阪大学)

0. はじめに

Rのダウンロード

日本のミラーサイト(1)筑波大学

Rのインストール

Mac OS Xの場合 (群馬大学・青木先生によるインストールガイド)

LinuxおよびWindowsの場合(多摩大学・山本義郎先生によるインストールガイド)

Rのレファレンス・マニュアル

舟尾暢男氏によるR-tips集。素晴らしい入門書。

R-intro 日本語版(森 厚 氏による日本語訳)

Rによる統計処理(上記の青木先生による)

 

1. データ

注意:以下4点のデータはタブ区切りになっていますので,コピー&ペーストではレイアウトが崩れてしまう可能性があります。コピー&ペーストせずに,Mac OS Xの場合「 controlキー+クリック」,Windowsの場合は「マウスの右ボタンをクリック」し,「リンク先のファイルを別名で保存...(対象をファイルに保存)」を選択した後ダウンロードしてご使用下さい。

表1のデータ

Biber (1988)のデータ変数の略語の説明)( 使用域の略語の説明

Chrstmas Books 24 人の登場人物のデータ

色彩語データテキストの略語の説明

 

2. コマンドスクリプト補遺

追加パッケージのインストール:「主成分分析」および「階層的クラスター分析」については特に追加パッケージは必要ないが,「対応分析」を行う場合,あらかじめRのメニューから Windows では [Packages] - [Install package(s) from CRAN...] を選択しCRANのサイトへ接続し,multiv (Multivariate Data Analysis Routines)またはCoCoAn (Constrained Correspondence Analysis) をダウンロードしておく必要がある。(なお,multivにもPCA用の関数pcaが含まれているが,変数が多すぎる場合,計算が実行できない仕様になっているのであまりお薦めできない。また別の多変量パッケージとしてamap (another multivariate analysis package)というのもあり,その中にはacpという関数が用意されている。)

2005年4月1日付新情報。東京外大AA研の小田淳一さんよりWindows版multivパッケージに関して次の情報をご教示頂いた:Rの最新ヴァージョン(2.0.1)用にコンパイルされたmultivパッケージはCRANの/bin/windows/contrib/1.8 というディレクトリに置かれている。Windowsでmultivを利用するには,ウェブブラウザでCRANの当該ディレクトリにアクセスし,multiv_1.1-6.zipを一旦ローカルディスクにダウンロードする。その後[Install Packages from local zip files]でダウンロードしたzipファイルをインストールし , [load packages]でmultivを選択するとよい。

Rの最新ヴァージョン( 2.0.1)では,Mac OS X用にコンパイルされたパッケージmultiv が用意されていない。Mac OS X で R 2.0.1以降を使用する場合,multivをソースからコンパイルする必要がある。その際,FORTRANのコンパイラ(g77)が必要になるので,まず,EasyPackageを使用してg77をインストールしておくこと(EasyPackageのインストールその他に関しては琉球大学白土先生のWikiサイトを参照)。g77のインストールが済んだら,multivのソースコードをここからダウンロードしローカルディスクに保存する。次に,Rを起動し,[Package & Data] メニューから [Package Installer] を選択→ R package Installer のポップアップメニューから [Local Source package] を選択→ [Insall & Update] ボタンを押し,ファインダで multiv のソースを探し [Open]。Linuxでは多少手続きは異なるが,同様にパッケージをソースから読み込んでコンパイルする。

ワーキング・ディレクトリの設定(ディレクトリの変更)(*これをやっておかないとデータの読み込みができません): Mac OS X では [Misc] メニューから [Change working directory] を選択, Windows では [File] メニューから [Change working directory], R を ターミナルから起動してしようする場合,あるいはRのコンソール上で変更する場合, setwd("full/path/to/the/file") コマンドを用いる。full/path… には実際のパスを記入すること。

R Commander のインストール:上記追加パッケージで Rcmdr をダウンロードし,ライブラリに読み込むと GUI ベースで R が使用できるようになる。ただし,現行では全ての手法が使用できるわけではなく,多変量解析に関してはPCA, Factor Analysisなどに限定される。* なお,Mac OS Xで R commanderを使用する場合は, X11をあらかじめ起動しておく必要がある( R commander は X11 (Mac OS XのXウィンドウ環境)必要とするため)。 Mac OS X で R を使うなら いっそのこと最初から X11 のターミナル上で R を起動した方が手っ取り早い。

青木先生によるPCAコマンド(コマンド名をパッケージmultiv所収のpcaと区別するため,rpcaと変更していることに注意)

 

3. ワークショップで紹介した解析手法(以下,リンクをクリックして現れるコマンド行をRのコマンド入力画面にタイプするか,コピー&ペーストを行って下さい。あるいは,エディタで編集して Rスクリプト(.R)ファイルとして保存し,Rの起動後にsource()コマンドを使って読み込んで使用することもできます。)

Mac OS XのTerminal.appで下記の多変量解析コマンドを利用する場合,グラフ作画にX11を用いる仕様にしている関係上,コマンドを実行する前に X11(/Applications/Utilities/X11.app)を起動しておく必要がある。*最初からTerminal.appでなく,X11のターミナル(xterm等)を使うのが一番手っ取り早い。xtermではなく,他のMac OSアプリケーションと同じ感覚でコピー&ペーストができるTerminal.appを使用したいという方は,以下の青地の部分をコピーし,ターミナル.appのプロンプト( % や $ マークで表示されている)にペーストして実行して頂くとよい。

デフォルトのシェルが tcshの場合:

[panther:~] username% echo "alias R 'open /Applications/Utilities/X11.app; /usr/bin/R'" >> .tcshrc

デフォルトのシェルが bash の場合:

panther:~ username$ echo "alias R='open /Applications/Utilities/X11.app; /usr/bin/R'" >> .bashrc

または

panther:~ username$ echo "alias R='open /Applications/Utilities/X11.app; /usr/bin/R'" >> .bash_profile

3.1 対応分析(1): multivパッケージを使用するコマンド

1. データの読み込み

> dat <- read.delim("ファイル名") #表1のデータを用いる場合は,"table1demo.txt"と入力する

データの整形

分析実行

対応分析グラフ作図 UNIX (Mac OS X, Linux)用(サンプルスコア【項目間の関係】およびカテゴリスコア【変数間の関係】を第2次元まで散布図に表示)

対応分析グラフ作図 Windows用(サンプルスコア【項目間の関係】およびカテゴリスコア【変数間の関係】を第2次元まで散布図に表示)

 

3.2 対応分析(2): multivが利用不可能な場合(R 2.0.0以降,デフォルトでパッケージmultivが使用できなくなったため,MASSに含まれるcorrespを使用するよう記述を変更した。 2005-04-02

1. データの読み込み

> dat <- read.delim("ファイル名") #表1のデータを用いる場合は,"table1demo.txt"と入力する

データ整形

分析実行

グラフ作図 UNIX (Mac OS X, Linux)用(サンプルスコア【項目間の関係】およびカテゴリスコア【変数間の関係】を第2次元まで散布図に表示)

グラフ作図 Windows用(サンプルスコア【項目間の関係】およびカテゴリスコア【変数間の関係】を第2次元まで散布図に表示)

 

3.3 主成分分析(1): prcomp関数を使用する。

データの読み込み

# データの読み込み(24人の登場人物のデータを用いる場合は,"24ch21w.txt"と入力する )

> dat <- read.delim("ファイル名") # Dickens, Christmas Booksにおける

データ整形

分析実行

PC負荷量・PC得点散布図 (UNIX, Mac OS, Linux用) (第二主成分までの「主成分負荷量」および「主成分得点」を散布図に表示)

PC負荷量・PC得点散布図 (Windows用) (第二主成分までの「主成分負荷量」および「主成分得点」を散布図に表示)

 

3.4 主成分分析(2) *上記青木先生によるスクリプトを基にした。

データの読み込み

> dat <- read.delim("ファイル名") # Dickens, Christmas Booksにおける

# 24人の登場人物のデータを用いる場合は,"24ch21w.txt"と入力する

データ整形

分析実行

グラフ1(主成分負荷量:変数間の関係)

グラフ2(主成分得点:個体間の関係)

 

3.5 クラスター分析(個体間の距離を「標準化ユークリッド距離」で計り,クラスター間の距離は「最大距離法」を用いる場合)

データの読み込み

> library(stats) #階層的クラスター分析を含むstatsパッケージの読み込み

> dat <- read.delim("ファイル名")  #read.delim()はタブ区切りのデータを読み込むコマンド

# 色彩語のデータを用いる場合は,「ファイル名」のところに"15texts8colours.txt"と入力する

データ整形

分析実行・グラフ表示(固体間の関係を樹状図に表示)

 

4. 分析結果データの書き出し

i) 主成分分析(1)の結果の場合(*結果はpcloadingsおよびpcscoresに格納されているものとする)

#主成分負荷量を第1主成分から第6主成分までファイルに書き出し保存.

write.table(pcloadings[,1:6], file="ファイル名", sep="\t")

#主成分得点を第1主成分から第6主成分までファイルに書き出し保存.

write.table(pcscores[,1:6], file="ファイル名", sep="\t")

ii) 主成分分析(2)の場合(*結果はresrpcaに格納されているものとする)

write.table(resrpca$factor.loadings[,1:6], file="ファイル名", sep="\t") #主成分負荷量を

# 第1主成分から第6主成分までファイルに書き出し保存.

write.table(resrpca$fs)[,1:6], file="ファイル名", sep="\t") #主成分得点

# 第1主成分から第6主成分までファイルに書き出し保存.

iii) 対応分析(1)の場合(*結果はresultsに格納されているものとする)

write.table(results$rproj[,1:6], file="ファイル名", sep="\t") #サンプル(行)スコアを

# 第1主次元から第6次元までファイルに書き出し保存.

write.table(results$cproj)[,1:6], file="ファイル名", sep="\t") #カテゴリー(列)スコアを

# 第1次元から第6次元までファイルに書き出し保存

iv) 対応分析(2)の場合(*結果はresultsに格納されているものとする)

write.table(results$rscore[,1:6], file="ファイル名", sep="\t") #サンプル(行)スコアを

# 第1主次元から第6次元までファイルに書き出し保存.

write.table(results$cscore)[,1:6], file="ファイル名", sep="\t") #カテゴリー(列)スコアを

# 第1次元から第6次元までファイルに書き出し保存.

 

5. グラフの保存

PDFファイルとして保存する場合

pdf(file="ファイル名.pdf") # pdfデバイスを開く

上記3.1〜3.4のグラフ作成コマンドを入力

dev.off() # 必要な出力がすべて終ったらすぐにデバイスを閉じる。

ポーストスクリプト(ps)ファイルとして保存する場合

postscript(file="ファイル名.ps") # postscriptデバイスを開く

上記3.1〜3.4のグラフ作成コマンドを入力

dev.off() # 必要な出力がすべて終ったらすぐにデバイスを閉じる。

 

6. 最後に:Rの終了

quit() または q() で R のセッションを終了します。

#「Save workspace image? [y/n/c]:」というプロンプトが現れますが,関数等を記録しておきたければ Y(es), 不要なら N(o)とタイプして終了します。

以上。 *問題点等がありましたら田畑までご教示下さい。