この実験テーマでは、RとExcelを使う。
「統計工学」ではRという言語をデータ解析用の環境として用いる。Rは言うなれば、データ解析用の電卓である。次のような特徴があり、理系における統計教育用の環境に適している。
多少のコマンドを打つ必要があるが、多くのことは紹介したコマンドのバリエーション(変数名を変える程度)で済むので、慣れてくれるといいと思う。
Rのデータ型は基本的には次の通りである。
またそれらのデータ型を格納するためのオブジェクトには、次元に応じては幾つかの種類がある。
同じ2次元配列でも、行列オブジェクトは数値しか格納できず、データ・フレームは上のすべてのデータ型のフィールドが混在していても構わない。
今週は様々なデータ型のフィールドからなるひとつのデータ・フレームのみを扱う。
データを解析する前の状況の把握にExcelを用いる。 徐々にExcelから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)
各フィールドの集計方法は、フィールドのデータ型によって異なる。
関数 | できること | 得意なデータ型 | 苦手なデータ型 | メモ |
mean | 平均の計算 | 数値 | 文字、因子、論理 | 変換してから平均を計算させることもできる |
var | 分散の計算 | 数値 | 文字、因子、論理 | 変換してから分散を計算させることもできる |
sqrt | 平方根の計算 | 数値 | 文字、因子、論理 | 分散の平方根は標準偏差 |
summary | 四分位(小さい方から25%、50%、75%の値)、最大最小、平均 | なんでも |
フィールドの組み合わせは、連続な数値どうしなら散布図を用いるのがいい。 離散の数値(とびとびの値しかとらない)や因子、少ないバリエーションの文字列のみなら、table関数を用いると、クロス集計をしてくれる。
関数 | できること | 得意なデータ型 | 苦手なデータ型 | メモ |
cov | 共分散の計算 | 数値 | 文字列、因子、論理 | |
cor | 相関係数の計算 | 数値 | 文字列、因子、論理 | |
table | クロス集計 | 数値(離散)、文字列、論理、因子 | 数値(連続) |
今週は、
などの関数を用いて、問題に取り組む準備をする。困ったら、竹澤先生のメモの中の
などを参照するといい。
RjpWikiはもっと情報量があるが、欲しい情報に到達するのに検索力を問われるほど、大きくなってしまっている。
実際のデータをPPDACサイクルに沿って解析してみる。
PPDACとは
今回のデータ。
使えないと困るものは次の3つ。
経営情報学実験室はインターネットに直接は接続されていない。学外のウェブサイトを利用するには、
プロキシサーバ | 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に慣れないうちはかなり便利に感じるはずで、それらがあれば実験に必要な作業は、マウスやメニューの操作でかなり進めることができる。
開発が進行中のソフトウェアの宿命で、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)
これでうまくいく、かもしれない。