実験環境

この実験テーマでは、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でグラフを描く

Rでは様々なグラフを描くことができる。グラフ描画に用いる関数を例えば「graph()」とし、 グラフを描きたいオブジェクトを「data」というデータ・フレームの中の「y」というフィールド(変数)とする。 この時「関数graphでデータフレームdataの中のフィールドyのグラフを描く」には、

graph(data$y)

というコマンドをRに入力し、実行させる。

グラフ描画に用いる関数には次のようなものがある。

関数名描くグラフデータ・フレームの指定とモデル式の利用データフレームの描画
barplot棒グラフ
plot散布図、折れ線グラフOK
histヒストグラム
boxplot箱ひげ図OK
pie円グラフ
mosaicplot分割表(クロス集計)の図示
pairs散布図行列 OK
image2次元配列の濃淡表示
persp2次元配列の3次元グラフ
contour2次元配列の等高線での図示
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

などの関数を用いて、問題に取り組む準備をする。困ったら、竹澤先生のメモの中の

や、逆瀬川先生Rのページの中の

や、バイオスタティスティックス

などを参照するといい。

RjpWikiはもっと情報量があるが、欲しい情報に到達するのに検索力を問われるほど、大きくなってしまっている。

今年度のテーマ

実際のデータをPPDACサイクルに沿って解析してみる。

  1. まずはPPDまで
  2. 次はPPDAまで
  3. 最後に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に慣れないうちはかなり便利に感じるはずで、それらがあれば実験に必要な作業は、マウスやメニューの操作でかなり進めることができる。

開発が進行中のソフトウェアの宿命で、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)

これでうまくいく、かもしれない。