STATS & PAPERS
lavaangui무료 · 구조방정식 · 브라우저에서 바로

lavaangui로 구조방정식 그리기

lavaangui 웹앱(lavaangui.org)2026년 11월 화면 확인예시 데이터는 가상
WORKFLOW
  • 1데이터 불러오기
  • 2경로도 그리기
  • 3자동 보완 확인
  • 4추정하기
  • 5읽고 저장하기
SEse1se2se3MOmo1mo2mo3ACac1ac2ac3

이 강의에서 할 일

  • lavaangui가 어떤 도구인지, Amos와 무엇이 다른지 안다.
  • CSV 데이터를 불러와 요인 3개짜리 측정모형을 그린다.
  • 요인 사이에 경로를 그려 구조모형을 완성한다.
  • 추정 결과와 적합도를 읽고, 그림과 코드를 저장한다.

시작하기 전에

  • 인터넷 브라우저(설치 없이 웹에서 바로 씁니다)
  • CSV 형식의 데이터(오른쪽의 실습 자료)
  • 확인적 요인분석과 경로를 그리는 기본 개념

lavaangui는 어떤 도구인가

lavaangui는 R의 구조방정식 패키지 lavaan을 마우스로 쓰게 해 주는 그래픽 인터페이스입니다. Amos처럼 경로도를 그려서 모형을 지정하면, 그 그림에 해당하는 lavaan 코드가 자동으로 만들어지고, 그 모형을 데이터로 추정해 적합도와 계수까지 보여 줍니다. 무료이며 브라우저에서 바로 쓸 수 있습니다.

Amoslavaangui
모형 지정경로도를 그림경로도를 그림(그림에서 lavaan 코드가 자동 생성)
비용유료(IBM SPSS 제품군)무료(오픈소스, GPL)
실행 환경윈도우 전용브라우저에서 웹앱으로 실행. R을 설치해 내 컴퓨터에서 실행할 수도 있음
추정 엔진AmosR의 lavaan 패키지
데이터 파일SPSS 파일(.sav)CSV, SPSS(.sav), 엑셀(.xlsx), .rds, .txt
결과를 다시 쓰기Amos 파일로 저장lavaan 코드가 그대로 나와 R에서 다시 실행 가능

Amos와 데이터 형식·결과 정리 방식은 다르지만 그리는 흐름은 비슷해서, Amos 강의를 이미 보았다면 쉽게 따라올 수 있습니다. 처음이라면 이 강의만으로도 시작할 수 있습니다.

먼저 알아 둘 것
  • 앱 안에 "lavaangui is BETA software"라는 안내가 표시됩니다. 베타 소프트웨어이므로, 논문에 쓰는 결과는 코드를 R에서 다시 실행해 한 번 대조하는 것이 안전합니다.
  • 웹앱(lavaangui.org)은 연구 자료를 외부 서버(shinyapps.io)로 올려서 돌립니다. 개인정보가 들어 있거나 외부 반출이 안 되는 자료는 R에 패키지를 설치해 내 컴퓨터에서 실행하세요.
  • 제작자는 호스팅된 웹 서버가 내 컴퓨터보다 느릴 수 있어 복잡한 모형은 오래 걸릴 수 있다고 안내합니다.

개발자는 라이덴 대학교의 Julian D. Karch이며, 사용법을 소개한 논문이 Structural Equation Modeling 32권 6호(2025)에 실려 있습니다.

열기와 화면 구성

주소창에 lavaangui.org를 입력하면 웹앱이 열립니다. 처음 열 때는 몇 초 걸릴 수 있습니다.

FileEditViewAutomatically...EstimationApply LayoutGrid OptionsHelp→↔□○⬡△Multiple VariablesFactorCompositeGrowth캔버스: 여기에 모형을 그립니다오른쪽 클릭: 메뉴o l c i: 변수 만들기Space / X + 드래그: 단방향 화살표Alt + 드래그: 양방향 화살표Ctrl + 클릭: 여러 개 선택Backspace: 지우기Show DataUser ModelAutocompleted ModelEstimatesMore Results12345
  • 1상단 메뉴: File, Edit, View, Estimation 등
  • 2도구 줄: 화살표, 변수 도형, Factor 단추
  • 3캔버스: 경로도를 그리는 곳
  • 4오른쪽 패널: 단축키 안내, 코드, 결과
  • 5아래쪽 탭: 모형과 결과 전환
처음 연 화면입니다. 오른쪽에 단축키 안내와 표준 작업 순서가 나옵니다.
영역내용
상단 메뉴File, Edit, View, Automatically..., Estimation, Apply Layout, Grid Options, Help
도구 줄→(단방향 화살표) ↔(양방향 화살표) □(관측변수) ○(잠재변수) ⬡ △ 도구와 Multiple Variables, Factor, Composite, Growth 단추. 데이터를 불러오면 변수 이름 칩이 이어서 나타납니다.
캔버스경로도를 그리는 가운데 영역
오른쪽 패널처음에는 단축키 안내, 모형을 그리면 lavaan 코드, 추정하면 lavaan 결과 요약이 나옵니다.
아래쪽 탭Show Data · User Model · Autocompleted Model · Estimates · More Results

앱에 표시되는 단축키

조작하는 일
오른쪽 클릭클릭한 곳에 맞는 메뉴를 엽니다.
o · l · c · i마우스 위치에 관측변수(o), 잠재변수(l), 복합변수(c), 절편(i)을 만듭니다.
Space 또는 X를 누른 채 드래그변수와 변수를 연결하는 단방향 화살표를 그립니다.
Alt를 누른 채 드래그양방향 화살표(공분산)를 그립니다.
Ctrl을 누른 채 클릭여러 요소를 선택합니다. 캔버스에서 Ctrl+클릭하면 선택 상자가 켜집니다.
Backspace선택한 요소를 지웁니다.
Ctrl+Z · Ctrl+Shift+Z되돌리기 · 다시 하기

맥에서는 Ctrl 대신 Cmd, Alt 대신 Option을 씁니다. 앱이 안내하는 표준 작업 순서는 ① 데이터 불러오기 → ② 모형 그리기 → ③ 자동 보완된 모형 확인 → ④ 추정입니다. 이 강의도 이 순서로 갑니다.

예시 모형과 데이터

가상 데이터 300명의 7점 척도 응답을 씁니다. 자기효능감(se1~se3), 학습동기(mo1~mo3), 학업성취(ac1~ac3)를 각각 문항 3개로 재고, 자기효능감 → 학습동기 → 학업성취로 이어지는 모형을 그립니다.

요인문항의미
SE(자기효능감)se1, se2, se3자신의 학습 능력에 대한 믿음
MO(학습동기)mo1, mo2, mo3공부하려는 의욕
AC(학업성취)ac1, ac2, ac3성취에 대한 자기평가

구조는 "측정모형(요인과 문항의 관계)"과 "구조모형(요인 사이의 경로)"으로 나뉩니다. lavaangui에서는 앞의 것을 Factor 단추로, 뒤의 것을 화살표로 그립니다.

데이터는 모두 연습용 가상 데이터입니다. 결과 수치는 실제 연구 결과가 아닙니다.

따라 하기: 그려서 추정하기

  1. 1
    File → Load Data로 데이터를 불러옵니다.
    CSV, .sav, .xlsx, .rds, .txt 파일을 고를 수 있습니다. 불러오면 데이터 보기 창(Data Viewer)이 열리고, 열 이름을 더블클릭하면 이름을 바꿀 수 있습니다. 이름은 lavaan 코드에 그대로 쓰이므로 영문·숫자로 정리해 두는 것을 권합니다.
    File
    New Model
    Reset
    Load Model
    Load Data
    Load Model and Data
    Save Model
    Save Model and Data
    Remove Data
    Export Diagram to PNG · JPG · SVG · PDF
    Data Viewer
    se1se2se3mo1mo2mo3ac1ac2ac3
    462546345
    355342345
    233564545
    656666444
    처음 4행만 표시 · 전체 300행 · 가상 데이터
  2. 2
    Factor 단추를 캔버스로 끌어다 놓습니다.
    Select Variables 창이 열립니다. 이 요인의 문항을 고릅니다(se1을 클릭하고 se3를 Shift+클릭). OK를 누르면 잠재변수(원)와 문항(사각형), 그리고 요인에서 문항으로 가는 화살표가 한꺼번에 생깁니다.
    Select Variables
    이 요인에 쓸 문항을 고르세요
    se1se2se3mo1mo2mo3ac1ac2ac3
    CancelOK
    f1se1se2se3
    f1 =~ se1 + se2 + se3
    요인이 만들어지면 오른쪽 패널에 f1 =~ se1 + se2 + se3 코드가 생깁니다. 사용한 문항은 도구 줄의 변수 칩에서 빠집니다.
  3. 3
    같은 방식으로 학습동기(mo1~mo3), 학업성취(ac1~ac3) 요인을 만듭니다.
    Factor 단추를 한 번씩 더 끌어다 놓고 문항을 고릅니다. 놓는 위치는 나중에 마우스로 옮길 수 있으니, 서로 겹치지 않게만 놓습니다.
  4. 4
    요인과 문항을 마우스로 끌어 보기 좋게 정리합니다.
    왼쪽에서 오른쪽으로 자기효능감, 학습동기, 학업성취가 이어지게 놓았습니다. 노드를 다른 노드 위에 겹쳐 놓으면 의도와 다르게 합쳐질 수 있으니, 그림이 이상해지면 Ctrl+Z로 한 단계 되돌립니다.
  5. 5
    X 키(또는 Space)를 누른 채 요인에서 요인으로 드래그해 경로를 그립니다.
    자기효능감에서 학습동기로, 학습동기에서 학업성취로 그립니다. 경로를 하나 그릴 때마다 오른쪽 패널의 regressions 아래에 MO ~ SE, AC ~ MO 같은 회귀식이 추가됩니다. Alt를 누른 채 그리면 양방향 화살표(공분산)가 됩니다.
  6. 6
    요인을 오른쪽 클릭해 이름을 바꿉니다.
    Rename Variable을 고르고 새 이름(SE, MO, AC)을 입력한 뒤 Rename을 누릅니다. 같은 메뉴에 Delete Variable, Change to Composite, Change to Observed, Change Background Color, Change Border Width, Change Font Size, Set Display Name도 있습니다.
    요인을 오른쪽 클릭
    Rename Variable
    Delete Variable
    Change to Composite
    Change to Observed
    Change Background Color
    Change Border Width
    Change Font Size
    Set Display Name
  7. 7
    User Model 탭에서 내가 그린 모형을 확인합니다.
    다 그린 그림과, 그림에서 만들어진 lavaan 코드가 같이 나옵니다. 아래 코드가 오른쪽 패널의 내용입니다.
    SEse1se2se3MOmo1mo2mo3ACac1ac2ac3
    내가 그린 모형(User Model)입니다.
    library(lavaan)
    data <- read.csv("sample_sem.csv")
    model <-'
    # measurement model
     SE =~ se1 + se2 + se3
     MO =~ mo1 + mo2 + mo3
     AC =~ ac1 + ac2 + ac3
    
     # regressions
     MO ~ SE
     AC ~ MO
    '
    fit <- lavaan(model, data)   # 앱은 이 뒤에 자동 옵션이 길게 붙은 형태로 보여 줍니다
  8. 8
    Autocompleted Model 탭에서 lavaan이 자동으로 보탠 것을 확인합니다.
    점선과 둥근 양방향 화살표가 추가됩니다. 요인마다 첫 번째 문항의 요인적재량이 1로 고정(@1)되어 요인의 척도를 정하고, 요인과 문항의 분산(오차분산)이 모형에 들어갑니다. 상단의 Automatically... 메뉴에서 이 자동 보완 항목을 끄거나 켤 수 있습니다.
    SE1se1se2se3MO1mo1mo2mo3AC1ac1ac2ac3
    Automatically...
    ✓ Fix Factor Loading of First Indicator at 1
    ✓ Include Variances
  9. 9
    Estimates 탭을 눌러 모형을 추정합니다.
    경로도에 추정값이 표시되고, 오른쪽 패널에는 lavaan의 요약 결과가 나옵니다. 데이터를 불러오지 않았거나 모형을 그리지 않으면 이 탭이 비활성(회색)입니다.
    0.5630.477SE1se10.945se20.929se3MO1mo10.942mo21.017mo3AC1ac10.946ac20.808ac3

적합도 읽기

오른쪽 패널 위쪽에서 모형이 어떻게 추정되었는지와 적합도가 나옵니다. 이번 예시의 값은 다음과 같습니다.

CFI1.000✓ .95 이상
RMSEA0.000✓ .05 이하
SRMR0.043✓ .08 이하
χ² 검정 p.527✓ .05 초과
항목값읽는 법
추정 방법 · 표본 수ML · N = 300Estimator 기본값은 연속형 자료의 최대우도(ML)입니다.
모수 개수20추정한 계수의 개수
χ²(df), p23.865 (25), .527p가 .05보다 크면 모형과 자료가 크게 어긋나지 않는다는 뜻
CFI / TLI1.000 / 1.0021에 가까울수록 좋음
RMSEA [90% CI]0.000 [0.000, 0.044]작을수록 좋음
SRMR0.043작을수록 좋음
AIC / BIC8366.201 / 8440.277모형끼리 비교할 때 사용

흔히 CFI·TLI는 .90~.95 이상, RMSEA는 .05~.08 이하, SRMR은 .08 이하를 기준으로 삼습니다. 절대적인 기준은 아니므로 지도교수님이나 해당 학회가 쓰는 기준을 함께 확인하세요. 이 예시는 가상 데이터라 적합도가 매우 좋게 나왔습니다.

계수 읽기

경로도의 숫자는 기본적으로 비표준화 계수입니다. 논문에 흔히 쓰는 표준화 계수를 보려면 상단 View → Standardized Estimates를 켭니다.

.569.521SE.768se1.752se2.705se3MO.799mo1.718mo2.757mo3AC.715ac1.686ac2.609ac3
View → Standardized Estimates를 켜면 경로도의 숫자가 표준화 값으로 바뀝니다.
View
Standardized Estimates
Estimate
Confidence Interval
Estimate + p-value (stars)
Estimate + Standard Error
Confidence Level
Number Digits

표로 자세히 보려면 아래쪽 More Results를 엽니다. 위쪽에 Parameter Estimates, Factor Scores, Modification indices, Residuals, Exact Test, Wald Test, lavInspect 탭이 있습니다. Parameter Estimates에서는 표준화 여부, 신뢰수준(기본 0.95), 소수 자릿수를 고를 수 있습니다.

More Results
Parameter EstimatesFactor ScoresModification indicesResidualsExact TestWald TestlavInspect
◉ Standardized○ Unstandardized신뢰수준 0.95소수 자릿수 선택
TIP Standardized를 고르면 est.std 열이 표준화 계수입니다.

구조 경로 (예시 결과)

경로bSEzβ95% CI(b)
SE → MO0.5630.0757.48.569[0.416, 0.711]
MO → AC0.4770.0746.44.521[0.332, 0.622]

측정모형: 요인적재량

문항bzβ
se1 (기준 문항)1 (고정)—.768
se20.94510.84.752
se30.92910.49.705
mo1 (기준 문항)1 (고정)—.799
mo20.94211.48.718
mo31.01711.94.757
ac1 (기준 문항)1 (고정)—.715
ac20.9468.20.686
ac30.8087.85.609

기준 문항(첫 문항)은 적재량이 1로 고정되어 있어 z와 p가 비어 있습니다. 앱의 표에서 p value가 0으로 나오는 것은 .001보다 작다는 뜻이므로 논문에는 p < .001로 적습니다.

추정 방법과 옵션 바꾸기

Estimation 메뉴에서 추정 방법을 바꿀 수 있습니다.

Estimation → Estimator
Default
Maximum Likelihood (ML)
Generalized Least Squares (GLS)
Weighted Least Squares (WLS)
Unweighted Least Squares (ULS)
Diagonally Weighted Least Squares (DWLS)
Distributionally-weighted Least Squares (DLW)
Others
메뉴선택지
EstimatorDefault, Maximum Likelihood (ML), Generalized Least Squares (GLS), Weighted Least Squares (WLS), Unweighted Least Squares (ULS), Diagonally Weighted Least Squares (DWLS), Distributionally-weighted Least Squares (DLW), Others
Standard ErrorDefault, Robust, Bootstrap(표본 수 기본 1000)
Missing ValuesListwise Deletion(기본), Full Information Maximum Likelihood (FIML)

7점 척도처럼 단계가 많은 문항은 연속형으로 보고 ML로 추정하는 경우가 많습니다. 3~5단계 정도의 서열 문항은 연구 분야에 따라 DWLS 같은 방법을 쓰기도 하니, 어느 쪽을 쓸지는 선행연구와 지도교수님 기준을 따르세요. 결측이 있으면 기본값(Listwise Deletion)은 결측이 있는 응답자를 통째로 빼므로, 결측이 많을 때는 FIML을 고려합니다.

Estimation 메뉴를 바꾼 뒤에는 Estimates 탭을 다시 눌러 새로 추정합니다.

저장하고 내보내기

File 메뉴에서 작업을 저장하고 그림을 내보냅니다.

메뉴하는 일
Save Model / Save Model and Data그린 모형(과 데이터)을 파일로 저장합니다. 나중에 Load Model, Load Model and Data로 다시 엽니다.
Export Diagram to PNG · JPG · SVG · PDF경로도를 그림 파일로 저장합니다. 논문·발표에는 확대해도 깨지지 않는 SVG나 PDF가 편합니다.
오른쪽 패널의 코드그대로 복사해 R에서 실행하면 같은 모형을 얻습니다. 데이터 파일 경로(read.csv 부분)만 내 파일 위치로 고칩니다.

R에서 쓰는 방법

R에 패키지를 설치하면 내 컴퓨터에서 같은 앱을 실행할 수 있고, 이미 만든 lavaan 모형 결과를 그림으로 볼 수도 있습니다.

install.packages("lavaangui")     # 한 번만
library(lavaangui)

lavaangui()          # 내 컴퓨터에서 웹앱 실행
lavaangui(fit)       # 이미 추정한 lavaan 결과(fit)를 앱으로 불러오기

plot_lavaan(fit)                      # 노드를 끌어 옮길 수 있는 경로도
export_plot(fit, "diagram.png")       # 저장해 둔 배치로 그림 파일 만들기
export_plot(fit, "diagram.pdf", scale = 2)

lavaangui(fit)는 다집단 모형을 지원하지 않습니다. plot_lavaan()은 노드를 옮긴 배치를 저장해 두었다가 다음에 그대로 불러오고, export_plot()은 그 배치로 그림 파일을 만듭니다(그림 형식은 파일 확장자로 정해집니다).

결과를 글로 쓰기 (예시)

아래는 이 가상 데이터 결과를 논문 문체로 쓴 예시입니다.

자기효능감, 학습동기, 학업성취를 잠재변수로 한 구조모형을 최대우도법으로 추정하였다. 모형 적합도는 χ²(25) = 23.87, p = .527, CFI = 1.00, TLI = 1.00, RMSEA = .00(90% CI [.00, .04]), SRMR = .04로 양호하였다. 모든 요인적재량은 유의하였고(표준화 적재량 .61~.80), 자기효능감은 학습동기에 정적 영향을 주었으며(β = .57, p < .001), 학습동기는 학업성취에 정적 영향을 주었다(β = .52, p < .001).

"모든 요인적재량이 유의"라는 문장은 위 요인적재량 표의 z와 p로 확인한 내용입니다. 적합도 기준과 보고 형식은 투고하는 학술지의 지침을 따르세요. 이 강의는 직접 경로까지만 다룹니다.

자주 겪는 문제

증상먼저 확인할 것
앱이 열리지 않거나 화면이 비어 있다처음 열 때는 몇 초 기다립니다. 계속 비어 있으면 새로고침하거나 다른 브라우저로 열어 봅니다.
Factor를 끌어다 놓았는데 변수 목록이 비어 있다데이터를 먼저 불러왔는지, 이미 다른 요인에서 쓴 문항은 아닌지 확인합니다.
요인이 다른 요인과 합쳐진 것 같다Ctrl+Z로 되돌리고, 노드를 겹치지 않는 자리로 옮깁니다.
Estimates 탭이 회색이다데이터를 불러왔는지, 모형을 그렸는지 확인합니다.
추정이 너무 오래 걸린다웹 서버가 느릴 수 있습니다. 복잡한 모형은 R에 패키지를 설치해 내 컴퓨터에서 실행합니다.
한글 변수명이 이상하게 나온다lavaan 코드에 변수 이름이 그대로 들어가므로 영문·숫자 이름을 쓰고, 화면 표시는 Set Display Name으로 바꾸는 방법을 시도합니다.

출처: lavaangui 웹앱 · GitHub (karchjd/lavaangui) · CRAN 패키지 설명서 · Karch (2025), Structural Equation Modeling. 수치는 lavaangui 웹앱을 직접 실행해 가상 데이터로 얻은 것이고, 그림은 앱 화면을 참고해 선명하게 다시 그린 도식입니다. 실제 화면은 글자 크기와 배치가 조금 다를 수 있습니다.

HOME