Simplified statistical analysis with plain-English interpretation for R
Overview
statease is an R package that runs a wide range of statistical analyses and tells you in plain English what the results mean. No more copy-pasting output into interpretation guides. One function call gives you the full picture.
Installation
install.packages("statease")For the development version from GitHub:
# install.packages("devtools")
devtools::install_github("DevWebWacky/statease")Functions
| Function | What it does |
|---|---|
analyze() |
Master function - auto-detects and runs the right test |
describe() |
Descriptive statistics with interpretation |
ttest_interpret() |
T-tests with Cohen’s d and CI interpretation |
anova_interpret() |
One-way ANOVA with Tukey post-hoc and eta squared |
anova2_interpret() |
Two-way ANOVA with interaction effects |
manova_interpret() |
MANOVA with Pillai’s trace and follow-up ANOVAs |
chisq_interpret() |
Chi-square test with Cramer’s V effect size |
cor_interpret() |
Correlation analysis (Pearson, Spearman, Kendall) |
reg_interpret() |
Simple linear regression with diagnostics |
mlr_interpret() |
Multiple linear regression with diagnostics |
logistic_interpret() |
Logistic regression with odds ratios |
mannwhitney_interpret() |
Mann-Whitney U test (non-parametric) |
wilcoxon_interpret() |
Wilcoxon Signed Rank test (non-parametric) |
kruskal_interpret() |
Kruskal-Wallis test with post-hoc comparisons |
interpret_p() |
Standalone p-value interpreter |
Usage
One command does it all
library(statease)
# Descriptive statistics
analyze(x = c(23, 45, 12, 67, 34), var_name = "Exam Scores")
# Independent samples t-test (auto-detected)
analyze(x = c(23,45,12,67,34), y = c(19,38,22,51,29),
var_name = "Scores")
# Non-parametric alternative (auto-detected)
analyze(x = c(23,45,12,67,34), y = c(19,38,22,51,29),
nonparam = TRUE, var_name = "Scores")
# Correlation (auto-detected)
analyze(x = c(23,45,12,67,34), y = c(19,38,22,51,29),
var1_name = "Exam Score", var2_name = "Study Hours")
# Chi-square (auto-detected)
analyze(
x = c("Yes","No","Yes","Yes","No"),
y = c("Male","Female","Male","Female","Male")
)
# One-way ANOVA (auto-detected)
df <- data.frame(
score = c(23,45,12,67,34,89,56,43,78,90,11,34),
group = rep(c("A","B","C"), each = 4)
)
analyze(formula = score ~ group, data = df)
# Kruskal-Wallis (non-parametric ANOVA alternative)
analyze(formula = score ~ group, data = df, nonparam = TRUE)
# Two-way ANOVA (auto-detected)
df2 <- data.frame(
score = c(23,45,12,67,34,89,56,43,78,90,11,34),
method = rep(c("Online","Traditional"), each = 6),
gender = rep(c("Male","Female"), times = 6)
)
analyze(formula = score ~ method * gender, data = df2)
# Simple linear regression (auto-detected)
df3 <- data.frame(
exam_score = c(23,45,12,67,34,89,56,43,78,90),
study_hours = c(2,5,1,7,3,9,6,4,8,10)
)
analyze(formula = exam_score ~ study_hours, data = df3)
# Multiple linear regression (auto-detected)
df4 <- data.frame(
exam_score = c(23,45,12,67,34,89,56,43,78,90),
study_hours = c(2,5,1,7,3,9,6,4,8,10),
attendance = c(60,80,50,90,70,95,85,75,88,92)
)
analyze(formula = exam_score ~ study_hours + attendance, data = df4)
# MANOVA (auto-detected)
df5 <- data.frame(
math = c(23,45,12,67,34,89,56,43,78,90,11,34),
english = c(34,56,23,78,45,90,67,54,89,95,22,45),
group = rep(c("A","B","C"), each = 4)
)
analyze(formula = cbind(math, english) ~ group, data = df5)
# Interpret any p-value
interpret_p(0.03, context = "treatment vs control group")Why statease?
Most R output gives you numbers. statease gives you numbers + meaning. Perfect for: - Students learning statistics - Researchers who want fast readable output - Educators teaching statistical concepts
Changelog
v1.2.0
- Added
mlr_interpret()for multiple linear regression - Added
logistic_interpret()for logistic regression - Added
manova_interpret()for MANOVA - Added
mannwhitney_interpret()for Mann-Whitney U test - Added
wilcoxon_interpret()for Wilcoxon Signed Rank test - Added
kruskal_interpret()for Kruskal-Wallis test - Updated
analyze()withnonparamargument for non-parametric routing - Fixed
anova2_interpret()to use Type II/III SS via car::Anova() instead of Type I SS for order-independent results
v1.1.0
- Added
chisq_interpret()for chi-square tests - Added
cor_interpret()for correlation analysis - Added
reg_interpret()for simple linear regression - Added
anova2_interpret()for two-way ANOVA - Updated
analyze()to auto-detect all new tests
v1.0.0
- Initial CRAN release
-
describe(),ttest_interpret(),anova_interpret(),interpret_p(),analyze()
