table関数の出力結果をmatrixに変換して、corresp関数で対応分析を行う(R言語)
↓この本に載っていた例で、
Rによるデータサイエンス データ解析の基礎から最新手法まで

library(MASS)
caith
fair red medium dark black
blue 326 38 241 110 3
light 688 116 584 188 4
medium 343 84 909 412 26
dark 98 48 403 681 85
↑このようなデータ(縦に並んでいるのが目の色、横に並んでいるのが髪の色)に対して、↓こんな感じで対応分析を行う、という例が載っていました。
caith.ca <- corresp(caith, nf=4)
biplot(caith.ca)
と、ここまでが前置き。
今、手元にあるのが↓こんなデータだった、としましょう。
gender <- c("M","M","M","M","F","F","F","F","F","F")
blood <- c("A","B","B","O","A","B","A","O","A","AB")
gender.blood <- data.frame(gender, blood)
gender.blood
gender blood
1 M A
2 M B
3 M B
4 M O
5 F A
6 F B
7 F A
8 F O
9 F A
10 F AB
このデータに対して対応分析を行いたい、としましょう。
先ほどのデータと違うのは、まだ集計されていないデータであるということ。correspの入力はクロス集計して分割表になったものでしたので、その形式にしてやらなければなりません。
こういうときにはtable関数ですね
gender.blood.tbl <- table(gender.blood)
gender.blood.tbl
blood
gender A AB B O
F 3 1 1 1
M 1 0 2 1
うん、集計されました。でも、これをそのまま corresp(gender.blood.tbl[,]) とやっちゃうと、「invalid table specification」というエラーが出ちゃうんですよね。どうやら、table型は受け付けてくれないようです。
そういうときは、↓こんな風に書いてやると、テーブルがmatrixになるみたいで、corresp関数が入力を受け付けてくれます。
gender.blood.tbl.ca <- corresp(gender.blood.tbl[,], nf=2)
biplot(gender.blood.tbl.ca)
データはデタラメなので、表示結果についてはスルーしてください。
Rによるデータサイエンス データ解析の基礎から最新手法まで

library(MASS)
caith
fair red medium dark black
blue 326 38 241 110 3
light 688 116 584 188 4
medium 343 84 909 412 26
dark 98 48 403 681 85
↑このようなデータ(縦に並んでいるのが目の色、横に並んでいるのが髪の色)に対して、↓こんな感じで対応分析を行う、という例が載っていました。
caith.ca <- corresp(caith, nf=4)
biplot(caith.ca)
![]() |
Rでのcaithデータの対応分析結果 |
と、ここまでが前置き。
今、手元にあるのが↓こんなデータだった、としましょう。
gender <- c("M","M","M","M","F","F","F","F","F","F")
blood <- c("A","B","B","O","A","B","A","O","A","AB")
gender.blood <- data.frame(gender, blood)
gender.blood
gender blood
1 M A
2 M B
3 M B
4 M O
5 F A
6 F B
7 F A
8 F O
9 F A
10 F AB
このデータに対して対応分析を行いたい、としましょう。
先ほどのデータと違うのは、まだ集計されていないデータであるということ。correspの入力はクロス集計して分割表になったものでしたので、その形式にしてやらなければなりません。
こういうときにはtable関数ですね
gender.blood.tbl <- table(gender.blood)
gender.blood.tbl
blood
gender A AB B O
F 3 1 1 1
M 1 0 2 1
うん、集計されました。でも、これをそのまま corresp(gender.blood.tbl[,]) とやっちゃうと、「invalid table specification」というエラーが出ちゃうんですよね。どうやら、table型は受け付けてくれないようです。
そういうときは、↓こんな風に書いてやると、テーブルがmatrixになるみたいで、corresp関数が入力を受け付けてくれます。
gender.blood.tbl.ca <- corresp(gender.blood.tbl[,], nf=2)
biplot(gender.blood.tbl.ca)
データはデタラメなので、表示結果についてはスルーしてください。
コメント
コメントを投稿