Я применил анализ главных компонентов, чтобы уменьшить размерность моих данных.Мне нужно использовать факторные оценки для описательного анализа.Однако, поскольку факторные оценки, которые я получаю из пакета principal()
из psych
, стандартизированы (среднее = 0, sd = 1), я не могу сравнивать факторные переменные.Я просто хочу понять, какие из полученных мной факторов имеют более высокое среднее значение.
Я пытался изменить масштаб (нормализовать) факторные переменные, чтобы они были в том же ранге (например, 0-1).Но я не думаю, что это позволяет мне сравнивать средние значения (потому что оценки теперь относительно их минимума и максимума).Другое возможное решение, которое я прочитал в других постах (см. здесь и здесь ), состоит в том, чтобы "дестандартизировать" переменную с помощью формулы: нестандартные значения = стандартизированные значения * sd + среднее.Однако я не думаю, что это работает с факторными показателями, если целью является сравнение среднего значения факторных переменных.
Пример с principal()
из psych
пакета:
v1 <- c(1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,4,5,6)
v2 <- c(1,2,1,1,1,1,2,1,2,1,3,4,3,3,3,4,6,5)
v3 <- c(3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,5,4,6)
v4 <- c(3,3,4,3,3,1,1,2,1,1,1,1,2,1,1,5,6,4)
v5 <- c(1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,6,4,5)
v6 <- c(1,1,1,2,1,3,3,3,4,3,1,1,1,2,1,6,5,4)
m1 <- cbind(v1,v2,v3,v4,v5,v6)
fscores<-principal(m1,3,rotate="equamax")$scores
#option 1 (normalize factor scores):
rescale <- function(x) (x-min(x))/(max(x) - min(x)) * 100
unstandardized.scores1<-sapply(data.frame(fscores),rescale)
#option 2 (unstandardized factor scores):
unstandardized.scores2<-rowMeans(m1)+apply(m1,1,sd)*fscores
Итак, служите ли один из этих методов для сравнения средних показателей?Есть ли способ каким-то образом восстановить масштаб входных переменных?Какой метод я должен использовать, чтобы сравнить средние факторных переменных?
Спасибо!