実験環境
この実験テーマでは、RとExcelを使う。
R
「統計工学」ではRという言語をデータ解析用の環境として用いる。Rは言うなれば、データ解析用の電卓である。次のような特徴があり、理系における統計教育用の環境に適している。
- 短いコマンドで様々な集計ができる
- 簡単にグラフが描ける
- コマンド入力に不自由を感じる人は、数値や集計結果をExcelに持って行くことができる。
- 無料なので自分のコンピュータにインストールできて、いつでもどこでも、作業のやり直しや追加ができる(実施に場所と時間を選ばないは結構大事)
- コンパイル不要のプログラミング言語(インタプリタ環境)
多少のコマンドを打つ必要があるが、多くのことは紹介したコマンドのバリエーション(変数名を変える程度)で済むので、慣れてくれるといいと思う。
Rのデータ格納
Rのデータ型は基本的には次の通りである。
- 文字列(characters): “abcdefg”
- 論理(logical): TRUE/FALSE
- 数値(numeric): 1.53
- 因子(factor)
またそれらのデータ型を格納するためのオブジェクトには、次元に応じては幾つかの種類がある。
- スカラー変数(scalar):0次元配列
- ベクトル(vector):1次元配列
- 行列(matrix):2次元配列
- 配列(array):一般の配列(3次元以上も可)
- リスト(list):複数のオブジェクトを格納できるオブジェクト
- データ・フレーム(data.frame):多くの関数で採用されているフィールドごとのレコード数が共通の2次元配列
同じ2次元配列でも、行列オブジェクトは数値しか格納できず、データ・フレームは上のすべてのデータ型のフィールドが混在していても構わない。
今週は様々なデータ型のフィールドからなるひとつのデータ・フレームのみを扱う。
今週のExcel
データを解析する前の状況の把握にExcelを用いる。 徐々にExcelからRに切り替えていく。
今週のR
まず
Rでグラフを描く
Rでは様々なグラフを描くことができる。グラフ描画に用いる関数を例えば「graph()」とし、 グラフを描きたいオブジェクトを「data」というデータ・フレームの中の「y」というフィールド(変数)とする。 この時「関数graphでデータフレームdataの中のフィールドyのグラフを描く」には、
graph(data$y)
というコマンドをRに入力し、実行させる。
グラフ描画に用いる関数には次のようなものがある。
関数名 | 描くグラフ | データ・フレームの指定とモデル式の利用 | データフレームの描画 |
barplot | 棒グラフ | ||
plot | 散布図、折れ線グラフ | OK | |
hist | ヒストグラム | ||
boxplot | 箱ひげ図 | OK | |
pie | 円グラフ | ||
mosaicplot | 分割表(クロス集計)の図示 | ||
pairs | 散布図行列 | OK | |
image | 2次元配列の濃淡表示 | ||
persp | 2次元配列の3次元グラフ | ||
contour | 2次元配列の等高線での図示 |
barplot(data$y) plot(data$y) hist(data$y) boxplot(data$y) pie(data$y)
pairs(data)
Rで集計する
各フィールドの集計方法は、フィールドのデータ型によって異なる。
関数 | できること | 得意なデータ型 | 苦手なデータ型 | メモ |
mean | 平均の計算 | 数値 | 文字、因子、論理 | 変換してから平均を計算させることもできる |
var | 分散の計算 | 数値 | 文字、因子、論理 | 変換してから分散を計算させることもできる |
sqrt | 平方根の計算 | 数値 | 文字、因子、論理 | 分散の平方根は標準偏差 |
summary | 四分位(小さい方から25%、50%、75%の値)、最大最小、平均 | なんでも |
フィールドの組み合わせは、連続な数値どうしなら散布図を用いるのがいい。 離散の数値(とびとびの値しかとらない)や因子、少ないバリエーションの文字列のみなら、table関数を用いると、クロス集計をしてくれる。
関数 | できること | 得意なデータ型 | 苦手なデータ型 | メモ |
cov | 共分散の計算 | 数値 | 文字列、因子、論理 | |
cor | 相関係数の計算 | 数値 | 文字列、因子、論理 | |
table | クロス集計 | 数値(離散)、文字列、論理、因子 | 数値(連続) |
今週用いる関数
今週は、
- summary
- boxplot
- hist
- plot
- table
などの関数を用いて、問題に取り組む準備をする。困ったら、竹澤先生のメモの中の
- 箱ひげ図(ボックスプロット)
などを参照するといい。
RjpWikiはもっと情報量があるが、欲しい情報に到達するのに検索力を問われるほど、大きくなってしまっている。
今年度のテーマ
実際のデータをPPDACサイクルに沿って解析してみる。
- まずはPPDまで
- 次はPPDAまで
- 最後にPPDACまで
前説明
PPDACとは
本説明
今回のデータ。
使えないと困るものは次の3つ。
- インターネットとインターネットブラウザ
- R
- Excel
経営情報学実験室はインターネットに直接は接続されていない。学外のウェブサイトを利用するには、
プロキシサーバ | 130.153.8.16, 130.153.8.17, 130.153.8.18, 130.153.8.19のいずれか |
ポート | 8080 |
ユーザ認証 | なし |
プロキシを経由せず直接に接続する先(Firefox) | 130.153.0.0/16, 172.21.0.0/16, 182.168.0.0/16, 127.0.0.1/8, localhost |
をブラウザに教える必要がある。
Rはインストール済みだが、自宅ではR Projectもしくは近所のミラーサイトからダウンロードしてインストールできる。Excelは別に、Microsoft Office OnlineでもGoogle DriveでもApple iWork Onlineでも構わない。
Rに加えて、使えると便利なものは次の3つのいずれか、または全て。少なくともRコマンダーかEZRは、Rに慣れないうちはかなり便利に感じるはずで、それらがあれば実験に必要な作業は、マウスやメニューの操作でかなり進めることができる。
- RStudioはR専用のIDEで、Matlabのようなインタフェースを持っている。RStudioはRと通信しながら動作する。
- R CommanderはRの機能をメニューで提供する、Rの上で動作するパッケージ。荒木先生が日本語化をされていて、Rコマンダー入門の翻訳もされている。(金先生のRコマンダーの解説、http://monge.tec.fukuoka-u.ac.jp/r_analysis/0r_analysis.html|梶山先生のRコマンダー「Rcmdr パッケージ」の追加インストール、RjpWikiのRcmdrの機能、竹内先生のRコマンダーの使い方、長島先生のRコマンダーを用いた統計解析などが参考になる)
- EZRもRの機能をメニューで提供する、Rで動作するパッケージ。
開発が進行中のソフトウェアの宿命で、Rのバージョンが変わったり、それぞれが依存しているパッケージのバージョンが変わったりすると、それに応じて挙動が変わることがある。こちらですべてのパッケージのバージョンの組み合わせをサポートするのは困難なので、紹介だけに留める。(以前に、日本語化されたRコマンダーを用いていたが、R本体や依存するパッケージのためにうまく日本語が表示されないなどのトラブルがあった。)
Rに追加パッケージをインストールするには、このページを参考に、Rにプロキシを教える必要がある場合もある。 この大学では130.153.8.16, 130.153.8.17, 130.153.8.18, 130.153.8.19の4台が負荷を分散しながら、全学のプロキシサーバを担っているので、それらのうちのいずれかを指定して、次のようにパッケージをインストールすることができる。
Sys.setenv("http_proxy"="http://130.153.8.19:8080/") install.packages(c("Rcmdr", "EZR"), dependencies = TRUE)
これでうまくいく、かもしれない。