前回は寄せ集め感たっぷりながら、生々しい実データでした。今回は「アーティフィシャルなフレーバー漂う」多分、確実に、このデータセットを可視化してみる人物(私を含む)に「インプレッション」を与えるため意図された人為的なデータです。なんだそれ。勿体ぶらずに上の画像見れば一目瞭然。
※「データのお砂場」投稿順Indexはこちら
R言語所蔵のサンプルデータセットをABC順(大文字先)で端から眺めております。今回のデータセットは新しいも古いもないです。人為的な数値の羅列です。データセットの解説ページが以下に。なお、Anscombeというのは統計の先生のお名前だそうです。
Anscombe’s Quartet of ‘Identical’ Simple Linear Regressions
どうこう言うより、アイキャッチ画像のグラフが全てを物語っておりますがな。
まずは生データから
データをロードして、データ形式を確かめてみます。フツーの data.frame であります。
ぶっちゃけ、小さなデータセットであるので、全体は簡単に見渡せます。
「とりあえず」summary関数にデータセットを渡せば各列(ベクトル)毎に平均値、最大、最小などが求まります。
同様に boxplot関数にデータセットを渡せば、各列を、上記の数値表現でなく boxplot で眺めることもできます。
こうしてみると「基本統計量的には」なんだか特徴の少ないデータ列に見えます。
とりあえずggplot2で線形回帰のグラフ
x1とy1という具合に組み合わせて線形回帰、させてみよということらしいので、以下の操作で4枚のグラフを描いてみました。
library(ggplot2) g10 <- ggplot(data=anscombe, aes(x=x1, y=y1))+geom_point() g11 <- g10 + geom_smooth(formula=y~x, method="lm")+labs(title="anscombe y1~x1", x="x1", y="y1") g11 g20 <- ggplot(data=anscombe, aes(x=x2, y=y2))+geom_point() g21 <- g20 + geom_smooth(formula=y~x, method="lm")+labs(title="anscombe y2~x2", x="x2", y="y2") g21 g30 <- ggplot(data=anscombe, aes(x=x3, y=y3))+geom_point() g31 <- g30 + geom_smooth(formula=y~x, method="lm")+labs(title="anscombe y3~x3", x="x3", y="y3") g31 g40 <- ggplot(data=anscombe, aes(x=x4, y=y4))+geom_point() g41 <- g40 + geom_smooth(formula=y~x, method="lm")+labs(title="anscombe y4~x4", x="x4", y="y4") g41
x3とy3、結構線形だけれど、一点の外れ値でなんだかすこしズレとるんでないかい?
x4とy4、あちゃ、これは上の奴らとはそもそもが違う、でも線形回帰すると同じ直線になっているみたい。意外ね?
データセットの解説ページの処理例
データセットの解説ページには処理例が載っている(4つのデータ系列をループで回して処理しているのでちょいとカッコいいです)のでそれそのままをやってみました。長いので、スクリプトファイルにしてバッチで走らせました。編集しているところが以下に(処理例ソース全貌は上記リンクより解説ページをご参照ください。)
まずは分散分析の数値結果から。あれま、というぐらい平均も分散も皆ほぼほぼ同じ。流石だ。
そしてグラフが以下に。線形な回帰直線が皆同じになるけれど、赤ポッチでプロットしたデータ点の様子は大いにことなります。
この場は身に染みた感じがいたしますが、忘却力だからな~ すぐ忘れるんだ、年寄りは。