이번 편에서는 PSPP를 설치하고, GUI 프로그램인 PSPPIRE의 창 네 종류와 메뉴 구조를 둘러봅니다. 그리고 처음 쓰는 분이라면 거의 반드시 한 번은 겪게 되는 함정 두 가지를 미리 짚고 넘어가겠습니다. 이번 편에서는 아직 통계 분석을 하지 않습니다. 프로그램에 익숙해지는 것이 목표이고, 예제 데이터는 2편에서 만듭니다.
설치
리눅스
리눅스에서는 설치 방법이 두 가지입니다. 배포판 패키지로 설치하면 명령 한 줄로 끝나지만, 버전이 최신판보다 조금 뒤처집니다.
# 배포판 저장소에서 설치합니다. 관리자 권한(sudo)이 필요합니다.
sudo apt install pspp # Ubuntu 24.04 / Mint 22 기준 2.0.0
최신판인 2.1.1을 쓰려면 Flathub에서 받습니다. Flatpak은 프로그램을 배포판과 분리된 샌드박스 안에 설치하는 방식이라, 배포판 버전과 상관없이 최신판을 쓸 수 있습니다. 이 시리즈는 이쪽을 기준으로 합니다.
# Flathub에서 PSPP를 내려받아 설치합니다.
flatpak install flathub org.gnu.pspp
# GUI(PSPPIRE)를 실행합니다.
flatpak run org.gnu.pspp # GUI (PSPPIRE)
# 명령줄 프로그램 pspp를 불러 버전을 확인합니다.
flatpak run --command=pspp org.gnu.pspp --version # 명령줄
그런데 Flatpak으로 설치하면 pspp와 psppire라는 명령이 PATH에 생기지 않습니다. 매번 flatpak run --command=pspp org.gnu.pspp처럼 긴 명령을 입력해야 한다는 뜻입니다. 터미널에서 짧게 부르려면 래퍼 스크립트 두 개를 만들어 두면 편합니다. 래퍼는 받은 인자를 그대로 Flatpak 명령에 넘겨 주는 작은 셸 스크립트입니다.
# 개인용 실행 파일 폴더를 만듭니다. 대부분의 배포판에서 PATH에 들어 있습니다.
mkdir -p ~/.local/bin
# pspp 래퍼: 명령줄 프로그램을 부르고, 받은 인자("$@")를 그대로 넘깁니다.
printf '#!/bin/sh\nexec flatpak run --command=pspp org.gnu.pspp "$@"\n' > ~/.local/bin/pspp
# psppire 래퍼: GUI를 띄웁니다.
printf '#!/bin/sh\nexec flatpak run org.gnu.pspp "$@"\n' > ~/.local/bin/psppire
# 두 파일에 실행 권한을 줍니다.
chmod +x ~/.local/bin/pspp ~/.local/bin/psppire
# 이제 짧은 이름으로 불립니다. 아래처럼 버전이 나오면 성공입니다.
pspp --version # pspp (GNU PSPP) 2.1.1
pspp --version을 입력했을 때 pspp (GNU PSPP) 2.1.1이 나오면 설치가 끝난 것입니다. 만약 “명령을 찾을 수 없다”는 메시지가 나온다면 ~/.local/bin이 PATH에 들어 있지 않은 것이니, 터미널을 새로 열거나 PATH 설정을 확인해 보세요.
두 설치 방법 중 어느 쪽을 고르셔도 결과는 같습니다. 이 시리즈의 신택스를 2.0.0과 2.1.1에서 모두 돌려 비교했더니 텍스트 출력이 바이트 단위로 같았습니다.
윈도우와 맥
공식 “Obtaining GNU PSPP” 페이지에서 자원봉사자들이 유지하는 바이너리를 안내하고 있습니다.
- 윈도우: 아우크스부르크 응용과학대학에서 배포하는 안정판 설치 프로그램을 받습니다. 파일이 여러 개 있으면 이름에 debug가 붙지 않은, 크기가 작은 쪽을 고르시면 됩니다. debug 판은 개발자가 문제를 추적할 때 쓰는 용도입니다.
- 맥: 처음이라면 애플리케이션 번들 설치 프로그램이 가장 쉽습니다. MacPorts를 쓰신다면
port install pspp-devel(최신) 또는port install pspp(검증된 구판)로 설치합니다. Homebrew는 기본 저장소에 들어 있지 않고 별도 tap으로 제공되므로brew tap을 먼저 해야 합니다.
미리 말씀드리면, 윈도우와 맥 설치는 직접 해 보지 않았습니다. 이 시리즈의 실행과 화면 캡처는 전부 리눅스에서 했습니다.
첫 실행
psppire를 실행하면(또는 프로그램 메뉴에서 GNU PSPP를 열면) 데이터 편집기가 뜨고, 그 위에 안내 창이 하나 나옵니다. 이 창은 닫으셔도 됩니다.

안내 창을 닫으면 빈 데이터 편집기가 보입니다. SPSS 데이터 편집기와 배치가 같습니다. 아래쪽에 Data View와 Variable View 탭이 있고, 오른쪽 아래에는 출력 뷰어가 작게 따로 떠 있습니다. SPSS처럼 데이터 창과 결과 창이 처음부터 분리되어 있는 셈입니다.

창 네 종류
PSPPIRE는 SPSS처럼 용도별로 창을 나눠 씁니다. 하나씩 살펴보겠습니다.
데이터 편집기 (Data Editor). 데이터를 보고 입력하는 창으로, 데이터 보기(Data View)와 변수 보기(Variable View) 두 탭이 있습니다. 데이터 보기는 엑셀처럼 한 줄이 한 케이스(응답자 한 명), 한 열이 한 변수입니다. 변수 보기에서는 변수마다 이름, 형식, 너비, 소수점, 레이블, 값 레이블, 결측값, 열 너비, 정렬, 측도, 역할을 편집합니다. 아래는 2편에서 만들 데이터를 연 모습인데, 한글 레이블이 그대로 보이는 것을 확인할 수 있습니다.

출력 뷰어 (Output Viewer). 분석 결과가 쌓이는 창입니다. 왼쪽에는 지금까지 실행한 결과의 개요 트리가, 오른쪽에는 표와 그림이 나옵니다. SPSS 뷰어와 같은 구조입니다. 다만 SPSS처럼 표를 더블클릭해서 행과 열을 바꾸거나 서식을 고치는 기능은 없습니다. 결과를 파일로 남기려면 File > Export로 내보냅니다.

신택스 편집기 (Syntax Editor). 명령문(신택스)을 직접 쓰고 실행하는 창으로, File > New > Syntax로 엽니다. 신택스는 메뉴에서 클릭하는 작업을 글로 적어 둔 것이라고 생각하시면 됩니다. 한 번 적어 두면 같은 분석을 언제든 그대로 다시 돌릴 수 있다는 것이 가장 큰 장점입니다. 편집기에서는 명령어에 색이 입혀지고, Run 메뉴로 실행합니다.

대화상자. Analyze 같은 메뉴에서 절차를 고르면 뜨는 설정 창입니다. SPSS와 마찬가지로, 대화상자에서 설정한 내용을 신택스로 바꿔 신택스 편집기에 붙여 넣는 Paste 버튼이 있습니다. 신택스가 낯선 분이라면 이 버튼이 좋은 출발점입니다. 메뉴로 설정한 뒤 Paste를 눌러 보면, 방금 한 일이 어떤 명령문이 되는지 바로 볼 수 있습니다. 3편부터는 절차마다 대화상자와 신택스를 나란히 보여 드립니다.
메뉴 구조
메뉴 이름은 File, Edit, View, Data, Transform, Analyze, Graphs, Utilities, Windows, Help입니다. SPSS와 같은 순서라서, 손이 기억하는 대로 찾아가시면 됩니다. File 메뉴를 열면 이렇습니다.

Analyze 메뉴를 펼치면 PSPP가 어떤 분석을 지원하는지 한눈에 보입니다.

각 항목이 무엇을 하는지, 이 시리즈의 몇 편에서 다루는지 정리하면 다음과 같습니다.
| Analyze 항목 | 하는 것 | 다루는 편 |
|---|---|---|
| Descriptive Statistics | 빈도, 기술통계, 탐색, 교차표 | 3편 |
| Tables | 사용자 정의 표 | — |
| Compare Means | 평균, 일표본·독립표본·대응표본 t, 일원분산분석 | 4편 |
| Univariate Analysis | 종속변수 하나인 GLM | 7편 |
| Bivariate Correlation | 상관 | 5편 |
| K-Means Cluster | K-평균 군집 | 7편 |
| Factor Analysis | 요인분석 | 6편 |
| Reliability | 신뢰도 | 6편 |
| Regression | 선형·로지스틱 회귀 | 5편 |
| Non-Parametric Statistics | 비모수 검정 | 6편 |
| ROC Curve | ROC 곡선 | 7편 |
SPSS의 Analyze 메뉴와 비교해 보면, General Linear Model의 반복측정·다변량, Mixed Models, Generalized Linear Models, Survival, Classify의 계층적 군집·판별분석, Forecasting이 빠져 있습니다. PSPP에서는 없는 기능은 메뉴에도 없고, 신택스로 직접 입력해도 “not yet implemented”(아직 구현되지 않음)라고 답합니다. 메뉴를 보고 “이게 어디 숨어 있나” 찾으실 필요 없이, 안 보이면 없는 것이라고 판단하시면 됩니다. 빠진 기능의 전체 목록과 대안은 8편에서 정리합니다.
신택스 편집기에서 실행하기
메뉴로 할 수 있는 일은 전부 신택스로도 할 수 있습니다. 이 시리즈는 둘을 항상 같이 보여 드립니다. 신택스 편집기의 Run 메뉴에는 실행 범위가 다른 세 가지 명령이 있습니다.
| Run 메뉴 | 실행 범위 |
|---|---|
| All | 파일 전체 |
| Selection (Ctrl+R) | 선택한 부분. 선택이 없으면 커서가 있는 줄만 |
| To End | 커서부터 끝까지 |
여기에 첫 번째 함정이 있습니다. SPSS를 쓰던 분들은 Ctrl+A로 전체를 선택하고 Ctrl+R을 누르는 습관이 있습니다. 그런데 PSPPIRE에서 아무것도 선택하지 않은 채 Ctrl+R을 누르면, 파일 전체가 아니라 커서가 있는 한 줄만 실행됩니다. 커서가 주석 줄에 있었다면 아무 일도 일어나지 않아서, “실행이 안 된다”고 착각하기 쉽습니다. 파일을 통째로 돌리고 싶을 때는 Run > All을 쓰세요. 반대로 긴 신택스에서 한 부분만 다시 돌려 보고 싶을 때는 그 부분을 선택하고 Ctrl+R을 누르면 됩니다.
로케일 함정 — 한글이 ????로 나올 때
두 번째 함정은 리눅스 터미널에서 배치로 돌릴 때 만날 수 있습니다. 먼저 로케일이 무엇인지부터 짚고 가겠습니다. 로케일은 운영체제가 언어, 날짜 형식, 문자 인코딩을 어떻게 다룰지 정해 두는 설정입니다. 이 설정의 문자 인코딩이 UTF-8이 아니면, 프로그램이 한글을 출력할 방법을 몰라 다른 문자로 바꿔 찍을 수 있습니다.
실제로 우분투 24.04의 apt 패키지(2.0.0)로 처음 실행했을 때, 셸 로케일이 UTF-8이 아니어서 텍스트 출력의 한글 변수 레이블과 값 레이블이 전부 물음표로 찍혔습니다. 데이터가 깨진 게 아니라 출력할 때의 인코딩 문제입니다. 실행 전에 아래 한 줄이면 해결됩니다.
# 이 터미널 세션의 로케일을 UTF-8로 지정합니다. pspp를 실행하기 전에 입력합니다.
export LC_ALL=C.UTF-8
한편 Flatpak으로 설치한 2.1.1에서는 LC_ALL=C나 POSIX를 일부러 지정해도 이 현상이 재현되지 않았습니다. 샌드박스 안의 기본 로케일이 UTF-8이기 때문으로 보입니다. 그래도 배치 스크립트 첫머리에 이 줄을 넣어 두는 데는 아무 비용이 들지 않으니, 9편에서 소개하는 실행 스크립트도 이 줄로 시작합니다. GUI인 PSPPIRE는 데스크톱 세션의 로케일을 따르므로 보통은 문제가 없습니다.
Flatpak 사용자라면 알아 둘 것이 하나 더 있습니다. Flatpak 샌드박스는 홈 디렉터리만 볼 수 있어서, 출력 파일을 /tmp처럼 홈 밖의 경로에 두면 “No such file or directory” 오류가 납니다. 파일이 분명히 있는데 없다고 나온다면 이 경우를 의심해 보세요. 프로젝트 폴더를 홈 아래에 두면 해결됩니다.
다음 편
2편에서는 CSV 파일을 읽어 한글 레이블을 붙이고 .sav로 저장합니다. 그렇게 만든 파일을 SPSS에서 열면 어떻게 보이는지, 반대로 SPSS가 저장한 파일을 PSPP가 어떻게 여는지도 함께 확인합니다.
시리즈 목차: 0편 총론 · 1편 설치와 첫 화면 · 2편 · 3편 · 4편 · 5편 · 6편 · 7편 · 8편 · 9편