# MAMMOS와 IBM SPSS Amos 22 실측 비교: 공식 ML 예제 30개 실행일: 2026-11-12 (한국 시간) · MAMMOS 커밋: `e297db4b4657904ac2c1de42cd9e08e0620d69b0` · 브라우저: Chrome/157.0.8103.40 **두 프로그램에서 30개 모두 계산을 완료했다. 비교 항목 1513/1514 (99.93%)가 절대오차 0.001 이내였고, 29/30개 모형에서 모든 비교 항목이 이 기준을 충족했다.** > 공유 문구: IBM SPSS Amos 22의 공식 최대우도(ML) 예제 30개를 비교한 결과, MAMMOS는 30개 모두 브라우저에서 오프라인으로 계산했으며, 추정값·표준오차·표준화 경로계수·적합도 등 1,514개 비교 항목 중 1,513개(99.93%)가 절대오차 0.001 이내로 일치했습니다. ## 항목별 일치율 | 항목 | 절대오차 ≤ 0.001 | 절대오차 ≤ 0.000001 | 양쪽에 값이 있는 항목의 최대 절대오차 | | --- | ---: | ---: | ---: | | 비표준화 자유 모수 추정값 | 549/549 (100.00%) | 465/549 (84.70%) | 1.280e-4 | | 표준오차 (SE) | 549/549 (100.00%) | 540/549 (98.36%) | 1.261e-5 | | 표준화 경로계수 | 165/165 (100.00%) | 164/165 (99.39%) | 1.053e-6 | | 표본 수·모수 수·적합도 | 250/251 (99.60%) | 250/251 (99.60%) | 2.763e-10 | | 전체 | 1513/1514 (99.93%) | 1419/1514 (93.73%) | 1.280e-4 | 위 기준으로 모든 항목이 일치한 모형은 각각 **29/30 (96.67%)**와 **14/30 (46.67%)**였다. 양쪽 수치를 같은 방법으로 소수점 셋째 자리까지 반올림해 비교하면 전체 **1503/1514 (99.27%)**가 같았다. 이 반올림 비교에는 값 누락을 불일치로 포함했고, 0과 −0은 같다고 보았다. ## 적합도 지표별 결과 | 지표 | 절대오차 ≤ 0.001 | 최대 절대오차 | | --- | ---: | ---: | | 표본 수 (N) | 30/30 (100.00%) | 0 | | 자유 모수 수 | 30/30 (100.00%) | 0 | | 카이제곱 (χ²) | 30/30 (100.00%) | 2.763e-10 | | 자유도 (df) | 30/30 (100.00%) | 0 | | 카이제곱 p값 | 24/24 (100.00%) | 1.996e-10 | | CFI | 29/29 (100.00%) | 1.842e-12 | | TLI | 23/24 (95.83%) | 2.808e-12 | | RMSEA | 24/24 (100.00%) | 2.249e-12 | | AIC | 30/30 (100.00%) | 2.763e-10 | 절대오차 0.001 기준에서 벗어난 항목은 **Ex03의 TLI 1건**이었다. Amos 보고서에는 `0.000`, MAMMOS 결과에는 값 없음(`null`)으로 기록됐다. 이 예제의 기본 모형과 독립 모형은 같은 χ²와 자유도를 반환했다. 양쪽 모두 수치가 있는 항목 중 가장 큰 차이는 **Ex11-a의 두 번째 집단 weight 분산**이었다. Amos 588.6050937198, MAMMOS 588.6049657398, 절대차 0.0001279800. ## 모형별 실제 결과 | Amos 공식 예제 | 집단 | N | df | Amos χ² | MAMMOS χ² | 일치 항목 (≤ 0.001) | 최대 절대오차 | | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | Ex01 | 1 | 40 | 0 | 0.000000052 | 0.000000052 | 26/26 | 1.492e-13 | | Ex01-a | 1 | 40 | 0 | 0.000000000 | 0.000000000 | 26/26 | 1.124e-7 | | Ex02 | 1 | 40 | 3 | 6.276238610 | 6.276238610 | 29/29 | 4.016e-8 | | Ex03 | 1 | 40 | 1 | 0.347735149 | 0.347735149 | 11/12 (값 누락 1) | 8.895e-11 | | Ex04 | 1 | 98 | 0 | 0.000000000 | 0.000000000 | 29/29 | 8.898e-8 | | Ex05-a | 1 | 98 | 14 | 10.334706259 | 10.334706259 | 64/64 | 3.708e-8 | | Ex05-b | 1 | 98 | 22 | 26.967015169 | 26.967015169 | 57/57 | 3.715e-8 | | Ex06-a | 1 | 932 | 6 | 71.543773720 | 71.543773720 | 39/39 | 1.054e-5 | | Ex06-b | 1 | 932 | 5 | 6.383423210 | 6.383423210 | 50/50 | 2.215e-6 | | Ex06-c | 1 | 932 | 8 | 7.500769457 | 7.500769457 | 50/50 | 4.210e-6 | | Ex07 | 1 | 209 | 2 | 2.761102320 | 2.761102319 | 53/53 | 6.691e-6 | | Ex08 | 1 | 73 | 8 | 7.852893690 | 7.852893690 | 41/41 | 1.101e-6 | | Ex09-a | 1 | 213 | 3 | 33.214656862 | 33.214656862 | 39/39 | 7.735e-7 | | Ex09-b | 1 | 213 | 2 | 2.684270633 | 2.684270633 | 41/41 | 1.147e-6 | | Ex09-c | 1 | 213 | 3 | 55.396422403 | 55.396422403 | 39/39 | 1.108e-5 | | Ex10-a | 2 | 80 | 0 | 0.000000000 | 0.000000000 | 18/18 | 4.796e-14 | | Ex10-b | 2 | 80 | 3 | 4.587994556 | 4.587994556 | 21/21 | 1.590e-10 | | Ex11-a | 2 | 416 | 4 | 3.183332306 | 3.183332306 | 97/97 | 1.280e-4 | | Ex11-b | 2 | 416 | 10 | 9.493278747 | 9.493278747 | 97/97 | 1.032e-4 | | Ex11-c | 2 | 416 | 21 | 48.977231785 | 48.977231785 | 93/93 | 8.124e-7 | | Ex12-a | 2 | 145 | 16 | 16.479601381 | 16.479601381 | 73/73 | 1.894e-5 | | Ex12-b | 2 | 145 | 20 | 18.291578062 | 18.291578062 | 73/73 | 7.943e-6 | | Ex13-a | 2 | 80 | 3 | 4.587994556 | 4.587994556 | 29/29 | 5.639e-8 | | Ex13-b | 2 | 80 | 5 | 19.266555356 | 19.266555356 | 29/29 | 2.916e-7 | | Ex14 | 1 | 98 | 0 | 0.000000000 | 0.000000000 | 37/37 | 2.981e-8 | | Ex15-a | 2 | 145 | 24 | 22.593396401 | 22.593396401 | 101/101 | 3.399e-6 | | Ex15-b | 2 | 145 | 26 | 30.623586736 | 30.623586736 | 97/97 | 4.078e-6 | | Ex16-a | 2 | 213 | 6 | 34.774970281 | 34.774970281 | 75/75 | 3.081e-6 | | Ex17 | 1 | 73 | 8 | 11.546851694 | 11.546851694 | 53/53 | 1.666e-10 | | Ex18-a | 2 | 80 | 0 | -0.000000000 | 0.000000000 | 26/26 | 3.541e-6 | ## 실행 및 판정 기준 - Amos 22에 포함된 공식 `.amw` 예제 30개를 목록으로 고정했다. 단일 집단 공분산 ML 15개, 다집단 공분산 ML 7개, 평균·절편 포함 ML 6개, 결측치 포함 FIML 2개다. 공분산/평균 비교, CFA와 구조모형이 포함된다. 데이터셋을 공유하는 예제가 있어 독립적인 30개 데이터셋을 의미하지는 않는다. - 설치된 Amos Graphics 22에서 원래 경로도를 열고 공식 플러그인 API `pd.AnalyzeCalculateEstimates()`로 계산했다. 모든 모형의 새 `.AmosOutput`에 최소값을 찾았다는 결과가 기록됐다. 출력 표의 표시 문자열보다 `x` 속성에 저장된 반올림 전 숫자를 우선 사용했다. - MAMMOS는 로컬 정적 서버에서 앱을 한 번 로드한 뒤 Chrome 네트워크를 오프라인으로 바꿨다. 브라우저 파일 입력으로 원본 경로도와 예제 자료를 연결하고 WebMCP `amos_fit_ml`, `amos_results`로 분석·조회했다. 오프라인 전환 후 브라우저 네트워크 요청 0건, 정적 서버에 도달한 요청 0건이었다. - 양쪽에서 사용한 경로도·자료 파일 바이트의 SHA-256을 비교했다. Excel 자료는 경로도에 지정된 시트, 다집단 모형은 지정된 집단별 자료를 선택했다. 모수는 집단·유형·변수명·경로 방향으로 연결했다. 공분산은 변수 순서를 무시했다. - 추정값·표준오차는 자유 모수의 출력 행을 집계했다. 다집단에서 제약을 공유하더라도 집단별 보고 행을 각각 센다. 표준화 경로계수는 Amos가 표에 출력한 행을 비교했다. 양쪽 모두 값이 없는 적합도 항목은 분모에서 제외했고, 한쪽만 값이 있으면 불일치로 집계했다. 표본 수·자유 모수 수·자유도는 정수 완전 일치만 인정했다. - 계산 완료는 해의 통계적 타당성을 뜻하지 않는다. Ex16-a는 양쪽 모두 계산을 마쳤지만 Amos에서 음의 분산, MAMMOS에서 허용 불가능한 분산 구조 경고가 나왔다. - 이 수치는 선택한 30개 ML/FIML 예제의 지정 비교 항목에 한정된다. Bootstrap, Bayesian, 비ML 추정, 모든 출력표와 PDF의 일치율은 이 실험에서 측정하지 않았다. ## 원시 자료와 재현 - [comparison.json](./comparison.json): 모형별 집계와 각 비교 항목의 Amos 원시값, MAMMOS 원시값, 절대오차 및 허용오차 판정. - [browser-run.json](./browser-run.json), `browser/Ex*.json`: Chrome 실행 정보와 WebMCP 응답 원본. - [native-run.log](./native-run.log), `native/Ex*.AmosOutput`: Amos 실행 기록과 원본 보고서. 원본 보고서에는 이 PC의 로컬 경로가 포함된다. - [model-ids.txt](./model-ids.txt), [NativeBenchmark.cs](./NativeBenchmark.cs), [browser-benchmark.mjs](./browser-benchmark.mjs), [compare.mjs](./compare.mjs): 실행 대상과 수집·비교 코드. - Amos 22가 설치된 Windows에서 예제와 자료 파일을 `native/`에 복사하고, 32비트 .NET Framework C# 컴파일러로 네이티브 러너를 빌드한다. `AmosGraphics.dll` 및 WPF의 `PresentationFramework.dll`, `PresentationCore.dll`, `WindowsBase.dll`, `System.Xaml.dll`을 참조한다. 러너에 목록 순서대로 각 `.amw`의 절대경로를 넘겨 표준출력을 `native-run.log`에 저장한다. 이후 `node browser-benchmark.mjs`, `node compare.mjs`, `node report.mjs`를 실행한다.