
R言語付属のサンプルデータセットを巡回中。今回はMASSパッケージ内の crabs です。オーストラリアに住むカニさんたちの形態測定データらしいです。2種類あり、また雄雌の違いあり。その辺、線形判別分析 (Linear Discriminant Analysis: LDA)でスッパリ識別できちゃうみたい。ホントか?
※「データのお砂場」投稿順Indexはこちら
Morphological Measurements on Leptograpsus Crabs
今回のサンプル・データ・セットについての解説ページが以下に。
https://stat.ethz.ch/R-manual/R-devel/library/MASS/html/crabs.html
Leptograpsus variegatusという御名前のカニの形態測定データです。データセットに曰く、青とオレンジの2「種」があり、それぞれに雄雌あり~の。「色」については人によって表現が変わるみたい。生息地であるオーストラリアの博物館様の以下のページ(現地では素早く動いて捕まえずらいカニとして知られていて、以下のようなお名前で呼ばれているらしいです。知らんけど)
では、以下のように表現されとります。オリーブ・グリーンがオレンジ?パープルが青なの?
-
- dark olive-green
- dark purple
データ的には、青、オレンジと雄雌でグループ分けした4グループで50パイ?(カニをパイと表現すると、つい食いたくなりますが、うまいかどうか、そもそも食えるのかどうかも知らず)のカニさんについて以下の部位のサイズを測定しているみたい。
-
- FL “frontal lobe size”(mm)
- RW リア幅(mm)
- CL 甲羅の長さ(mm)
- CW 甲羅の幅(mm)
- BD 本体の深さ(mm)
なかで分からなかったのが、1番のfrontal lobeサイズです。frontal lobeで検索すると「前頭葉」がヒットしてきて、「カニに前頭葉なんかない」と𠮟られます。それでも検索つづけると、「額幅」という部位が Frontal Width と呼ばれることがあるみたい。目と目の間の長さらしいです。多分それだな。いい加減な。
まずは生データ
以下のようにして、種類と性別の4グループについてとりあえず散布図行列を作成したものが以下に(Googleの生成AI、Gemini様の御助けにより)
group <- paste(crabs$sp, crabs$sex, sep = "-") grf <- as.factor(group) pairs(crabs[, 4:8], col = grf, pch = 19, main = "Crabs Data: Grouped by Species and Sex")
バラける組み合わせもあれば、そうでないものもあり。でも、それぞれグループ毎に直線にのっているような気がするデータっす。
線形判別分析 (LDA)
このサンプルデータセットは、MASSパッケージ所蔵の関数 lda をつかって処理するとよい感じになるらしいです。
LDA: Linear Discriminant Analysis
です。ラベルを使って分類されている「グループ間の違い」を最大化するように変数を線形結合した「新たな」軸を作ってくれるみたい。
実際にldaを実施する操作が以下に
crabs_lda <- lda(interaction(sp, sex) ~ FL + RW + CL + CW + BD, data = crabs)
「新たな軸」LD1、LD2、LD3の各変数の係数など記されてます。数字を眺めても分けわからないので、プロットしたところが以下に。
plot(crabs_lda, col=as.numeric(interaction(crabs$sp, crabs$sex)))
LD1とLD2を組み合わせると、結構綺麗に、青、オレンジ、雄、雌が切り分けられる感じがしますな。流石だな、LDA。まあ、サンプルデータなんだが。



