web-dev-qa-db-ja.com

Rの「スケール」を理解する

Rが提供するscaleの定義を理解しようとしています。ヒートマップを作成したいデータ(mydata)があり、非常に強い正のスキューがあります。 scale(mydata)log(my data)の両方の樹状図でヒートマップを作成しましたが、樹状図は両方で異なります。どうして?データをログ変換するのではなく、データをスケーリングすることはどういう意味ですか?そして、データの列間の関係を示す樹状図を見たい場合、どちらがより適切でしょうか?

助けてくれてありがとう!私は定義を読みましたが、それらは私の頭の上で百日咳をしています。

48
Jen

logは、単純にベクトルの各要素の対数(底はe、デフォルト)を取ります。
scaleは、デフォルト設定で、ベクトル全体の平均と標準偏差を計算し、平均を減算してsdで割ることにより、それらの値で各要素を「スケーリング」します。 (scale(x, scale=FALSE)を使用すると、平均値のみが減算され、標準偏差では除算されません。)

これは同じ値を与えることに注意してください

   set.seed(1)
   x <- runif(7)

   # Manually scaling
   (x - mean(x)) / sd(x)

   scale(x)
75
Ricardo Saporta

データの標準化以外は何も提供しません。作成される値はいくつかの異なる名前で知られています。そのうちの1つはz-scores( "Z"です。これは、正規分布が " Z分布」)。

詳細はここで見つけることができます:

http://en.wikipedia.org/wiki/Standard_score

11
vonjd