regression-modeler — Claude Code skill: regression on CSV
Fits OLS or logistic regression on your table and explains the coefficients in plain language. Handy when you need significance checks without writing the stats code yourself.
npx skills add zebbern/claude-code-guide --skill regression-modeler -a claude-codeWhat regression-modeler does
The skill runs scripts/regression_analyzer.py against a CSV, TSV, Excel or JSON file. Point --target at the dependent column and pass predictors with --features as a comma-separated list. Leave features out and every numeric column gets used.
Linear output covers coefficients, R² and adjusted R², the F-test, AIC/BIC and the Durbin — Watson statistic. Logistic output gives coefficients, odds ratios, pseudo-R² and a likelihood ratio test. VIF is computed per predictor with warning levels, so multicollinearity shows up right away. The default --type auto flips to logistic when the target holds only zeros and ones.
You need Python 3.8+ plus pandas, numpy, statsmodels and scipy. Rows with missing values are dropped unless you pass --keep-na, which is meant for debugging. Results go to stdout or to a JSON file via --output.
What it helps with
- fit a linear regression on a spreadsheet
- test predictor significance with p-values
- spot multicollinearity through VIF
- build a logistic model for a binary target
- get metric explanations in plain language
Example prompts for the agent
- run a regression on data.csv with price as the target
- fit a logistic regression for churn using age, income, tenure
- save the regression results to result.json
How to install regression-modeler
1Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill regression-modeler -a claude-code2Manually: put the files in place
~/.claude/skills/regression-modeler/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/regression-modeler/
1Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill regression-modeler -a codex2Manually: put the files in place
.agents/skills/regression-modeler/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill regression-modeler -a cursor2Manually: put the files in place
.cursor/skills/regression-modeler/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install zebbern/claude-code-guide regression-modeler2Manually: put the files in place
.github/skills/regression-modeler/SKILL.md1Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill regression-modeler -a gemini-cli2Platform CLI
gemini skills install https://github.com/zebbern/claude-code-guide --path skills/regression-modelerManually: put the files in place
.devin/skills/regression-modeler/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill regression-modeler -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about regression-modeler
How do I install regression-modeler in Claude?
Run npx skills add zebbern/claude-code-guide --skill regression-modeler -a claude-code. The skill lands in ~/.claude/skills/regression-modeler/SKILL.md.
What does regression-modeler do?
It fits OLS or logistic regression on an uploaded table and reports coefficients, R², p-values and VIF, with plain-language notes on what each metric means.
What do I need to run it?
Python 3.8+ and the pandas, numpy, statsmodels and scipy packages, installed with pip install pandas numpy statsmodels scipy.
Source text
SKILL.md · MIT
---
name: regression-modeler
description: "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."
license: MIT
---
# 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
```bash
# 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
```bash
python3 scripts/regression_analyzer.py <data_file> --target <target_column> [options]
```
### Specifying Regression Type
```bash
# 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
```bash
# 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)
```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
```bash
pip install pandas numpy statsmodels scipy
```
© zebbern · MIT · zebbern/claude-code-guide