mcpbeat

Regression Modeler

zebbern/regression-modeler

Run regression analysis (OLS or logistic) on uploaded CSV/Excel data, generating coefficients, R², p-values, VIF, and plain-language interpretation. Triggered by requests for regression modeling, fitting data, testing significance, checking multicollinearity, or keywords like OLS, logit, coefficient, p-value, or R-squared.

5k tokens
context cost
the whole folder, loaded on every use
3
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
4468
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/zebbern/claude-code-guide --skill regression-modeler

What comes with it

14 370 bytes besides the instruction
LICENSE
scripts/regression_analyzer.py

The instruction itself

10 sections, as written by the author

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

| Feature | Description |

|---------|-------------|

| Linear Regression | OLS with coefficients, R², adjusted R², F-test, AIC/BIC, Durbin-Watson |

| Logistic Regression | Logit with coefficients, Odds Ratio, Pseudo R², likelihood ratio test |

| Multicollinearity Detection | VIF values for each predictor with warning levels |

| Plain-Language Interpretation | Clear explanations of what each metric and coefficient means |

| Auto Detection | Automatically 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

| Parameter | Short | Required | Default | Description |

|-----------|-------|----------|---------|-------------|

| input | — | Yes | — | Input file path (CSV/TSV/Excel/JSON) |

| --target | -t | Yes | — | Target variable (dependent variable) column name |

| --features | -f | No | All numeric columns | Predictor column names, comma-separated |

| --type | -T | No | auto | Regression type: linear / logistic / auto |

| --output | -o | No | stdout | Output JSON file path |

| --no-const | — | No | false | Do not add an intercept term |

| --keep-na | — | No | false | Keep 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

How to use it

Copy the folder

Take zebbern/regression-modeler from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference pip. Without those the skill loads but fails at the first command.