EpochZero Learn
EpochZero LearnMulti-Domain Tech Learning Hub
Courses
LeaderboardAbout
Dashboard
EpochZero
EpochZero Learn
Multi-Domain Tech Learning Hub

Structured learning for Reverse Engineering, Cloud Security, Cryptography, and Web Development. Articles, videos, tests, and peer discussion.

Learn

  • Learning Path
  • All Articles
  • Video Lessons
  • Podcast
  • eBooks & PDFs
  • Question Banks
  • Cheatsheets
  • MCQ Banks

Tests & Forum

  • All Tests
  • REMA Tests
  • Cloud Tests
  • Forum
  • REMA Forum
  • Cloud Forum
  • Crypto Forum
  • Web Dev Forum

Campus

  • REMA Club
  • Full Stack Dev Club
  • Extension Activity
  • Events
  • CTF Competitions
  • Workshops
  • Industrial Visits

Platform

  • Dashboard
  • Leaderboard
  • About
  • Verify Certificate

© 2026 EpochZero Learn. Educational content for learning purposes.

Course Instructor: Ashish Revar

All articles
research-methodologydata-analysis-toolspythonspss

Tools for Data Analysis: SPSS, R, Python, Excel, and Jupyter

The choice of software rarely changes what a test does -- it changes how quickly and how reproducibly the work gets done. A worked paired t-test in Python, and why "we ran a t-test" is not enough for a methodology section.

Ashish Revar6 July 20269 min read2 views

Sign in to mark this article as read and track your progress.

More articlesTest your knowledge

Same Test, Different Tools

The choice of software rarely changes what a test does; it changes how quickly and how reproducibly the work gets done.

ToolStrengths and typical use
SPSSMenu-driven statistics package, common in survey-based security research; good for standard tests without writing code.
RA language built around statistics; strong for formal hypothesis testing and publication-quality plots.
PythonGeneral-purpose, with mature libraries such as pandas and scipy; the natural choice when the same pipeline also needs to train a model or parse log files.
ExcelFast for small datasets and quick pivot tables; weak once a project needs more than basic descriptive statistics.
JupyterA notebook environment that runs Python or R interactively, mixing code, output, and narrative in one document — useful for keeping an analysis reproducible.

Running a Test in Python

A comparison of two malware classifiers' accuracy across ten runs each can be tested directly with scipy, given the per-run accuracy scores for both:

from scipy import stats
clf_a = [86, 89, 87, 90, 88, 85, 91, 87, 89, 90]
clf_b = [92, 94, 93, 95, 92, 93, 96, 91, 94, 94]
t_stat, p_value = stats.ttest_rel(clf_a, clf_b)

ttest_rel runs a paired t-test, the correct choice here because both classifiers were scored on the same ten runs rather than on two independent samples. A p-value below 0.05 would support the claim that Classifier B's advantage is unlikely to be run-to-run noise.

Say Exactly What You Ran

Whatever tool is used, the version of the software and the exact function called belong in the methodology section of the eventual report. "We ran a t-test" is not enough. "We ran a paired two-tailed t-test using scipy.stats.ttest_rel" is what lets another researcher check the work — the same "valid and verifiable" test from Unit 1.

Further Reading

  • A. Field, Discovering Statistics Using IBM SPSS Statistics, SAGE — an example-driven introduction to the tests covered in this unit.
  • W. McKinney, Python for Data Analysis, O'Reilly — covers pandas for the data-wrangling step that precedes any statistical test.
  • Verizon's annual Data Breach Investigations Report — a recurring example of descriptive statistics applied to large-scale incident data in industry.

Check Your Understanding

Why does "we ran a t-test" fall short of what a methodology section needs, even if the p-value reported is correct?