2013年7月8日月曜日

Rでグラフを作るという事は

このエントリーをはてなブックマークに追加
Pocket

グラフ作成作業を通して統計解析システムのRの学習をすると良いような話を見かけたのだが、ちょっと無理があるかも知れない。

Excelでも同じ面もあるが、Rのプロットを使えるようにするには、それなりの手間隙がかかるからだ。妙に多彩な色のグラフを自動では作らないが、最初は簡素すぎてどうすればいいか困る。

例えば11個の観測データを単純にRでプロットすると、以下のようなグラフになってしまう。作った本人には良いのだが、他人には何だか分からない。

TeXやWordで使う事を意識して、余白を圧縮してみよう*1。タイトルや出所などを入れる場合は、上下の余白をもっと取る必要があるが、今回は無しだ。

縦軸が20から100になっているので、縦軸が0から60、横軸が0から100と明示的にplot関数のxlimitとylimitで指定する。

四方を枠線に囲まれているのが好みではないので、plot関数の引数をaxes=FALSEして、縦軸と横軸の表示を消す。

新たに縦軸と横軸を引きなおす。axis関数を二回使う事になる。

目盛の幅が狭いので、縦軸を25、横軸を15間隔にする。axis関数にat引数を与える。

縦軸と横軸の表示位置を詰める。axis関数にpos引数を与える。

縦横の軸ラベルを書き込む。plot関数にxlabとylab引数を与える。

縦横の目盛に単位をつける。axis関数のlabelsにsprintf関数で作った目盛ラベルを与える。

縦横の数字が見づらいので、表示を水平にして、かつラベルを消す。plot関数のylabに空文字列を与えて、axis関数のlas引数に2を指定。

データから回帰分析を行い、推定値をプロットする。回帰分析から推定値をつくり、そのグラフを重ねる。

凡例を表示する。legend関数にマーカー種類pchと線種ltyの二つのパラメーターを与えるのだが、使わない場合は-1を入れている。

凡例の枠を消す。legend関数にbty="n"を与える。

凡例の「推定値」を推定式に置き換える。回帰分析の結果オブジェクトから係数をcoef関数で取り出し、sprintfで数式を作り、parseで表現式に変えた後に、legend関数に渡す。

上のPNGファイルは、フォントはMS GOTHICにして、Cairoで出力をした。なお、最終的なソースコードは、「Rのグラフに回帰分析の結果である数式を書き込む」と似たようなものになっている。

それぞれの作業ごとに、コマンドのパラメーターを調べないといけない。ExcelのGUIで作業していく方が、楽は楽な気がする。途中で飽きてしまう可能性は少なく無い。

上の例では、足し算と引き算と対数化で調整した後に回帰分析をしてニュートンの冷却の法則のパラメーターを推定したので、Excelでやるよりは楽な面もあるが、慣れる前に飽きるリスクは少なく無い。

グラフ作成ツールとして利点があるかは、データ分析部分がどれぐらい複雑かにかかってくると思われる。TeX使いであれば、もちろん強くお勧めするわけだが。

0 コメント:

コメントを投稿