Rによるやさしい統計学 第1章、第2章
- 作者: 山田剛史,杉澤武俊,村井潤一郎
- 出版社/メーカー: オーム社
- 発売日: 2008/01/25
- メディア: 単行本
- 購入: 64人 クリック: 782回
- この商品を含むブログ (69件) を見る
前提
- Mac 10.9.5
- R 3.1.2
1章
1.3 Rを導入しよう
- http://cran.md.tsukuba.ac.jp/
- http://cran.r-project.org/
- こっちが本家っぽい
- http://cran.r-project.org/
- インストール
- http://cran.md.tsukuba.ac.jp/bin/macosx/
- R-3.1.2-mavericks.pkgをインストール
- R-3.1.2-snowleopard.pkgとR-3.1.2-mavericks.pkgがあったので注意
1.4 Rをさわってみよう
- Rコンソール
- 割り算はint同士?でも小数点以下まで計算する
- tab補完使えた
- log(2, base=10)
- 名前付き引数が使える
- Ctrl+a, Ctrl+eが使える
1.6 Rの使い方のコツ
- varp
- 関数内で最後に評価した結果が戻りとなる模様
- pはpopulation(母集団)のp
- varはvariance(分散)の先頭3文字みたい
- http://aoki2.si.gunma-u.ac.jp/R/index.html
- 大量の関数というかスニペットが存在する。
- 色付きで日本地図とか書ける!
- http://web.sfc.keio.ac.jp/~watanabe/rfunction.htm
- 解説一切なし。
- http://cran.r-project.org/web/packages/
- 6,277あった。。。
- Rcmdr
- XQuartzのインストールが必要がある
- Rを起動する前にXQuartzを起動する必要がある
- [Rパッケージインストーラ]で[依存パッケージも含める]にチェックが必要
Rcmdrを起動するまでの軌跡
- 事前状態はXQuartzをインストールしてない状態。
- RcmdrパッケージでRcmdrだけインストールして試したら以下のエラーとなった。
> library(Rcmdr) 要求されたパッケージ splines をロード中です エラー: パッケージ ‘RcmdrMisc’ が ‘Rcmdr’ によって要求されましたが、見つけられませんでした
- [Rパッケージインストーラ]で[依存パッケージも含める]にチェックを入れて再実行したら以下のエラーとなった。
> library(Rcmdr) 要求されたパッケージ RcmdrMisc をロード中です 要求されたパッケージ car をロード中です 要求されたパッケージ sandwich をロード中です Error : .onLoad は loadNamespace()('tcltk' に対する)の中で失敗しました、詳細は: call: fun(libname, pkgname) error: X11 library is missing: install XQuartz from xquartz.macosforge.org エラー: ‘Rcmdr’ に対するパッケージもしくは名前空間のロードが失敗しました
- XQuartzが必要なことが判明しインストールした。
- http://xquartz.macosforge.org/landing/
- XQuartz-2.7.7.dmg
- ちなみに、よくよく読んだらRのMac用のダウンロードページにちゃんと書いてあったorz
Note: the use of X11 (including tcltk) requires XQuartz to be installed since it is no longer part of OS X. Always re-install XQuartz when upgrading your OS X to a new major version.
- XQuartz.appを起動してから試すと今度は以下のエラーとなった。
> library(Rcmdr) Error : .onAttach は attachNamespace()('Rcmdr' に対する)の中で失敗しました、詳細は: call: structure(.External(.C_dotTclObjv, objv), class = "tclObj") error: [tcl] invalid command name "image". エラー: 'Rcmdr' に対するパッケージもしくは名前空間のロードが失敗しました
- Rを再起動したら起動した
- http://www2.warwick.ac.uk/fac/sci/systemsbiology/facilities/computing/support/limmagui/
" then X11 has probably not started. Try re-starting the R console and X11"
- http://www.jichi.ac.jp/saitama-sct/SaitamaHP.files/statmedOSX.html
- EZRというRコマンダーの拡張パッケージ?のインストール手順が書いてあり分かりやすい。
- app napの設定は様子見することにした。
- http://www2.warwick.ac.uk/fac/sci/systemsbiology/facilities/computing/support/limmagui/
2章
2.2 本書で用いるデータの説明
- http://www.cc.aoyama.ac.jp/~t41338/lecture/aoyama/stat2e/stat2e_top.html
- 入力が面倒なので前述で公開されているshidouhou.csvを利用することにした。
- MS932のCSVをMacで読み取るにはfileEncodingオプションでエンコードを指定すればいい。
- shidouhou.csvがMS932で記述されていたのでそのまま読み込むと文字化けしてしまう。
- http://kingqwert.hatenablog.com/entry/20120618/p1
- 関数のヘルプはhelp関数の引数に関数名を書けばいい
- help(read.csv)
- read.csv("shidouhou.csv", fileEncoding="CP932")
- Shift-JISも使えるがCP932が適切。
- MS932とWindows-31Jはエラーになった。
- Rがサポートするエンコードの一覧は見つけられなかった。。
> 指導法データ <- read.csv("shidouhou.csv", fileEncoding="CP932") > 指導法データ SID name sex math stat psych_test stat_test1 stat_test2 method 1 1 大村 男 嫌い 好き 13 6 10 C 2 2 本多 男 嫌い 好き 14 10 13 B 3 3 川崎 男 好き 好き 7 6 8 B 4 4 多村 男 好き 好き 12 10 15 A 5 5 松中 男 嫌い 嫌い 10 5 8 B 6 6 小久保 男 嫌い 嫌い 6 3 6 C 7 7 柴原 男 嫌い 嫌い 8 5 9 A 8 8 井手 男 嫌い 嫌い 15 9 10 D 9 9 田上 男 嫌い 嫌い 4 3 7 D 10 10 松田 男 好き 嫌い 14 3 3 D 11 11 高谷 女 好き 好き 9 11 18 A 12 12 杉内 女 嫌い 好き 6 6 14 A 13 13 和田 女 好き 好き 10 11 18 A 14 14 新垣 女 嫌い 嫌い 12 9 11 C 15 15 大隣 女 嫌い 好き 5 7 12 B 16 16 水田 女 好き 嫌い 12 5 5 D 17 17 斉藤 女 嫌い 嫌い 8 8 7 C 18 18 柳瀬 女 嫌い 嫌い 8 7 12 C 19 19 佐藤 女 嫌い 嫌い 12 7 7 B 20 20 馬原 女 嫌い 嫌い 15 9 7 D
2.4 データの視覚的表現
- 指導法オブジェクトは
t(指導法データ["method"])
で作成できる。- そのまま
指導法データ["method"]
だと列データなので、t関数で行データに変換する(転置行列)。 - tはtranspose(転置する)
- そのまま
> 指導法 <- t(指導法データ["method"]) > 指導法 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] method "C" "B" "B" "A" "B" "C" "A" "D" "D" "D" "A" "A" "A" "C" "B" "D" "C" "C" "B" "D" > table(指導法) 指導法 A B C D 5 5 5 5
- hist関数はフォントファミリーを指定しないと日本語が文字化けする。
hist(心理学テスト, family="HiraKakuProN-W3")
- http://www.karada-good.net/analyticsr/r-58/
- hist関数のヘルプにfamily引数の記述はなかったが[...]の所に[graphical parameters]のリンクがあって、[Set or Query Graphical Parameters]の中にfamilyに関する記述があった
2.10 標準化
- z得点(z score)というか標準化はscale関数で出来る。
t(scale(指導法データ["stat_test1"]))
- scale関数は列を処理する。書籍では行を処理する例であったため、最初
scale(t(指導法データ["stat_test1"]))
にしたら全部NaNになったw - http://rtutorialseries.blogspot.jp/2012/03/r-tutorial-series-centering-variables.html
- http://www.statmethods.net/management/functions.html
- ここでscale関数がz得点に使えるのが分かった。関数が端的にまとまっていてよさげ
t(scale(指導法データ["stat_test1"],center = FALSE, scale = FALSE))
にすると当然だが値が全く変化しない- falseは参照エラーになる。TRUE/FALSEが最初から用意されているグローバル定数らしい
> t(scale(指導法データ["stat_test1"])) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] stat_test1 -0.3883216 1.164965 -0.3883216 1.164965 -0.7766432 -1.553286 -0.7766432 0.7766432 -1.553286 -1.553286 1.553286 -0.3883216 [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] stat_test1 1.553286 0.7766432 0 -0.7766432 0.3883216 0 0 0.7766432 attr(,"scaled:center") stat_test1 7 attr(,"scaled:scale") stat_test1 2.575185 > t(scale(指導法データ["stat_test1"],center = FALSE, scale = FALSE)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] stat_test1 6 10 6 10 5 3 5 9 3 3 11 6 11 9 7 5 8 7 7 9 > scale(t(指導法データ["stat_test1"])) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] stat_test1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN attr(,"scaled:center") [1] 6 10 6 10 5 3 5 9 3 3 11 6 11 9 7 5 8 7 7 9 attr(,"scaled:scale") [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0