He construido un índice de capital social utilizando la técnica PCA. Este índice comprende valores tanto positivos como negativos. Quiero transformar / convertir este índice a escala 0-100 para que sea fácil de interpretar. Por favor sugiérame una forma más fácil de hacerlo.
data-transformation
scales
Sohail Akram
fuente
fuente
Respuestas:
Cualquier variable (distribución univariada) con los y observados (o estos podrían ser límites potenciales preestablecidos para los valores) se puede reescalar al rango a mediante la siguiente fórmula: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
o
fuente
Para R también hay una
rescale
función disponible del paquete de escalas , que hace exactamente lo que desea y lo que @AndrewTulloch y @ttnphns describieron:fuente
Primero, obtengamos algunos datos de ejemplo:
Aquí hay dos funciones que funcionarán en R
O bien, podría usar otras transformaciones. Por ejemplo, la transformación logit fue mencionada por @ondrej
o, otras transformaciones:
fuente
Solo para agregar a la respuesta de ttnphnss, para implementar este proceso en Python (por ejemplo), esta función hará el truco:
fuente
print rescale([-10, -9, -5, 2, 6])
# [0.0, 6.25, 31.25, 75.0, 100.0]
Sugiero no vincular el índice al intervalo 0-100, ya que no mejora la interpretación, sino que lo hace más difícil. Si los componentes del índice pueden ser negativos, entonces es posible que el índice se vuelva negativo, y en mi opinión refleja lo que está sucediendo con los componentes mejor que algún valor bajo en el rango 0-100.
fuente
Para R con paquetes estándar cargados, puede usar scale () del paquete 'base':
use 'as.vector ()' para recuperar la x escalada como vector.
fuente