Ich habe einen Sozialkapitalindex mit PCA-Technik erstellt. Dieser Index umfasst sowohl positive als auch negative Werte. Ich möchte diesen Index in eine Skala von 0-100 umwandeln, um die Interpretation zu vereinfachen. Bitte schlagen Sie mir den einfachsten Weg vor.
data-transformation
scales
Sohail Akram
quelle
quelle
Antworten:
Irgendeine Variable (univariate Verteilung) mit beobachteten m i n o l d und m a x o l d - Wert (oder diese Potentialgrenzen für Werte voreingestellt werden kann) kann auf einen Bereich neu skaliert wird m i n n e w an m a x n e w nach folgender Formel:v mino l d m axo l d minnew maxn ew
oder
.m a xn e w- m i nn e wm a xo l d- m i no l d⋅ ( v - m i no l d) + m i nn e w
quelle
Für R gibt es auch bereits vorhandene
rescale
Funktion von Skalen - Paket, das genau das tut , was Sie wollen und was @AndrewTulloch und @ttnphns beschrieben:quelle
Lassen Sie uns zunächst einige Beispieldaten abrufen:
Hier sind zwei Funktionen, die in R funktionieren
Oder Sie könnten andere Transformationen verwenden. Zum Beispiel wurde die logit-Transformation von @ondrej erwähnt
oder andere Transformationen:
quelle
Nur um die Antwort von ttnphnss zu ergänzen, um diesen Prozess in Python zu implementieren (zum Beispiel), wird diese Funktion den Trick machen:
quelle
print rescale([-10, -9, -5, 2, 6])
# [0.0, 6.25, 31.25, 75.0, 100.0]
Ich empfehle, den Index nicht an ein Intervall von 0 bis 100 zu binden, da dies die Interpretation nicht verbessert, sondern vielmehr erschwert. Wenn die Indexbestandteile negativ sein können, ist es möglich, dass der Index negativ wird, und er spiegelt meiner Meinung nach wider, was mit Bestandteilen besser als ein niedriger Wert im Bereich von 0 bis 100 vor sich geht.
quelle
Für R mit geladenen Standardpaketen können Sie einfach scale () aus dem Basispaket verwenden:
Verwenden Sie 'as.vector ()', um das skalierte x als Vektor abzurufen.
quelle