#対応分析を簡単に試してみるには,以下のプログラムをRで実行してみてください. #柳井晴男の「多変量データ解析法」110ページに紹介されている例です. #夫婦(MとF)は学歴が同じもの同士のペアになっていると言う例です. # Rのメニューから,このスクリプトを開いて,以下 6 行を範囲指定し,crtl を押しながらアルファベットの r キーを押すと,自動的に実行されます.右クリック run でも構いません. # グラフ上で類似するカテゴリは,並んで表示されてます. ##################### ここから mat <- matrix(c(1,2,0,0, 0,2,6,0, 0,1,2,2, 0,0,0,2), ncol = 4, byrow = T) dimnames(mat) <- list(c("中卒F","高中退F","高卒F","大卒F"), c("中卒M","高中退M","高卒M","大卒M")) mat # 一度データを眺める library(MASS) # 対応分析の用意 cat.ca <- corresp(mat, nf = 2) biplot(cat.ca) # グラフを作成 ########### ここまで # 数学的に言うと,以下のような厄介な計算をすることになります. # # 1) ここではカテゴリ x とカテゴリ y をクロスにした頻度表を作成し,この x と yの相関が最大になるように以下の方法で調整します. # 2) 各行の合計,各列の合計を求め,また行合計の平方根を求め,それぞれを対角行列にします. # 3)次に,行合計の平方根対角行列の逆行例と,元データ,列合計対角行列の逆行列,元データの置換行列,行平方根行列の逆行列の行列積を求めます. # 4) この行列積の固有値と固有ベクトルを求めます. # 5) そうして次の計算でデータ間の距離を表す重み係数,つまりは座標を抽出します. # 6) 行平方根対角行列と,データの全合計の平方根と固有ベクトルを乗じた結果との連立方程式をときます. # 7) 固有値1と,対応する固有ベクトルは,対応分析の仮定である平均0,分散1 に反するので無視します. # 8) するとまず x に関する新たな座標軸が得られ,これを行得点といいます. # 9) 一方,固有値の平方根の逆数と列行列の逆行列,元データの置換行列,新しいx座標の行列積を求めると,新しい y 座標が得ら# れ,これを列得点といいます.