金子邦彦研究室プログラミング主成分分析,次元削減R システムを用いた不偏分散共分散行列(高次元の場合)

R システムを用いた不偏分散共分散行列(高次元の場合)

このページでは,R システムを用いた不偏分散共分散行列の求め方と図解で説明する. このページでは,高次元の不偏分散共分散行列に焦点をあてます. 不偏分散共分散行列の意味については, 「R システムを用いた不偏分散共分散行列」の Web ページを見てください.

「R システムを用いた不偏分散共分散行列」の Web ページでは,3次元のベクトルデータを扱っていました.この意味は,次の通りです.

一方で,この Web ページの手順では,CSV ファイルを読み込んだあと,R の t() 関数を使って,転置させます.

不偏分散共分散行列と不偏相関係数行列

3 つの変数を n 回観測して得られる n 個の標本から構成される長さ n のベクトル に対する不偏分散共分散行列と不偏相関係数行列の定義は次の通り。

[image]
[image]

前準備

R システムのインストール

R システムの CRAN の URL: https://cran.r-project.org/

CSVファイルを読み込み,データフレームに格納

  1. (前準備) 使用する CSV ファイルの作成

    Book1.csv をダウンロード (参考: 「外国為替データ(時系列データ)の情報源の紹介」の Web ページ

    以下の説明では、

    として説明を続ける.

    自前の CSV ファイルを使うときの注意: read.table() 関数を使うので, 属性名は英語になっていること.属性名は,CSV ファイルの第一行目に書いていること.

  2. 使用する CSV ファイルの確認

    属性名が CSV ファイルの1行目に書かれていることを確認する.

    Book1.csv
  3. R の起動
  4. read.table」を用いて,CSV ファイルを R のデータフレームに読み込み

    次のコマンドを実行.

    Windows での動作手順例

    X <- read.table("C:/R/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE);
    

    ◆ Linux での動作手順例

    X <- read.table("/tmp/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE);
    

    R の read.table のオプション

    • X <- ・・・ 変数 X に読み込むという意味
    • C:/R/Book1.csv, "/tmp/Book1.csv" ・・・ 読み込む CSV ファイル名Windows では区切りには「/」を使うことに注意.
    • header="TRUE" または header="FALSE" ・・・ 列ラベルが設定されているか
    • seq="," や seq="\" や seq=" " や ・・・ 列を区切る記号(CSV ファイルのときは「seq=","」)
    • na.string="NA" ・・・ Not a Number には "NA" を使うという意味
    • dec="."  ・・・ ファイルで使われている小数点記号(既定値は,ピリオド)
    • strip.white=TRUE ・・・ 個々のデータの先頭や末尾にある「空白文字」を取り除いて読み込む
    • skip=<行数> ・・・ 読み飛ばし行数
    • nrow=<行数> ・・・ 読み込み行数
    • (その他のオプション) dec: ファイルで使われている小数点記号を指定できる
  5. オブジェクト X の確認

    次のコマンドを実行.

    edit(X);
    

    次のコマンドを実行.

    str(X)
    

cov() 関数を使って不偏分散共分散行列を求める

cov() 関数を使って不偏分散共分散行列を求める

次のコマンドを実行.

covTX <- cov( t( X[,3:5] ) )

[image]
  • 結果表示

    ※ 実は,covTX は,2834行2834列になっています. 長すぎるので,「covTX」+ Enter ではうまく表示できません.

    str(covTX) 
    edit(covTX);
    

    [image]

    [image]
  • 次の2つの式の評価結果が等しい