mcpField
R
regression-modeler

regression-modeler

github.com/zebbernData & databases4.7k38 installsUpdated 1d ago
Repository

About regression-modeler

regression-modeler is an automated regression tool for tabular data, intended for analysts evaluating variable relationships or predicting outcomes. It runs OLS linear or Logit logistic regression and explains statistical results in plain language.

Key features

  1. 01OLS linear regression
  2. 02Logit logistic regression
  3. 03Detects predictor multicollinearity
  4. 04Plain-language metric and coefficient explanations
  5. 05Automatically selects a model for binary targets

Use cases

  1. 01Analyzing factors affecting a continuous outcome
  2. 02Examining predictors of a binary outcome
  3. 03Saving regression results as JSON

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/zebbern/claude-code-guide --skill regression-modeler

After installing, type/regression-modelerin Claude Code to confirm it loaded.

Bundled filesLICENSEscripts/regression_analyzer.py

Details

From the project README

regression-modeler

Automated regression modeling tool — performs linear regression (OLS) or logistic regression (Logit) on tabular data, producing comprehensive statistical results with plain-language interpretation.

Capabilities

FeatureDescription
Linear RegressionOLS with coefficients, R², adjusted R², F-test, AIC/BIC, Durbin-Watson
Logistic RegressionLogit with coefficients, Odds Ratio, Pseudo R², likelihood ratio test
Multicollinearity DetectionVIF values for each predictor with warning levels
Plain-Language InterpretationClear explanations of what each metric and coefficient means
Auto DetectionAutomatically switches to logistic regression when the target is binary (0/1)

Quick Start

# Linear regression: predict price using all numeric columns as predictors
python3 scripts/regression_analyzer.py data.csv --target price

# Logistic regression: predict churn (0/1) with specified features
python3 scripts/regression_analyzer.py users.csv --target churn --features "age,income,tenure"

# Save results to JSON
python3 scripts/regression_analyzer.py data.csv --target sales --output result.json

Detailed Usage

Basic Invocation
python3 scripts/regression_analyzer.py <data_file> --target <target_column> [options]
Specifying Regression Type
# Force linear regression
python3 scripts/regression_analyzer.py data.csv -t y --type linear

# Force logistic regression
python3 scripts/regression_analyzer.py data.csv -t label --type logistic

# Auto-detect (default)
python3 scripts/regression_analyzer.py data.csv -t y --type auto
Selecting Feature Columns
# Manually specify (comma-separated)
python3 scripts/regression_analyzer.py data.csv -t price -f "sqft,bedrooms,bathrooms"

# Omit to automatically use all numeric columns
python3 scripts/regression_analyzer.py data.csv -t price

Parameters

ParameterShortRequiredDefaultDescription
input—Yes—Input file path (CSV/TSV/Excel/JSON)
--target-tYes—Target variable (dependent variable) column name
--features-fNoAll numeric columnsPredictor column names, comma-separated
--type-TNoautoRegression type: linear / logistic / auto
--output-oNostdoutOutput JSON file path
--no-const—NofalseDo not add an intercept term
--keep-na—NofalseKeep rows with missing values (for debugging)

Output Structure (JSON)

{
  "type": "linear",
  "r_squared": 0.8523,
  "r_squared_adj": 0.8471,
  "f_statistic": 162.34,
  "f_p_value": 0.0,
  "coefficients": {
    "sqft": {"coefficient": 135.42, "p_value": 0.0001, ...},
    "bedrooms": {"coefficient": 8021.5, "p_value": 0.032, ...}
  },
  "vif": {"sqft": 2.31, "bedrooms": 1.87},
  "interpretation": {
    "model_summary": ["R² = 0.8523 (good model fit...)"],
    "variable_analysis": ["sqft: coefficient = 135.42... positive effect..."]
  }
}

Dependencies

  • Python 3.8+
  • pandas
  • numpy
  • statsmodels
  • scipy
pip install pandas numpy statsmodels scipy

Comments

Markdown supported