No.15697 コレスポンデンス・アナリシスと数量化III類の違いについて  【初学者】 2011/11/21(Mon) 05:58

統計,多変量勉強中の者です。
表題の件で,違いがわからず困っております。

■質問:さまざまな文献,WEB上において,両手法はほぼ同じ分析として紹介されているのですが,現実にはどのような違いがあるのでしょうか(利用場面,メリット・デメリットなどありますでしょうか)。

個人的には,以下の相違点があると思うのですが,ここまでインプット,アウトプットが異なれば,全く違う手法のように感じます。同じ分析手法としてとらえられている理由でもあるのでしょうか。

■インプットデータ,アウトプットが異なると考えております。

 □インプット
  ・数量化III類は「ローデータ」,コレスポンデンス・アナリシスは「クロス表」に落とし込んだデータ

 □アウトプット
  ・数量化III類「カテゴリと個人のマップ」,コレスポンデンス・アナリシスは「すべて同一散布図上」

お手数おかけしますが,ご教授いただければ幸いです。
どうぞよろしくお願いいたします。

No.15699 Re: コレスポンデンス・アナリシスと数量化III類の違いについて  【青木繁伸】 2011/11/21(Mon) 09:12

http://aoki2.si.gunma-u.ac.jp/R/qt3.html
の分析例を見れば分かるように,全く同じ結果になります。

> 数量化III類は「ローデータ」,コレスポンデンス・アナリシスは「クロス表」に落とし込んだデータ

数量化III類がローデータからクロス表を作ることをやっているだけです。作られるクロス表はコレスポンデンス・アナリシスで使うものと同じになります。それゆえ,本質的にインプットデータが違うわけではありません。

> 数量化III類「カテゴリと個人のマップ」,コレスポンデンス・アナリシスは「すべて同一散布図上」

これはあなたの誤解でしょう。コレスポンデンス・アナリシスの結果が全て同一撒図上というのは,「バイプロット」では?数量化III類の結果も,バイプロット表示できますよ。

何よりかにより,最初に述べたように,同じデータからは同じ結果が得られるのですから,両者は同じということです。

No.15701 Re: コレスポンデンス・アナリシスと数量化III類の違いについて  【初学者】 2011/11/21(Mon) 09:49

青木先生,早速のお返事ありがとうございました。
申し訳ありませんが,重ねて質問がございます。

(1)同じデータからでも,同じ結果にならないケースがございます。

>>同じデータからは同じ結果が得られるのですから,両者は同じということです

例えば…

 ■ローデータで,100s,3brand,10imageの環境でID1〜ID50までは適当にフラグを立てて,ID51〜ID100まではそれと真逆になるフラグを立てて,「dummy」データを作成。

 ■当然ですが,クロス集計をすると全セルが50となり,ここからコレスポンデンス・アナリシスを行うと全ての座標が一致します。(正確には解は出ないと思いますが,,)

 ■一方,このデータでIII類を回すと一応,解らしきものが出て来て,それっぽいマップにはなりました。

実際にはあり得ないケースかもしれませんが,同じ結果が得られないケースも考えられるのかと思います。

(2)上記の例を除いた場合,同じデータで同じ結果が得られるのであれば,なぜ分析手法の名前が異なるのでしょうか。

お手数おかけしますが,
お返事のほど,どうぞよろしくお願い致します。

No.15702 Re: コレスポンデンス・アナリシスと数量化III類の違いについて  【青木繁伸】 2011/11/21(Mon) 10:22

> ローデータで,100s,3brand,10imageの環境でID1〜ID50までは適当にフラグを立てて,ID51〜ID100まではそれと真逆になるフラグを立てて,「dummy」データを作成

意味が分かりません。異なった結果になる具体的なデータ(そんなに大きくないもの)を提示してください。

> 同じデータで同じ結果が得られるのであれば,なぜ分析手法の名前が異なるのでしょうか。

開発者が違うからです。欧米人は数量化III類なんか知りません。

No.15703 Re: コレスポンデンス・アナリシスと数量化III類の違いについて  【初学者】 2011/11/21(Mon) 11:14

失礼致しました。

データですが,ファイルが添付できませんでしたので…

ID BrandA BrandB BrandC Image1 Image2 … Image10
1    1    0    0    1    1     … 0
2    1    0    0    1    1     … 0

50    1    0    0    1    1     … 0
(上記IDと全く逆のイメージにする)
51    1    0    0    0    0     … 1

100   1    0    0    0    0     … 1

このようなデータをブランドB,Cについても作成。
クロス表作成時には,

Image1 Image2 Image3 … Image10
BrandA 50 50 50 …    50
BrandB 50 50 50 …    50
BrandC 50 50 50 …    50
となるようにします。

データのイメージが伝わりましたでしょうか?

No.15704 Re: コレスポンデンス・アナリシスと数量化III類の違いについて  【青木繁伸】 2011/11/21(Mon) 11:31

> データのイメージが伝わりましたでしょうか?

正確にはわかりません。しかし,イメージが伝わるかどうかより,問題の起こるデータそのものを提示する必要があるのです。

> ファイルが添付できませんでしたので

大きなデータを送られても困ります。問題の起こる必要最小限のデータを,ここにペーストすればよいのです。

No.15705 Re: コレスポンデンス・アナリシスと数量化III類の違いについて  【初学者】 2011/11/21(Mon) 12:55

遅くなりました。
同じ現象が起こるデータを添付いたします。
お目通しのほど,どうぞよろしくお願い致します。
ID	BrandA	BrandB	BrandC	Image1	Image2	Image3	Image4
1 1 0 0 1 0 1 0
2 1 0 0 1 0 1 0
3 1 0 0 1 0 1 0
4 1 0 0 1 0 1 0
5 1 0 0 1 0 1 0
6 1 0 0 0 1 0 1
7 1 0 0 0 1 0 1
8 1 0 0 0 1 0 1
9 1 0 0 0 1 0 1
10 1 0 0 0 1 0 1
11 0 1 0 0 0 1 1
12 0 1 0 0 0 1 1
13 0 1 0 0 0 1 1
14 0 1 0 0 0 1 1
15 0 1 0 0 0 1 1
16 0 1 0 1 1 0 0
17 0 1 0 1 1 0 0
18 0 1 0 1 1 0 0
19 0 1 0 1 1 0 0
20 0 1 0 1 1 0 0
21 0 0 1 1 0 0 1
22 0 0 1 1 0 0 1
23 0 0 1 1 0 0 1
24 0 0 1 1 0 0 1
25 0 0 1 1 0 0 1
26 0 0 1 0 1 1 0
27 0 0 1 0 1 1 0
28 0 0 1 0 1 1 0
29 0 0 1 0 1 1 0
30 0 0 1 0 1 1 0

クロス表
Image1 Image2 Image3 Image4
BrandA 5 5 5 5
BrandB 5 5 5 5
BrandC 5 5 5 5

No.15708 Re: コレスポンデンス・アナリシスと数量化III類の違いについて  【青木繁伸】 2011/11/21(Mon) 16:01

このデータは,以下のように固有値が縮退しているので,固有値・固有ベクトルを使うと計算誤差が出てくる。
$Eigen.value
解1 解2 解3 解4 解5
0.33333 0.33333 0.22222 0.22222 0.22222
私の qt3 は固有値・固有ベクトル,MASS の corresp は SVD で計算している。
qt3
$Sample.score
解1 解2 解3 解4 解5
#1 1.41421 0.0000e+00 1 0.84252 -1.13585
#2 1.41421 0.0000e+00 1 0.84252 -1.13585
#3 1.41421 0.0000e+00 1 0.84252 -1.13585
#4 1.41421 0.0000e+00 1 0.84252 -1.13585
#5 1.41421 0.0000e+00 1 0.84252 -1.13585

corresp
Row scores:
[1,] -1.231879e-15 -1.4142136 -1.032707 -1.0084450 -0.9573687
[2,] -2.685174e-15 -1.4142136 -1.032707 -1.0084450 -0.9573687
[3,] -1.384729e-15 -1.4142136 -1.032707 -1.0084450 -0.9573687
[4,] -1.384729e-15 -1.4142136 -1.032707 -1.0084450 -0.9573687
[5,] -1.384729e-15 -1.4142136 -1.032707 -1.0084450 -0.9573687
qt3の 1 列目が coressp の 2 列目
qt3の 2 列目が coressp の 1 列目
に等しいが 3 列目以降は 食い違う

現実的には,このような縮退が起こるデータは滅多にないが,あえてそのような条件のデータを分析すれば,差は出てこざるを得ない。

qt3 を SVD で書き直すのが面倒なので,これ以上の追求はとりあえず止めておく。

MASS の corresp.matrix は以下のようになっている。短いなあ。
> MASS:::corresp.matrix
function (x, nf = 1, ...)
{
if (any(x < 0 | x%%1 > 10 * sqrt(.Machine$double.eps)))
warning("negative or non-integer entries in table")
if ((N <- sum(x)) == 0)
stop("all frequencies are zero")
Dr <- drop(x %*% (rep(1/N, ncol(x))))
Dc <- drop((rep(1/N, nrow(x))) %*% x)
if (any(Dr == 0) || any(Dc == 0))
stop("empty row or column in table")
x1 <- x/N - outer(Dr, Dc)
Dr <- 1/sqrt(Dr)
Dc <- 1/sqrt(Dc)
if (is.null(dimnames(x)))
dimnames(x) <- list(Row = paste("R", 1L:nrow(x)), Col = paste("C",
1L:ncol(x)))
if (is.null(names(dimnames(x))))
names(dimnames(x)) <- c("Row", "Column")
X.svd <- svd(t(t(x1 * Dr) * Dc))
dimnames(X.svd$u) <- list(rownames(x), NULL)
dimnames(X.svd$v) <- list(colnames(x), NULL)
res <- list(cor = X.svd$d[1L:nf], rscore = X.svd$u[, 1L:nf] *
Dr, cscore = X.svd$v[, 1L:nf] * Dc, Freq = x)
class(res) <- "correspondence"
res
}


No.15710 Re: コレスポンデンス・アナリシスと数量化III類の違いについて  【初学者】 2011/11/21(Mon) 23:13

青木先生,お忙しい中ご教授いただきましてありがとうございました。
コレスポンデンス・アナリシス・数量化III類は同じ手法であって,今回のデータは突飛な例だったという解釈で認識いたしました。

今後ともどうぞよろしくお願いいたします。

No.15722 Re: コレスポンデンス・アナリシスと数量化III類の違いについて  【出口慎二】 2011/11/22(Tue) 16:26

いちおう,結果が同一にならないケースがあることだけ補足.

同じ行列を固有値分解してるので,同 じ固有値,固有ベクトルが求まるわけですが,こうして求まった固有ベクトルの値と固有値を,どう使って(固有値をどう行/列に割り振るのか)最終的な行/ 列のスコアを出すのか,という点で,ベンゼクリのコレスポンデンスアナリシスの出力と,林の数量化III類の出力が,同一ではない,ということはありま す.

あと,III類用のダミーデータ(01型データ)からクロス表を作ってCA(コレスポンデンスアナリシス)する場合と,ダミーデータを自分自身の転置行列と掛け合わせてバート表を作ってCAする場合では,固有値が変わってきます.

ただ,いずれにしても解の持つ意味内容は変わりませんが.

● 「統計学関連なんでもあり」の過去ログ--- 045 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る