web-dev-qa-db-fra.com

Comprendre `scale` dans R

J'essaie de comprendre la définition de scale que R fournit. J'ai des données (mydata) avec lesquelles je veux faire une carte thermique, et il y a un très fort biais positif. J'ai créé une carte thermique avec un dendrogramme pour scale(mydata) et log(my data), et les dendrogrammes sont différents pour les deux. Pourquoi? Qu'est-ce que cela signifie de mettre à l'échelle mes données, par opposition à une transformation de journal de mes données? Et lequel serait plus approprié si je voulais regarder le dendrogramme illustrant la relation entre les colonnes de mes données?

Merci pour toute aide! J'ai lu les définitions mais elles me crevent la tête.

48
Jen

log prend simplement le logarithme (base e, par défaut) de chaque élément du vecteur.
scale, avec les paramètres par défaut, calculera la moyenne et l'écart type du vecteur entier, puis "redimensionnera" chaque élément par ces valeurs en soustrayant la moyenne et en le divisant par le sd. (Si vous utilisez scale(x, scale=FALSE), il ne fera que soustraire la moyenne mais pas le diviser par l'écart std.)

Notez que cela vous donnera les mêmes valeurs

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

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

   scale(x)
75
Ricardo Saporta

Il ne fournit rien d'autre qu'une normalisation des données. Les valeurs qu’il crée sont connues sous plusieurs noms différents, l’un d’eux étant z-scores ("Z" car la distribution normale est également appelée " Z distribution ").

Plus peut être trouvé ici:

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

11
vonjd