2013-11-29 5 views
0

У меня есть набор данных об окружающей среде, состоящий из непрерывных, ненормально распределенных наблюдений. Моя цель - построить скрытую переменную из измеренных 5 переменных. Теория этой конструкции кажется звуковой, но я зациклен на том, чтобы идея была формализована.Скрытая переменная из множества мультиколлинеарных переменных

5 переменных сильно коррелированы (двунаправленная корреляция .75-.95), и, как я понимаю, это проблема моделирования структурных уравнений? Я пробовал SEM с пакетом «lavaan» в R, но я ничего не получаю. Так что я должен придерживаться SEM и пытаться итерации модели, или я должен использовать какой-то другой подход?

ответ

0

Действительно больше вопрос статистики, чем на R вопрос, но тем не менее ...

Рассмотрим principal components analysis, который преобразует набор коррелированных переменных в новый набор некоррелированных (ортогональных) переменных (основные компоненты, PC). Обычно бывает, что небольшое количество ПК объясняет почти всю изменчивость исходного набора данных. С помощью встроенного в iris набора данных в R:

data <- iris[,1:4]      # iris dataset, excluding species column 
pca <- prcomp(data,retx=T, scale.=T) # principal components analysis 
PC <- pca$x       # the principal components 
summary(pca) 

производит это:

Importance of components: 
          PC1 PC2  PC3  PC4 
Standard deviation  1.7084 0.9560 0.38309 0.14393 
Proportion of Variance 0.7296 0.2285 0.03669 0.00518 
Cumulative Proportion 0.7296 0.9581 0.99482 1.00000 

Так ПК1, первый основной компонент, объясняет 73% вариации в наборе данных, первые два (ПК1 и PC2) вместе объясняют 96% вариации.

Edit: В ответ на @ erska свой комментарий/вопрос ниже:

cor(data,PC) 

Производит это:

    PC1   PC2   PC3   PC4 
Sepal.Length 0.8901688 -0.36082989 0.27565767 0.03760602 
Sepal.Width -0.4601427 -0.88271627 -0.09361987 -0.01777631 
Petal.Length 0.9915552 -0.02341519 -0.05444699 -0.11534978 
Petal.Width 0.9649790 -0.06399985 -0.24298265 0.07535950 

Это показывает, что PC1 сильно коррелирует с Sepal.Length, Petal.Length и Petal.Width, и умеренно отрицательно коррелирует с Sepal.Width. PC4 не сильно коррелирует ни с чем, что неудивительно, поскольку оно составлено в основном случайным образом. Это типичный образец в СПС.

Я думаю, что может возникнуть непонимание того, как работает PCA. Если у вас есть, скажем, n переменные в вашем исходном наборе данных, PCA по определению идентифицирует n основные компоненты, упорядоченные по части изменчивости объяснения (так, PC1 объясняет большую изменчивость и т. Д.). Вы можете сказать алгоритму, сколько сообщите (например, просто сообщите об PC1 или PC1 и PC2 и т. Д.), Но при вычислении всегда производится n ПК.

+0

Спасибо за комментарии. Я пробовал PCA с разными подходами, и «принципиальный» из пакета «psych» кажется удобным, так как вы можете установить количество компонентов на 1. Однако мне хотелось бы знать корреляции этого одного компонента по сравнению с некоторыми другими переменными в данных (без включения их в СПС). Это возможно? – erska

+0

Смотрите мои правки выше. – jlhoward

0

Поскольку вы принимаете только одну скрытую переменную, я бы сказал, что факторный анализ более уместен в вашей ситуации. Вы можете использовать функцию Rfactanal.