2016-07-25 8 views
1

R에서 lavaan을 사용하여 잠재 변수와 관측 변수 간의 상관 관계를 계산하고 싶습니다.lavaan에서 잠재 변수와 관측 변수 간의 상관 관계를 지정하는 방법은 무엇입니까?

다음은 간단한 예제입니다. 우리는 데이터와 용암 모델을 가지고 있습니다.

data(bfi) 
names(bfi) <- tolower(names(bfi)) 
mod <- " 
agree =~ a1 + a2 + a3 + a4 + a5 
consc =~ c1 + c2 + c3 + c4 + c5 
age ~~ agree 
age ~~ consc 
" 
lavaan::cfa(mod, bfi) 

은 5 개의 표시기가있는 잠재 변수입니다. 나이는 관찰 된 변수이며 관찰 된 변수 age과 잠재 변수 agree 사이의 상관 관계를 가져 오려고합니다. lavaan에서 공분산을 지정하는 일반적인 방법은 변수 사이에 ~~을 넣는 것입니다. 그러나 이것은 변수 중 하나가 관찰 될 때 작동하지 않는 것처럼 보입니다.

Error in lav_model(lavpartable = lavpartable, representation = lavoptions$representation, : 
    lavaan ERROR: parameter is not defined: agree ~~ age 

같은 아모스와 같은 다른 SEM 소프트웨어에서, 당신은 단지 잠재 관찰 변수 사이에 이중 양방향 화살표를 그릴 것 : 나는 위를 실행하면

, 나는 다음과 같은 오류가 발생합니다.

잠재 고객 변수와 관찰 변수 간 상관 관계를 어떻게 포함합니까? 작동하는 것 같다

답변

3

한 가지 해결 방법은 관찰 된 변수를 생각으로 lavaan 속여 요인이다 :

data(bfi) 
names(bfi) <- tolower(names(bfi)) 
mod <- " 
agree =~ a1 + a2 + a3 + a4 + a5 
consc =~ c1 + c2 + c3 + c4 + c5 
agefac =~ age 
agefac ~~ agree 
agefac ~~ consc 
" 
lavaan::cfa(mod, bfi) 

즉, agefac 나이의 잠재 버전이 있지만, 나이는 유일한 지표와 계수이기 때문에 그 지표가 1로 제한되면, 그것은 관찰 된 연령 변수와 동일한 것이다. 이 준 잠재 변수를 사용하여 실제 잠재 변수와 상호 연관시킬 수 있습니다.

0

모델이 변경되지 않으면 잠재 변수에서 관찰 된 변수를 회귀 할 수 있습니다. 결과 표준화 된 회귀 계수는 @Jeromy에 의해 기술 된 바와 같이 잠재 성 (latent)과 "유사 잠재 성 (quasi-latent)"사이의 상관 관계와 동일합니다. 예를 들어 :

mod <- " 
    agree =~ a1 + a2 + a3 + a4 + a5 
    age ~ agree # regression instead of correlation 
" 
lavaan::cfa(mod, bfi) %>% summary(standardized = TRUE) 

agreeage의 표준화 회귀 계수는이 또는 @Jeromy에 의해 기술 된 모델을 실행할지 여부 동일합니다. 그러나 표준화되지 않은 계수는 동일하지 않습니다.

+0

고마워요. 슬프게도, 예제를 단순화하려는 시도에서, 아마도 더 광범위한 사용 사례를 전달하지 못했을 것입니다. 즉 여러 잠재적 변수를 관찰 변수와 상관시키려는 경우에 유용합니다. 이 내용을 명확하게하려고 편집했습니다. 위의 내용은 하나의 잠재 성이 매핑 된 잠재 성이있을 때만 사실 일 것이라고 상상합니다. –

+0

아, 알겠습니다. 네, 여러 잠재어에서 관찰 된 변수를 회귀해도 원하는 것을 얻을 수는 없습니다. 귀하의 솔루션을 고집하는 것이 가장 좋습니다 :) –