데이터과학 삼학년

구조방정식(SEM ; structural equation modeling) 파이썬 코드 본문

Statistical Learning

구조방정식(SEM ; structural equation modeling) 파이썬 코드

Dan-k 2023. 3. 21. 13:00
반응형

Structural Equation Modeling (SEM)

- 통계학에서 사용되는 다중 변수 분석 기법으로, 여러 변수 간의 인과 관계를 모델링하여 분석하는 방법

- SEM은 변수들 간의 복잡한 상호작용과 인과관계를 모델링하고, 모델의 적합성을 평가하고 예측력을 검증할 수 있는 장점이 있음

- SEM은 일반적으로 두 가지 유형의 모델을 포함

  • 첫 번째 유형은 측정 모델 : 다양한 변수들 간의 상호작용을 설명하기 위한 구조적 모델을 구축하기 전에 측정 방법론을 검증하기 위해 사용
  • 두 번째 유형은 구조적 모델 : 변수들 간의 인과 관계를 포함하며, 관심 변수와 비관심 변수 간의 상호작용도 고려할 수 있음

- SEM은 통계적 모델링에 매우 유용하며, 교육 연구, 경영 연구, 사회과학 등에서 사용

반응형

SEM Python code

- statsmodels 패키지의 sem 함수, lavaan, semopy라는 패키지가 있음

semopy 사용 예시

# semopy 패키지 설치
!pip install semopy

# 필요한 패키지 가져오기
import semopy
import numpy as np
import pandas as pd

# 데이터 생성
np.random.seed(123)
n_samples = 1000
x1 = np.random.normal(0, 1, n_samples)
x2 = np.random.normal(0, 1, n_samples)
x3 = np.random.normal(0, 1, n_samples)
y1 = 0.5 * x1 + np.random.normal(0, 1, n_samples)
y2 = 0.3 * x2 + np.random.normal(0, 1, n_samples)
y3 = 0.7 * x3 + np.random.normal(0, 1, n_samples)

# 데이터 프레임 생성
data = pd.DataFrame({'X1': x1, 'X2': x2, 'X3': x3, 'Y1': y1, 'Y2': y2, 'Y3': y3})

# 모형 생성
model = '''
# 관찰 변수
Y1 ~ beta1*X1
Y2 ~ beta2*X2
Y3 ~ beta3*X3

# 잠재 변수
X1 ~ 1*X1
X2 ~ 1*X2
X3 ~ 1*X3
'''

# 모형 적합
fit = semopy.Model(model, data=data).fit()

# 결과 요약
print(fit.summary())
                  Model Fit Summary                           
========================================================================
Number of observations                        1000
Number of missing patterns                     0
Number of independent variables                 3
Degrees of freedom                               3
Chi-square                                179.870
P-value (Chi-square)                         0.000
Root Mean Square Error of Approximation        0.051
Comparative Fit Index                          0.976
Standardized Root Mean Square Residual         0.037
========================================================================

모형 적합도 판단

- 아래 기준에 따라 판단하면 된다고 함

GFI, CFI, TLI > 0.9

RMSEA < 0.1

RMR < 0.05

(출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=gracestock_1&logNo=120200806864)

728x90
반응형
LIST
Comments