1. 数量化3類
    1. 現在のワークフォルダーを確認するために, 「スクリプトウィンドウ」 に "getwd()" と入力し,「実行」ボタンを押す.出力ウィンドウに現在の ワークフォルダーが表示されるので確認する.もし,対象のデータファイルが 保存されているフォルダーが,現在のワークフォルダーと異なる時は, 現在のワークフォルダーを 対象のデータが入っているフォルダー(例."c:/home/abc") に変更する. そのために, "setwd("c:/home/abc")" と入力し,「実行」ボタンを押す. 最後に,現在のワークフォルダーが対象のデータファイルの入っている フォルダーに変更されたか確認する.



    2. 対象のデータファイル("hys3-1.csv")を分割表として読み込み,tb というオブジェクトに格納するために, 「スクリプトウィンドウ」 に "tb<-read.table("hys3-1.csv",sep=",",header=T,row.names=1)" と入力し,「実行」ボタンを押す.さらに,tb の中身を確かめるために,"tb" と入力する.



      入力されたデータは,出席番号1から10までの小学生の好きな科目を 調査した結果である.1が好きな科目を表す.



    3. 数量化3類により,小学生一人ひとりと科目に数値を与えるため, 「スクリプトウィンドウ」 に "library(MASS)" と入力し,MASS ライブラリーを読み込む.さらに, "tb.ca<-corresp(tb,nf=6)" と入力し,オブジェクト tb.ca に数量化の結果を 保存すし,その結果を表示するために,"tb.ca" と入力する. nf=6 は数量化する成分の個数を表す.この場合,第2固有値から第7固有値の6つの 固有値に対応する数量化を行うことになる.



    4. オブジェクト tb.ca の構造を確認するため,"str(tb.ca)" と入力すると, cor, rscore, cscore, Freq の4つの変数があることがわかる. それぞれ,相関係数, 行成分の数量化得点,列成分の数量化得点,分割表(元のデータ)を意味し, それらを取り出す時は,tb.ca$cor などとすればよい.



    5. 寄与率は相関係数の2乗の比率なので,"eigen.v<-tb.ca$cor^2" と入力して, 相関係数の2乗をオブジェクト eigen.v に格納し, "round(100*eigen.v/sum(eigen.v),2)" と入力して, その合計に対する割合を求める.ここで,round(x,2) は実数x を 小数第2位まで求めるように,四捨五入する関数.



      第1成分(第2固有値に対応する)の寄与率は43%,第2成分(第3固有値に対応する)の 寄与率は 21% であることなどがわかる.

    6. 各変数を,第1成分を横座標,第2成分を縦座標にして,点で描いてみる. "biplot(tb.ca)" と入力する.



      この結果,小学生の科目の好き嫌いによるグループ分けや, 科目のグループ分けが可能となる.

    7. 小学生ひとりひとり(行変数)の数量化得点をデータフレームという形式に変換するために,"rs<-as.data.frame(tb.ca$rscore)" と入力する.同様に, 科目(列変数)の数量化得点をデータフレームにするため, "cs<-as.data.frame(tb.ca$cscore)" と入力する.




    8. データフレームにした小学生ひとりひとり(行変数)の数量化得点 (rs) を アクティブにするために,メニュー下のデータセット:の右の 「アクティブデータセットなし」をクリックして,表示されたリストから 「rs」を選び,「OK」を押す. "rs<-as.data.frame(tb.ca$rscore)" と入力する.




    9. アクティブにしたデータフレーム rs を 表示して,確認する.




      変数名 V1 から V6 に6つの成分の数量化得点が入っている.V1 が第1番目の数量化得点で,最も寄与率が高い.確認したら,データフレームの表のウィンドウを閉じておこう.

    10. 数量化得点をもとに,小学生をクラスター分析する.




    11. 同様に,科目を数量化得点をもとに,クラスター分析する.




      上のバイプロットしたグラフにおける科目間の近さと比較すると, 異なった結果になっていると考えられるが, ここでのクラスター分析には,第1成分 V1 から 第4成分 V4 を使っている のが原因と考えられる.