구조방정식.매개모형,SEM,AMOS/구조방정식,매개모형,SEM,AMOS

구조방정식 할 때 주의사항

학위논문통계 2019. 12. 28. 15:52


 

구조방정식을 본인 스스로 하기를 원하시는 분들이 있습니다. 사실 제가 돈을 벌려고 하는 것이 아니라 솔직히 말해 통계 분석하는 분들에게 맡기는 것이 낫습니다. 시중에 있는 책에서는 논문 통계 분석에 맞춰 서술되어 있지 않기 때문에 제대로 이해하고 본인이 분석하기는 너무 힘이 듭니다.

 

저 경우는 구조방정식의 경우 단가가 조금 올라갑니다. 석사는 통상 40인데 50을 받고 박사는 상당히 비쌉니다. 박사가 비싼 이유는 구조방정식을 하기 때문에 그런 것이 아니고 박사 논문은 석사논문과 달리 심사위원들이 학생들을 엄청 돌립니다. 말도 안되는 것을 요구하기도 하고요. 그래서 박사논문은 최종 학위 받을 때까지 하는 것으로 하고 그 대신 의뢰비용이 상당히 큽니다.

 

요새 패널데이타를 이용한 잠재성장모형을 의뢰하는 분들이 많은데 이 경우 단가가 더 올라갑니다. 왜냐하면 사회과학에서 쓰는 패널데이타는 정부기관에서 나온 데이터를 사용하는데 이 데이터를 논문분석용 데이터로 만드는 작업이 실제 분석 작업보다 더 힘들기 때문입니다. 또 나중에 다른 변수를 더 추가하라고 수정요구가 날아오면 이 귀찮은 작업을 또 해야 합니다.


 

정부기관은 변수도 엄청나게 많고 그리고 애초부터 데이터 분석용으로 코딩이 되어 있지가 않습니다. 그래서 초반 데이터 정리하고 여기에 분석에서 사용하는 데이터만 뽑아내고 하는 작업들이 매우 힘들다는 이야기입니다. 그래서 가능하면 분석하는 사람들을 편하게 해주시려면 소위 코딩북을 잘 만들어서 보내 주셔야 합니다.

 

즉 연구에 사용되는 변수 이름과, 이 변수들이 어떻게 코딩 되어 있고, 보내준 데이터 어느 부분에 있다는 내용들을 깔끔하게 정리해주면 통계 분석하는 사람들이 훨씬 쉽게 작업을 할 수 있습니다.

 

이에 반해 경제 관련 패널 데이터는 정부 기관 데이터에 비해 변수 자체로 적고 변수 코딩도 쉽게 파악이 되기 때문에 데이터 만지는데 별 어려운 점은 없습니다.

 

구조방정식을 본인이 직접 하시겠다고 하면 약간의 팁을 보태주면

 

 

1) 결측값

 

결측값이 있는 자료는 전부 없애는 것이 좋습니다. 꼭 원 데이터 다 쓰려고 하면 결측값은 그 변수의 평균값을 구해 이 평균값으로 대체하면 됩니다. 논문에는 뭐 EM 알고리즘을 사용했다든가 아니면 AMOS에서 제공하는 방법을 사용했다고 말을 쓰면 되고요. 통상 결측값이 있는 자료가 수가 원 데이터 자료 수에 비해 매우 적기 때문에 이 결측값을 평균으로 대체해도 결과에서는 별 차이가 안 납니다.

 

 

여기서 결측값은 연구모형에서 들어가 있는 측정변수에만 한합니다. 측정변수는 구조방정식 그림에서 네모로 그리는 변수를 말합니다.

 

통상 구조방정식에서는 성별이나 연령 등 인구통계변인은 모형의 변수가 아니기 때문에 이런 변수들은 결측값이 있어도 됩니다. 그러나 구조방정식에도 성별을 통제변수로 사용한다면 이 경우 성별 변수에 있는 결측값의 자료는 삭제하거나 아니면 적당히 1이나 2 값을 주면 됩니다. 앞에서도 이야기했지만 몇 백개 자료에서 성별에서 사람들이 응답을 안하는 경우는 있어도 한 두 개 밖에 없기 때문에 이 결측값은 적당히 남자, 여자 집어넣어도 분석 결과에는 거의 차이가 없습니다.

 

측정변수로 설문문항 변수를 사용했다면 이 설문문항의 결측값을 처리해야 하고요, 설문문항을 측정변수로 사용하지 않고 하위영역 변수를 사용한다면 이 하위영역 변수에 있는 결측값만 처리하면 됩니다. 이 하위영역 변수는 설문문항 변수들의 평균으로 하기 때문에 설문문항 자체에 결측값이 있어도 하위영역 변수에는 결측값이 생기기 않습니다. 따라서 구조방정식 연구모형의 측정변수가 설문문항 변수가 아니라 하위영역 변수로 되어 있으면 결측값 문제는 신경쓰지 않아도 됩니다.

 

아래 표는 그 예입니다. 설문a1, 설문a2, 설문a3는 하위영역 변수A라는 변수를 측정하기 위해 만든 설문문항입니다. 2번째 자료는 설문a2에서 결측값이 있고, 3번째 자료는 설문a1과 설문a2 등 2개의 결측값이 있습니다. 그러나 하위영역 변수는 결측값이 전혀 없습니다. 왜냐하면 2번째 자료는 2로 나누고, 3번째 자료는 1로 나눠 평균값을 구했기 때문입니다. 따라서 구조방정식에 나오는 측정변수가 전부 하위영역 변수이면 결측값 문제는 전혀 신경쓰지 않아도 됩니다.

 

설문a1

설문a2

설문a3

하위영역변수A

3

4

5

4

3

.

5

4

.

.

3

3

그러나 하위영역 변수가 없는 경우, 대표적으로 만족도, 구전의도, 재구매의도 이런 변수들은 하위영역 변수가 없기 때문에 설문문항 자체를 측정변수로 사용해야 합니다. 따라서 이런 경우 데이터에서 해당하는 설문문항을 찾아 결측값이 있는지 확인하고 있는 경우 그 자료는 삭제하거나 평균값으로 대체하는 것이 좋습니다.

 

    

 

2. 오차항

 

구조방정식을 처음 할 때 가장 많이 범하는 실수가 오차항을 붙이지 않는 것입니다.

 

구조방정식 모형에서 종속변수 역할을 하는 잠재변수에는 오차항을 붙여야 합니다. 매개변수도 독립변수와의 관계에서는 종속변수이기 때문에 매개변수 잠재변수에도 오차항을 붙여야 합니다. 이 작업은 본인이 직접해야 합니다. 측정변수에 오차항이 붙는 것은 AMOS에서 자동적으로 해주는 메뉴가 있지만 이 잠재변수에 오차항을 붙이는 것은 손으로 직접해야 합니다.

 

즉 간단히 이야기해서 구조방정식에서 독립변수 역할을 하는 잠재변수빼고 모두 오차항을 붙여야 합니다. 다음 그림을 한번 보죠.




 

 

위 구조방정식 연구모형 그림에서 c1, c2는 매개변수, D는 종속변수라 이 잠재변수에는 오차항 e1, e2, e3를 그려줘야 합니다. 그리고 회귀계수 1을 지정해야 합니다.

 

구조방정식의 수학적 모형은 회귀분석 식을 연립방정식으로 쓴 것으로 보면 됩니다.

 

 

C1=b10+b11*A+b12*B+1*e1

C2=b20+b21*A+b22*B+b23*C1+1*e2

D= b30+b31*A+b32*B+b33*C1+b34*C2+1*e3

 

위 연립방정식 회귀분석 식에서 마지막에 e1, e2, e3 오차항이 붙게 되는데 이걸 그림에 그려 넣는 것입니다.

 

    


 

3. 변수 이름


잠재변수 이름을 적을 때 데이터에 있는 변수 이름을 사용하면 안 됩니다. 즉 네모인 측정변수는 데이터에 그 이름이 있어야 하지만 타원형인 잠재변수 이름은 데이터에 이 변수 이름이 있으면 안됩니다.

    



 

4. 표준회귀계수

 

구조방정식 분석을 할 때 효과 분석이나 조절효과(다집단 분석)을 할 때 Bootstrap 방식을 사용합니다. 이럴 경우 표준회귀계수 계산을 하지 말라고 하는 에러 메시지가 뜨는 경우가 많이 나옵니다.

 

그러나 인과모형 분석을 할 때 통상 표에 표준회귀계수를 삽입을 하는 것이 일반적입니다.

 

즉 인과모형 분석을 하려면 표준회귀계수(standardized estimates)에 체크를 해야 하는데 효과분석이나 조절효과 분석을 할 때는 이 표준회귀계수를 체크하면 안되는 경우가 종종 나옵니다.

 

이 경우는 먼저 인과모형 분석 결과표를 만들 때는 표준회귀계수에 체크를 하고 돌립니다. 여기서 나온 결과를 가지고 인과모형 검증을 합니다.

 

그리고 효과분석을 할 때는 표준회귀계수 체크를 하지 않고, Bootstrap를 하라고 지시를 합니다. 이 작업들은 AMOS에서 View==> Analysis Properties와 Bootstrap에서 설정을 하면 됩니다. 그리고 Bootstrap에서 Bootstap 회수 값도 올리고 신뢰수준 값도 90을 95로 값을 올려주는 것이 좋습니다.

 

 

그럼 여기서 무슨 문제가 생길가요?

 

통상 효과분석을 할 때도 인과모형 분석에서 나온 표준회귀계수 값을 주로 사용합니다. 그런데 표준회귀계수를 체크하지 않으면 직접효과, 간접효과(매개효과), 총효과를 표준회귀계수 값으로 표현을 할 수 없지 않느냐 하는 의혹을 제기할 수 있습니다.

 

답은 아무런 문제가 없습니다. 표준회귀계수 칸에 체크하지 않아도 충분히 직접효과, 간접효과, 총효과 값을 표준회귀계수 값으로 표현할 수 있습니다.

 

여기서 여러분이 이해를 해야 할 점이 몇 개 있습니다.

 

1) 인과모형에서 나오는 회귀계수 값은 모두 직접효과 크기입니다.

 

2) 매개효과(간접효과)는 비표준회귀계수이든지 표준회귀계수이든지 두 개, 또는 세 개의 값을 곱하면 매개효과 크기를 구할 수가 있습니다.

 

다음 그림을 한번 보죠

 

 

 

인과관계 모형을 돌렸더니 회귀계수 값이 위의 그림처럼 나왔습니다. 이게 비표준이든 표준이든 관계없습니다. 앞에서 말했지만 위에서 나온 결과는 모두 직접효과입니다. 이 경우 매개효과는 (A==>C)*(C==>D) 이렇게 곱해주면 됩니다. 계속 강조하지만 이 값들이 비표준이든 표준이든 아무런 관계가 없습니다. 단지 해석에서 차이가 있는 것입니다.

 

비표준회귀계수 값을 사용하면 독립변수 원 척도가 한 단위 올라갈 때 매개변수를 걸쳐 종속변수가 몇 척도 올라가는가 내려가는가 하는 것이고

 

표준회귀계수 값을 사용하면 독립변수 A가 1*표준편차 올라갈 때 매개변수를 걸쳐 종속변수가 몇 표준편차 정도 올라가는가 또는 내려가는가를 나타내는 것입니다.

 

그럼 위 인과모형 결과를 가지고 효과분석을 하면 다음과 같습니다. 비표준이든 표준이든 상관없습니다.

 

독립변수

매개변수

종속변수

직접효과

(A==>D)

간접효과

(A==>C)*

(C*D)

총효과

(직접효과+간접효과)

A

C

D

0.459

0.265*0.124

0.459+

(0.265*0.124)

 

 

3) 그럼 당연히 다음과 같은 의문이 생길 수 있습니다. 그럼 도대체 왜 Bootstrap을 사용합니까.



Bootstap 사용하지 않아도 인과모형 검증에서 나온 결과로 위의 효과의 크기를 다 구할 수 있는데요.

 

답은 이렇습니다. 우리가 효과의 크기는 구할 수는 있지만 이 효과의 크기가 유의적인지 아닌지(즉 0인지 아닌지)는 알 수가 없습니다. 즉 Bootstap 하라는 것은 위의 매개효과(간접효과), 또 총효과의 크기가 유의적인지 알기 위해서, 즉 p 값을 구하기 위해서 하는 것입니다. 따라서 이 p값을 구하는데는 표준회귀계수를 체크하던 안하던 아무런 관계가 없습니다.

 

  

  

4. 매개변수가 2개 이상인 경우 효과분석

 

AMOS에서 또 하는 골치 아픈 문제가 매개변수가 2개 이상인 경우 각 매개변수별로 매개효과를 구해주지 않는다는 점입니다. 위의 인과관계 모형




 

우리가 알고 싶은 매개효과는 A==>C1==>D, 또는 B==>C1==>D, A==>C2==>D, 또는 B==>C2==>D 각각에 대해서 매개효과(간접효과)를 구하고 싶은데 AMOS에서 이렇게 구해주지 않습니다. AMOS에서 구해주는 것은

 

A==>(C1, C2)==>D, B==>(C1, C2)==>D 이렇게 매개변수가 통째로 들어간 형태의 간접효과만 구해줍니다. 왜 개별 매개변수별로 간접효과를 구하지 않고 매개변수 통째로 이렇게 할까요.

 

이유는 총효과 크기에서 문제가 생기기 때문입니다. 다음 매개변수가 2개인 좀 간단한 모형 그림을 한번 보죠.

 

 

 

 

이 경우 총효과를 구하면 ad+(ac1*c1d+ac2*c2d) 이렇게 됩니다.

 

그러나 매개변수 각각별로 총효과를 구하면

 

A==>C1==>D 경로에서는 총효과는 ad+(ac1*c1d)

A==>C2==>D 경로에서는 총효과는 ad+(ac2*c2d)

 

그럼 A==>D로 가는 총효과는 각각의 총효과를 더하면 되니까

 

ad+(ac1*c1d)+ad+(ac2*c2d)=(2*ad)+(ac1*c1d+ac2*c2d)

 

이 되어 직접효과가 2번이나 들어가게 됩니다. 그래서 각각의 매개효과(간접효과)를 구하지 않는 것입니다.

 

 

이 경우 지도교수가 각각의 매개효과를 구하라고 요구하는 경우가 있습니다. 이 경우 할 수 있는 방법이 Sobel z를 구하거나 팬텀(Phantom variable)를 이용하는 방법입니다.

 

Sobel z는 구조방정식 책에 보면 공식이 다 나옵니다. 그 공식을 보고 본인이 직접 z 값을 구하고 p 값을 구하여야 합니다. p 값은 표준정규분포 값을 보면 됩니다. 이 경우 비표준회귀계수 값을 사용해야 합니다.

 

팬텀변수는 구조방정식 모형에 가상의 인위적인 변수를 추가해서 구하는 방법입니다. 이건 인터넷에 검색하면 하는 방법이 나옵니다. 아니면 전문가에게 의뢰를 하든가요. 제가 보니까 매개변수가 3개 이상이면 이 방법은 안되는 것 같습니다. 매개변수가 3개 이상인 경우 인터넷에 검색해도 하는 방법이 안 나오네요.