Last updated: October 2008. Kajiyama                    [ 目次に戻る ]

複数の変数間の相関係数をイチドキに求める


  1. 2変数の関係

    ・変数Aの数値の高いほど変数Bの数値が高くなるというような,量的な2変数の関係を「相関」という.

    ・これに対し質的な2変数の関係を「連関」という.


    評価 相関係数
    ほとんど相関なし −0.2≦ r ≦0.2  
    弱い相関あり −0.4≦ r <0.2 0.2< r ≦0.4
    中程度の相関あり −0.7≦ r <0.4 0.4< r ≦0.7
    強い相関あり  −1.0≦ r <−0.7   0.7< r ≦1.0 


  2. 使用する「iris」150サンプル データの表示とデータ構造の確認

    ・「コンソール」 画面に,

    str (iris) #  と記述すると,「iris」のデータ構造が表示され,5変数の名前と,型が表示される.

    ・Sepal.Length: num数値型 ・Sepal.Width : num数値型 ・Petal.Length: num数値型 ・Petal.Width : num数値型 ・Species: Factor因子型

      あやめの大きな3枚のはなびらは,「Sepal がく片」で,小さな3枚のはなびらが,「Petal 花びら」である.

    Sepal「がく片」の長さと幅・Petal「花びら」の長さと幅

    Species「あやめ3品種 [setosa・versicolor・virginica]」

  3. 「iris」データの5変数間の散布図の作図と画像ファイル保存

    (1) 「コンソール」 画面に,

    plot(iris) #  と記述すると,「iris」データの5変数間の散布図が同時に表示される.

    pairs(iris[1:5]) #  この書式も同じ結果となる.試してみる.


    散布図・画像の保存は,「ファイル」−>「別名で保存」−>「Png」あるいは「Jpeg」」で保存する.

  4. 「ピアソンの積率相関係数」の計算   cor( データフレーム名, method="p")

    (1) 「コンソール」 画面に,

    cor( iris) #  と記述すると,全変数間のpearsonの積率相関係数が計算される.

    以下の書式も同じ結果となる.試してみる.

    cor( iris, method="p")

    cor( iris, method="pearson")


    
    > cor( iris)
                    Sepal.Length   Sepal.Width   Petal.Length   Petal.Width  Species
    Sepal.Length    1.0000000    -0.1175698    0.8717538     0.8179411   NA
    Sepal.Width    -0.1175698     1.0000000   -0.4284401    -0.3661259   NA
    Petal.Length    0.8717538    -0.4284401    1.0000000     0.9628654   NA
    Petal.Width     0.8179411    -0.3661259    0.9628654     1.0000000   NA
    Species       NA        NA       NA        NA       1
    Warning message:
    In cor(iris)   :  強制変換により NA が生成されました
    

    (2) サンプルに欠損値(NA)がある場合

    cor( データフレーム名, method="p") #  欠損値がないデータフレーム.

    cor( データフレーム名, use="complete.obs", method="p") #  欠損値を含むサンプルをすべて除く.

    cor( データフレーム名, use="pairwise.complete.obs", method="p") #  二変数の組合せごとに欠損値を含むサンプルを除く.


  5. 「スピアマンの順位相関係数」の計算   cor( データフレーム名, method="s")

    (1) 「コンソール」 画面に,

    cor( iris, method="s") #  と記述すると,全変数間のspearmanの順位相関係数が計算される.

    cor( iris, method="spearman") #  この書式でも同じ結果となる.試してみる.

    
    > cor( iris, method="s")
            Sepal.Length  Sepal.Width   Petal.Length   Petal.Width  Species
    Sepal.Length   1.0000000    -0.1667777    0.8818981    0.8342888   0.7980781
    Sepal.Width   -0.1667777     1.0000000   -0.3096351   -0.2890317   -0.4402896
    Petal.Length   0.881898    -0.3096351    1.0000000    0.9376668   0.9354305
    Petal.Width   0.8342888    -0.2890317    0.9376668    1.0000000   0.9381792
    Species     0.7980781    -0.4402896    0.9354305    0.9381792   1.0000000
    


  6. 「ケンドールの順位相関係数」の計算   cor( データフレーム名, method="k")

    (1) 「コンソール」 画面に,

    cor( iris, method="k") #  と記述すると,全変数間のkendallの順位相関係数が計算される.

    cor( iris, method="kendall") #  この書式でも同じ結果となる.試してみる.

    
    > cor( iris, method="k")
            Sepal.Length  Sepal.Width  Petal.Length   Petal.Width   Species
    Sepal.Length   1.00000000   -0.07699679    0.7185159    0.6553086    0.6704444
    Sepal.Width   -0.07699679    1.00000000   -0.1859944   -0.1571257    -0.3376144
    Petal.Length   0.71851593   -0.18599442    1.0000000    0.8068907    0.8229112
    Petal.Width    0.65530856   -0.15712566   0.8068907    1.0000000    0.8396874
    Species     0.67044444   -0.33761438   0.8229112    0.8396874    1.0000000
    


[ 目次に戻る ]