Skip to main content

A social-science-friendly toolkit for OLS regression and SPSS-like ANOVA

Project description

sunlm

sunlm is a lightweight, social-science–friendly Python package for OLS regression and SPSS-like ANOVA / ANCOVA.
It is designed for researchers in communication, psychology, marketing, and related social sciences who want clear, interpretable statistical output without complex statistical coding.

sunlm emphasizes:

  • R-style formula syntax
  • SPSS-equivalent ANOVA (Type III SS, sum coding)
  • Standardized coefficients and semi-partial R²
  • Clean, APA-style tables
  • Simple, top-level API (sunlm.reg, sunlm.aov)

Installation

pip install sunlm

Quick Start: Load Example Data

sunlm includes a built-in example dataset for immediate practice.

import sunlm

df = sunlm.data()
df.head()
personalization	involvement	price_sensitivity	brand_trust	age	purchase_intention

0 1 1 -0.740814 1.408369 51.311519 7.000000 1 0 1 0.072907 -0.608711 41.350777 5.122004 2 0 0 0.403086 -1.320603 27.877310 2.840572 3 1 0 1.471929 -0.669619 46.907773 3.497987 4 1 0 0.307384 1.264625 35.208771 4.472068


Tutorial 1️⃣ OLS Regression

import sunlm

model = sunlm.reg(
    "purchase_intention ~ personalization * involvement + age",
    data=df
)

model.summary()

📊 OLS Regression Summary

                        Unstd. B Std. Err. (unstd) t-value Std. β Semi-partial R²         p-value

Intercept 2.284 0.473 4.829 0.000 (< .001) personalization 0.814 0.319 2.553 0.305 0.035 0.012 (< .05) involvement 0.609 0.177 3.443 0.363 0.064 0.001 (< .001) personalization:involvement 0.374 0.248 1.510 0.204 0.012 0.134 (n.s.) age 0.039 0.010 3.713 0.273 0.074 0.000 (< .001)

📈 Model Fit Statistics

N 100 R² 0.490 Adj. R² 0.469


Tutorial 2️⃣ ANOVA / ANCOVA (SPSS-like)

import sunlm

model = sunlm.aov(
    "purchase_intention ~ C(personalization) * C(involvement) + age",
    data=df
)

model.summary()

Tests of Between-Subjects Effects

Dependent Variable: purchase_intention Source sum_sq df mean_sq F p-value Partial Eta Squared Corrected Model 91.322 6 15.220 16.409 0.000 (< .001) 0.514 Intercept 64.597 1 64.597 69.640 0.000 (< .001) 0.428 personalization (factor) 33.449 1 33.449 36.060 0.000 (< .001) 0.279 involvement (factor) 40.764 2 20.382 21.973 0.000 (< .001) 0.321 personalization × involvement 2.883 2 1.441 1.554 0.217 (n.s.) 0.032 age 11.819 1 11.819 12.742 0.001 (< .001) 0.120 Error 86.266 93 0.928
Total 2719.617 100
Corrected Total 177.588 99

R Squared = 0.514 (Adjusted R Squared = 0.483)


Tutorial 3️⃣ Post Hoc Tests

Tukey HSD

model.TukeyHSD("involvement")

Tukey HSD for involvement (alpha=0.05)

group1 group2 meandiff Std. Error p-value lower upper 0 1 1.186 0.235 0.000 (< .001) 0.494 1.877 0 2 1.494 0.243 0.000 (< .001) 0.779 2.210 1 2 0.309 0.233 0.534 (n.s.) -0.377 0.995

Bonferroni

model.Bonferroni("involvement")

Bonferroni Pairwise Comparisons for involvement (alpha=0.05)

group1 group2 meandiff Std. Error t p-value lower upper 0 1 1.149 0.237 4.846 0.000 (< .001) 0.571 1.727 0 2 1.576 0.246 6.410 0.000 (< .001) 0.976 2.175 1 2 0.427 0.234 1.828 0.212 (n.s.) -0.142 0.996


Top-level API Summary

sunlm.reg(formula, data)   # OLS regression
sunlm.aov(formula, data)   # ANOVA / ANCOVA
sunlm.data()               # Load example dataset

Citation

If you use sunlm in academic research, please cite it as:

Kim, S.-W. (2025). sunlm (Version 0.1.3.post1) [Software]. https://pypi.org/project/sunlm/


License

MIT License


Author

Seonwoo Kim
Northern Arizona University

Designed for researchers who want SPSS-equivalent statistics with Python clarity.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sunlm-0.1.3.post2.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sunlm-0.1.3.post2-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file sunlm-0.1.3.post2.tar.gz.

File metadata

  • Download URL: sunlm-0.1.3.post2.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for sunlm-0.1.3.post2.tar.gz
Algorithm Hash digest
SHA256 5a5eb776ce543ea9540273c3f04c5333dc6314016a305942b852b0ae37e8a491
MD5 dda3ea30c710558dbac5cba91f330d00
BLAKE2b-256 cd73db8139866c1255a78419daf00c63d377dc7dde231c49bee777d516e8055c

See more details on using hashes here.

File details

Details for the file sunlm-0.1.3.post2-py3-none-any.whl.

File metadata

  • Download URL: sunlm-0.1.3.post2-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for sunlm-0.1.3.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 f6d37cb04a5c359c97a2860b66c7e3740d4aa58ef7c365f684180761ac12430d
MD5 bf1e97ca44236b8150a8179e6e60e527
BLAKE2b-256 abc58447467def2d2ad3bc961c6c3affbaf1450cbd967707e277510bc4390579

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page