サンプルデータをABC順に端から見ていこうという無謀な方針のため、「難しいのが先」、「基本的なものが後」になることは致し方ありません。今回、基本中の基本、線形モデルで単回帰というサンプルデータセットが登場しました。ようやく当たりを引いた感じ。Formaldehydeであります。しかし、Formaldehydeって一体何?
※「データのお砂場」投稿順Indexはこちら
例によってデータセットの解説ページから
データセットの解説ページへのURLをまず貼り付けさせていただきます。
もともと英語力が無い自覚は大有りなのですが、今回のデータセットの説明、単語からサッパリ分かりません。まあ、最近はWeb上で辞書を引いたり翻訳したりは簡単なので登場するキーワードを拾っていいます。
- Formaldehyde ホルムアルデヒド
- Chromotropic acid クロモトロプ酸?
- concentrated sulphuric acid 濃硫酸
- spectrophotometer 分光光度計
つたない英語力と忘却の化学知識で想像するに、ホルムアルデヒド(防腐剤なんかとして使われるアレ)を検出するのにクロモトロプ酸?(と濃硫酸)を使う方法があり、紫色に色が発色するのを分光光度計で測定することで濃度が分かる、ということみたいです(本当か?毎度のやっつけでご乱心なので、鵜呑みにしないでくださいまし。)
生データの確認
データは例によって遅延オブジェクトですが、単純なデータ・フレーム、そしてなにより6x2サイズの小さなデータでした。ご覧くだされ。
処理例どおりに処理してみる
上の貼り付けましたデータセットの解説ページには、処理例も記載されています。これはお楽。まずはそのまま実行してみました(コピペで。)こんな感じ。
Y軸の optdenは「光学的な濃度」?の指標で、X軸の carb は、ml単位の「炭水化物」量と読めるのですが、ケミカルなこの測定方法を知らない私メとしては、内容を理解するのはパスですな。しかし、グラフをみれば、線形であることが一目瞭然に見えます。データ数は少ないですが、かなり「いい感じ」のデータであるように思われます。
処理例では、plot 関数で軸とデータ点を描いておいて、lm関数で線形モデルへの単回帰を計算させ、abline関数でグラフ上に計算して求めた回帰直線を重ねるという手順のようです。そして最後にlmで求めたパラメータをsummary関数で出力させると。
Residualsは、残差ですかね。実際の測定値と回帰直線との差。そしてCoefficientsとある項目に、傾き、切片書かれています。が、t値、p値、F統計値など統計素人の私にはムズカシイ項目も満載。
やはり処理例的には「その辺」の統計量が関心みたいで、わざわざグラフ化してました。処理のオペレーションは、こんな感じ。
そして処理の結果がこちら。なんだかサッパリ分からんです。この辺、勉強しないとどうしようもありません。
ただ、複数面をもったグラフの書き方のサンプルとしてはカッコよいですな。par関数で、mfrowで2行2列構成の4面を用意、omaで余白を制御し、lmで求めてあった回帰分析の結果、fm1をplotすれば上記のようなグラフになる、と。
分かっている人が使えば便利に違いない。。。
ggplot2の威力
処理例をそのまま実行しているだけでは何も進歩がない?ので、この間から使い始めた ggplot2 の威力にすがることにいたします。
ggplot版の単回帰のグラフを描く例が以下に。
なんと、回帰直線を引いてくれるだけでなく、「推定値に対する不確実性」を示す標準誤差の範囲を色づけまでしてくれます。これは便利。
冒頭のアイキャッチ画像にグラフを掲げましたゆえ、ご覧くだされや(見てなければここには来ないか?)