データのお砂場(218) R言語、crabs、カニの形態測定データをLDA {MASS}

Joseph Halfmoon

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「種」があり、それぞれに雄雌あり~の。「色」については人によって表現が変わるみたい。生息地であるオーストラリアの博物館様の以下のページ(現地では素早く動いて捕まえずらいカニとして知られていて、以下のようなお名前で呼ばれているらしいです。知らんけど)

Swift-footed Crab

では、以下のように表現されとります。オリーブ・グリーンがオレンジ?パープルが青なの?

    • dark olive-green
    • dark purple

データ的には、青、オレンジと雄雌でグループ分けした4グループで50パイ?(カニをパイと表現すると、つい食いたくなりますが、うまいかどうか、そもそも食えるのかどうかも知らず)のカニさんについて以下の部位のサイズを測定しているみたい。

    1. FL “frontal lobe size”(mm)
    2. RW リア幅(mm)
    3. CL 甲羅の長さ(mm)
    4. CW 甲羅の幅(mm)
    5. BD 本体の深さ(mm)

なかで分からなかったのが、1番のfrontal lobeサイズです。frontal lobeで検索すると「前頭葉」がヒットしてきて、「カニに前頭葉なんかない」と𠮟られます。それでも検索つづけると、「額幅」という部位が Frontal Width と呼ばれることがあるみたい。目と目の間の長さらしいです。多分それだな。いい加減な。

まずは生データ

生データをロードして、眺めたところが以下に。rawdataCrabs

以下のようにして、種類と性別の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")

プロット結果が以下に。pairCrabs

バラける組み合わせもあれば、そうでないものもあり。でも、それぞれグループ毎に直線にのっているような気がするデータっす。

線形判別分析 (LDA)

このサンプルデータセットは、MASSパッケージ所蔵の関数 lda をつかって処理するとよい感じになるらしいです。

LDA: Linear Discriminant Analysis

です。ラベルを使って分類されている「グループ間の違い」を最大化するように変数を線形結合した「新たな」軸を作ってくれるみたい。

実際にldaを実施する操作が以下に

crabs_lda <- lda(interaction(sp, sex) ~ FL + RW + CL + CW + BD, data = crabs)

上記で得られたLDAの結果が以下に。printLdaCrabs

「新たな軸」LD1、LD2、LD3の各変数の係数など記されてます。数字を眺めても分けわからないので、プロットしたところが以下に。

plot(crabs_lda, col=as.numeric(interaction(crabs$sp, crabs$sex)))

結果が以下に。ldaCrabs

LD1とLD2を組み合わせると、結構綺麗に、青、オレンジ、雄、雌が切り分けられる感じがしますな。流石だな、LDA。まあ、サンプルデータなんだが。

データのお砂場(217) R言語、cpus、昔のCPUの性能比較表 {MASS} へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です