PSPP 강의 0편 — PSPP는 SPSS를 얼마나 대체할 수 있나

TL;DR
SPSS의 .sav 파일과 .sps 신택스는 GNU PSPP에서 그대로 열리고 그대로 돌아갑니다. 반대 방향도 됩니다. 빈도·교차표·t-검정·분산분석·상관·회귀·로지스틱·신뢰도·요인분석·비모수 검정은 PSPP가 인쇄하는 소수 자리까지 SPSS와 같은 값을 냅니다. 반복측정 GLM, 혼합모형, 편상관, 다항·순서형 로지스틱, 생존분석, 판별분석, Chart Builder 그래프, Python·R 연동은 PSPP에 없고, 돌리려 하면 “not yet implemented”라고 분명하게 알려 줍니다. 학부 통계, 설문 분석, 논문의 기초 분석이라면 PSPP로 충분합니다.

“SPSS 대신 PSPP를 써도 되나요?”라는 질문을 받으면 대개 “기초 통계는 됩니다” 정도로 답이 끝납니다. 그런데 막상 쓰려는 사람에게 필요한 건 그다음 이야기입니다. 어디까지가 ‘기초’인지, 결과 숫자가 정말 똑같이 나오는지, 안 되는 절차를 만나면 어떤 식으로 막히는지 말이죠. 이런 내용을 실제 출력으로 보여 주는 한국어 자료는 찾기 어려웠습니다.

그래서 직접 해 보았습니다. 가상의 설문 데이터 하나와 신택스 파일 15개를 만들고, 같은 파일을 GNU PSPP 2.1.1과 IBM SPSS Statistics 32 체험판에서 똑같이 돌린 뒤 결과를 표로 맞춰 보았습니다. 메뉴를 클릭해서 돌리면 사람마다 옵션이 조금씩 달라질 수 있기 때문에, 양쪽에 똑같은 신택스를 넣어 조건을 맞춘 것입니다.

이 글은 그 결론을 먼저 정리한 총론입니다. 이어지는 아홉 편에서는 설치부터 스크립트 자동화까지, 실제로 PSPP를 어떻게 쓰는지 절차별로 차근차근 다룹니다. 모든 신택스, 데이터, 양쪽 출력은 저장소에 올려 두었고, 이 시리즈가 가리키는 상태는 태그 v1.0입니다. 글을 읽다가 “정말 이 값이 나왔나?” 싶으면 저장소에서 원본 출력을 바로 확인하실 수 있습니다.

PSPP가 뭔가

GNU PSPP는 SPSS를 대신할 자유 소프트웨어를 목표로 1990년대 후반부터 개발돼 온 통계 패키지입니다. GNU 프로젝트의 일부이고 라이선스는 GPL이라, 누구나 무료로 설치해 쓸 수 있습니다.

PSPP의 가장 큰 특징은 SPSS와의 호환성입니다. SPSS 신택스 문법을 그대로 따르기 때문에 SPSS에서 쓰던 .sps 파일을 그대로 가져와 돌릴 수 있고, SPSS의 데이터 파일 형식인 .sav도 읽고 씁니다. 케이스 수나 변수 수에 제한이 없고, 체험판처럼 기간이 지나면 멈추는 일도 없습니다.

GUI 프로그램의 이름은 PSPPIRE입니다. 생김새가 SPSS 데이터 편집기와 거의 같아서, SPSS를 써 보신 분이라면 따로 설명을 듣지 않아도 메뉴를 찾아갈 수 있을 겁니다.

검증 환경

비교에 쓴 환경은 다음과 같습니다.

PSPP SPSS
버전 GNU PSPP 2.1.1 (Flatpak) IBM SPSS Statistics 32.0.0.0 체험판
OS Linux Mint 22.2 Windows 11 Pro
실행 방식 pspp -b 배치 GUI 신택스 편집기
실행일 2026-09-18 2026-09-19

PSPP 쪽은 pspp -b라는 배치 모드로 돌렸습니다. 창을 띄우지 않고 신택스 파일을 통째로 실행해 결과를 파일로 남기는 방식입니다. SPSS 데스크톱에는 이런 배치 실행기가 없어서, 신택스 편집기에 파일을 열고 전체를 실행했습니다. 이 차이는 9편에서 자세히 다룹니다.

우분투 24.04의 apt 패키지로 설치되는 버전은 2.0.0입니다. 같은 신택스를 2.0.0에서도 돌려 보았는데, 2.1.1과 텍스트 출력이 바이트 단위로 같았습니다. 배포판 패키지로 설치하셔도 이 시리즈를 따라오는 데는 문제가 없습니다.

예제 데이터는 가상의 회사가 사내 교육 프로그램을 실시한 뒤, 실험군과 대조군의 교육 전후 평가 점수, 만족도 5문항, 재수강 의향을 조사했다는 시나리오로 만든 200명 분량입니다. 결과가 맞는지 판단할 수 있도록 효과를 일부러 심어 두었습니다. 실험군의 점수 향상분은 약 +8이 되게 했고, 연봉은 나이·학력·부서에 따라 정해지게 했으며, 만족도 5문항은 하나의 요인으로 묶이게 설계했습니다. 그러니 뒤의 분석에서 이런 효과가 드러나면 “제대로 돌았다”고 판단하면 됩니다. 이 데이터는 2편에서 직접 만들고 레이블을 붙입니다.

되는 것 — 숫자가 같다

기초부터 중급까지의 절차는 PSPP와 SPSS가 같은 값을 냅니다. 한 가지 짚어 둘 점은, PSPP는 대부분의 통계량을 소수 둘째 자리까지만 인쇄한다는 것입니다. 그래서 여기서 “같다”는 말은 PSPP가 인쇄하는 자리까지 같다는 뜻입니다. 예를 들어 아래 표에서 PSPP의 11.55와 SPSS의 11.546은 같은 값을 반올림 자릿수만 다르게 보여 준 것입니다.

대표값만 추리면 이렇습니다.

절차 통계량 PSPP 2.1.1 SPSS 32 다루는 편
교차표 Pearson χ² (df=1) 11.55, p=.001 11.546, p<.001 3편
독립표본 t t (df=198) -8.96, p=.000 -8.959, p<.001 4편
일원분산분석 F (2, 197) 22.47 22.470 4편
회귀 R² / age의 B .67 / 44.22 .668 / 44.219 5편
로지스틱 Exp(B) sat_mean 1.74 1.743 5편
신뢰도 Cronbach α .79 .792 6편
요인분석 요인 1 설명 % 54.6% 54.589% 6편
Mann-Whitney Z -7.71 -7.713 6편
단변량 GLM 부서 F 20.71 20.707 7편
ROC AUC .68 .680 7편

p값 표기도 조금 다릅니다. PSPP는 아주 작은 p값을 .000처럼 인쇄하고, SPSS 32는 <.001로 표기합니다. 둘 다 “0.001보다 작다”는 같은 뜻으로 읽으시면 됩니다.

통계 절차뿐 아니라 데이터 관리 명령(SELECT IF, FILTER, WEIGHT, SPLIT FILE, AGGREGATE, MATCH FILES)과 매크로(!DO, !IF, !CONCAT까지)도 전부 동작했습니다. 인터넷에서 “PSPP는 매크로가 안 된다”는 이야기를 보셨다면 지금은 맞지 않는 옛 정보입니다.

값이 어긋난 곳은 네 군데뿐이었고, 모두 분석의 결론을 바꾸지는 않습니다.

  • Mann-Whitney 검정의 순위합이 1.5 차이 납니다. 같은 값(동점)을 가진 케이스에 순위를 매기는 방식의 차이로 보이며, 실제 판단에 쓰는 Z와 p는 같습니다.
  • Wilcoxon 대응 검정에서 차이의 방향 표기가 서로 반대입니다. 부호를 뒤집어 읽으면 같은 결과입니다.
  • ROC 곡선의 95% 신뢰구간이 PSPP는 .62~.74, SPSS는 .607~.754로 다릅니다. AUC와 표준오차는 같습니다.
  • 가중치를 건 빈도를 PSPP는 151.50처럼 소수 그대로, SPSS는 152로 반올림해 보여 줍니다.

각 차이는 해당 절차를 다루는 편에서 출력과 함께 다시 설명합니다.

안 되는 것 — 오류가 명확하다

같은 데이터로 SPSS에서 흔히 쓰는 고급 절차도 넣어 보았습니다. PSPP의 답은 분명합니다.

error: GLM: Multivariate analysis is not yet implemented.
error: MIXED: MIXED is not yet implemented.
error: GGRAPH: GGRAPH is not yet implemented.
error: PARTIAL CORR: PARTIAL CORR is not yet implemented.

위 출력은 줄마다 error: 다음에 문제가 된 명령 이름이 오고, 그 뒤에 이유가 붙는 형식입니다. 첫 줄은 반복측정 GLM을, 둘째 줄은 혼합모형(MIXED)을, 셋째 줄은 Chart Builder가 만드는 그래프 명령(GGRAPH)을, 넷째 줄은 편상관(PARTIAL CORR)을 돌리려 한 결과입니다. 이유가 모두 “not yet implemented”, 즉 아직 구현되지 않았다는 것입니다. 엉뚱한 값을 내거나 조용히 넘어가는 게 아니라 “이 기능은 없다”고 분명히 알려 주기 때문에, 적어도 틀린 결과를 믿고 쓸 위험은 없습니다.

이 밖에 다항·순서형 로지스틱, 일반화 선형모형, 생존분석, 판별분석, 계층적 군집, 복합표본, 시계열 분석, Python·R 연동도 PSPP에는 없습니다. SPSS 32에서는 이 절차들이 모두 정상 실행됐습니다. 무엇이 어떤 메시지로 막히는지, 그리고 반복측정 설계처럼 자주 필요한 분석을 PSPP에서 어떻게 우회하는지는 8편에서 다룹니다.

기능 비교표

전체 그림을 한 장으로 정리하면 다음과 같습니다. O는 검증 완료, △는 부분 지원, X는 미지원입니다. 44개 항목을 모두 담은 원본은 저장소의 docs/02_기능_비교표.csv에 있습니다.

분류 절차 PSPP 2.1.1 비고
파일 .sav 읽기/쓰기, CSV 읽기, INSERT O 양방향 호환, 한글 레이블 보존
데이터 레이블, COMPUTE/RECODE, SELECT IF/FILTER/WEIGHT, SPLIT FILE, AGGREGATE/MATCH FILES O AGGREGATE는 정렬 필수 (7편)
기술통계 FREQUENCIES, DESCRIPTIVES, EXAMINE, CROSSTABS O
평균비교 독립·대응·일표본 t, ONEWAY+사후검정, 단변량 GLM O
평균비교 반복측정 GLM, MANOVA, MIXED X not yet implemented
상관·회귀 CORRELATIONS, REGRESSION, LOGISTIC REGRESSION O
상관·회귀 PARTIAL CORR, NOMREG/PLUM, GENLIN X
척도 RELIABILITY, FACTOR, QUICK CLUSTER, ROC O 계층적 CLUSTER는 X
비모수 NPAR TESTS O 순위합 1.5 차이
고급 생존분석, 시계열, 복합표본, 판별분석 X
자동화 매크로 O !DO/!IF/!CONCAT 확인
자동화 Python/R 연동 X
자동화 배치 실행 O SPSS 데스크톱은 불가 (9편)
그래프 GRAPH 히스토그램·산점도·막대 △ 꾸미기 불가
그래프 GGRAPH/GPL (Chart Builder) X
출력 txt/html/csv/pdf/odt 등 10종 O 피벗 편집은 X
라이선스 케이스·변수 제한, 만료 없음 SPSS 체험판 14일

표를 읽을 때 눈여겨볼 곳은 X가 몰려 있는 줄입니다. 평균비교와 상관·회귀는 기본 절차는 O인데 그 확장판(반복측정, 혼합모형, 편상관, 다항·순서형 회귀)이 X입니다. 즉 “기초는 되고 고급은 안 된다”는 말이 대략 이 경계를 가리킵니다. 그래프는 기본적인 GRAPH 명령은 되지만 SPSS의 Chart Builder처럼 세밀하게 꾸미는 것은 안 되기 때문에 △로 표시했습니다.

어떻게 고를까

지금까지의 결과를 네 줄로 줄이면 이렇습니다.

  1. 파일과 신택스 호환은 실질적으로 완전합니다. SPSS에서 만든 데이터와 신택스가 PSPP에서 그대로 열리고 돌아가며, 반대 방향도 됩니다.
  2. 기초부터 중급까지는 숫자가 같습니다. 위 표에 나온 절차라면 PSPP 결과를 그대로 보고서나 논문에 써도 됩니다.
  3. 갈리는 지점은 정확도가 아니라 절차가 있느냐 없느냐입니다. SPSS와 맞춰 본 절차 가운데 PSPP가 다른 결론을 낸 경우는 없었습니다. 필요한 절차가 X 칸에 있다면 PSPP로는 할 수 없다는 것, 그것이 판단 기준입니다.
  4. 배치 실행은 PSPP가 오히려 낫습니다. 라이선스도 만료도 없이, 창을 띄우지 않고 명령줄에서 돌아갑니다. SPSS 데스크톱 체험판에는 배치 실행기가 들어 있지 않습니다.

그래서 상황별로는 이렇게 고르시면 됩니다.

  • 수업, 설문 분석, 논문의 기초 분석: PSPP. 비용이 들지 않고 결과가 같습니다.
  • 반복측정, 혼합모형, 구조방정식: R(lme4, lavaan)이나 jamovi·JASP, 아니면 SPSS.
  • 보기 좋은 그래프: 이 경우는 SPSS도 최선은 아닙니다. ggplot2나 matplotlib을 권합니다.
  • SPSS 라이선스가 이미 있고 클릭으로 빨리 끝내고 싶다: 그냥 SPSS를 쓰시면 됩니다.

시리즈 목차

이 시리즈는 아래 순서로 진행합니다. 1~2편에서 설치와 데이터 준비를 마치고, 3~7편에서 절차별 사용법을, 8~9편에서 한계와 자동화를 다룹니다. 3~7편은 “메뉴로 하기 → 신택스로 하기 → 출력 읽기 → SPSS와 대조” 순서로 같은 틀을 따르니, 필요한 편만 골라 읽으셔도 됩니다.

편 제목 내용
0 총론 (이 글) 결론과 비교표
1 설치와 첫 화면 리눅스·윈도우·맥 설치, PSPPIRE 창 구성, 로케일 함정
2 데이터 불러오기와 레이블 CSV 읽기, 변수·값 레이블, .sav 저장과 양방향 호환
3 기술통계와 교차표 FREQUENCIES, DESCRIPTIVES, EXAMINE, CROSSTABS
4 t-검정과 분산분석 T-TEST 세 종류, ONEWAY와 사후검정
5 상관, 회귀, 로지스틱 CORRELATIONS, REGRESSION, LOGISTIC REGRESSION
6 신뢰도, 요인분석, 비모수 RELIABILITY, FACTOR, NPAR TESTS
7 데이터 관리와 매크로 케이스 선택·가중·분할·집계, DEFINE 매크로
8 안 되는 것과 우회로 미지원 절차의 오류 메시지와 대안
9 스크립트로 돌리기와 자동화 배치 모드, 출력 형식, 실행 스크립트