J'ai construit un indice de capital social en utilisant la technique PCA. Cet indice comprend des valeurs à la fois positives et négatives. Je veux transformer / convertir cet index en échelle 0-100 pour le rendre facile à interpréter. Veuillez me suggérer un moyen le plus simple de le faire.
data-transformation
scales
Sohail Akram
la source
la source
Réponses:
Toute variable (distribution univariée) avec les valeurs et observées (ou celles-ci pourraient être des limites potentielles prédéfinies pour les valeurs) peut être redimensionnée pour s'étendre de à par la formule suivante:m i n o l d m a x o l d m i n n e w m a x n e wv m i no l d m a xo l d m i nn e w m a xn e w
ou
la source
Pour R, il existe également une
rescale
fonction déjà disponible dans le package échelles , qui fait exactement ce que vous voulez et ce que @AndrewTulloch et @ttnphns ont décrit:la source
tout d'abord, permet d'obtenir des exemples de données:
Voici deux fonctions qui fonctionneront dans R
Ou, vous pouvez utiliser d'autres transformations. Par exemple, la transformation logit a été mentionnée par @ondrej
ou, d'autres transformations:
la source
Juste pour ajouter à la réponse de ttnphnss, pour implémenter ce processus en Python (par exemple), cette fonction fera l'affaire:
la source
print rescale([-10, -9, -5, 2, 6])
# [0.0, 6.25, 31.25, 75.0, 100.0]
Je suggère de ne pas lier l'index à l'intervalle 0-100, car cela n'améliore pas l'interprétation, mais le rend plus difficile. Si les constituants de l'indice peuvent être négatifs, alors il est possible que l'indice devienne négatif, et il reflète ce qui se passe avec les constituants mieux qu'une valeur faible dans la plage 0-100, à mon avis.
la source
Pour R avec des packages standard chargés, vous pouvez simplement utiliser scale () du package 'base':
utilisez 'as.vector ()' pour récupérer le x mis à l'échelle comme vecteur.
la source