Я построил индекс социального капитала с использованием методики PCA. Этот индекс содержит значения как положительные, так и отрицательные. Я хочу преобразовать / преобразовать этот индекс в масштаб 0-100, чтобы его было легко интерпретировать. Пожалуйста, предложите мне самый простой способ сделать это.
data-transformation
scales
Сохаил Акрам
источник
источник
Ответы:
Любая переменная (одномерное распределение) с наблюдаемыми значениями m i n o l d и m a x o l d (или это могут быть предварительно заданные потенциальные границы значений) может быть изменена в диапазоне от m i n n e w до m a x n e w по следующей формуле:v м я но л г м а хо л г м я нn e w м а хn e w
или
.м а хn e w- м и нn e wм а хо л г- м и но л г⋅ ( v - m i nо л г) + м я нn e w
источник
Для R есть также уже имеющиеся
rescale
функции от чешуи пакета, который делает именно то , что вы хотите и что описано @AndrewTulloch и @ttnphns:источник
во-первых, давайте возьмем пример данных:
Вот две функции, которые будут работать в R
Или вы можете использовать другие преобразования. Например, преобразование logit было упомянуто @ondrej
или другие преобразования:
источник
Просто добавьте к ответу ttnphnss, чтобы реализовать этот процесс в Python (например), эта функция сделает свое дело:
источник
print rescale([-10, -9, -5, 2, 6])
# [0.0, 6.25, 31.25, 75.0, 100.0]
Я предлагаю не привязывать индекс к интервалу 0-100, так как это не улучшает интерпретацию, а скорее усложняет ее. Если составляющие индекса могут быть отрицательными, то вполне возможно, что индекс становится отрицательным, и он отражает то, что происходит с составляющими, лучше, чем какое-то низкое значение в диапазоне 0-100, на мой взгляд.
источник
Для R с загруженными стандартными пакетами вы можете просто использовать scale () из базового пакета:
используйте as.vector (), чтобы получить масштабированный x как вектор.
источник