
またもやデジャヴ?なサンプルデータセットです。catsです。某劇団の演目ではありませぬ。Rのサンプルデータベースを経めぐっているなかで、以前、bootパッケージにてcatsMというデータセットに遭遇しました。雄猫様の心臓重量と体重のデータでした。今回はそのフルセット版みたい。雌猫様のデータも含まれておると。
※「データのお砂場」投稿順Indexはこちら
Anatomical Data from Domestic Cats
今回のサンプル・データ・セットについての解説ページが以下に。
https://stat.ethz.ch/R-manual/R-devel/library/MASS/html/cats.html
雄猫様のサブセット・データを扱った過去回が以下に。
データのお砂場(104) R言語、catsM、オス猫様の心臓の重さとな bootパッケージ
このデータセットは、ジギタリス(digitalis)という植物の心臓病に薬効がある(でも最近では植物からの製剤は使われないみたい)件についての研究用のものだったみたいです。雄猫様の過去回でも書きましたが、お猫様の体重は測れるけれども、心臓重量というのは「お亡くなりいただいて」取り出さないと測れんのではないかと想像。しかし今回タイトルにはハッキリ書いてありました。
Anatomical
と。やっぱり解剖されておしまいになったのね~。
先ずは生データ
Bwtが体重、kg単位。Hwtが心臓重量、g単位であります。性別のうちMaleが97とありますが、これは過去回で扱った雄猫様のデータセットと一致しております。過去回ではFemaleが0であったのが、こちらのデータセットでは47と数字が入っとります。
雄、雌、層別して平均値
過去回データと比較確認するためにも雄猫様、雌猫様に層別して、それぞれの平均値を求めてみます。操作はこんな感じ。
aggregate(cbind(Bwt, Hwt)~Sex, cats, mean)
黄色のマーカ引いてあるところは、過去回での集計結果と一致してます。
さてはプロット
過去回では、ggplot2つかって、ざっくりプロットしてみてますが、同じというのも芸がないので、今回はより「プリミティブ」な方法でプロットしてみてます。原点回帰?違うか。操作が以下に。
cats.F <- cats[cats$Sex=="F",]
cats.M <- cats[cats$Sex=="M",]
labels <- c("Female", "Male")
cols <- c("salmon", "skyblue")
plot(Hwt~Bwt, data=cats.F, xlim=c(2.0, 4.0), ylim=c(5, 25), main = "Cats Hwt~Bwt", xlab = "Bwt[kg]", ylab = "Hwt[g]", pch=16, col = cols[1])
par(new=T)
plot(Hwt~Bwt, data=cats.M, xlim=c(2.0, 4.0), ylim=c(5, 25),pch=16, col = cols[2], ann=F)
legend("bottomright", legend = labels, col = cols, pch=16)
cats.F.lm <- lm(Hwt~Bwt, data=cats.F)
abline(cats.F.lm, col=cols[1])
cats.M.lm <- lm(Hwt~Bwt, data=cats.M)
abline(cats.M.lm, col=cols[2])
それぞれの回帰直線も書き添えてあります。回帰直線の裏側にある尊い犠牲に合掌。それにしてもジギタリスはどこに?


