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.
Install with the open skills CLI (global, non-interactive — available in every Claude Code session):
npx skills add zebbern/claude-code-guide --skill "regression-modeler" -g -a claude-code -yOr manually — clone and copy the skill directory (SKILL.md + companion files):
git clone --depth 1 https://github.com/zebbern/claude-code-guide /tmp/claude-code-guide && cp -r /tmp/claude-code-guide/skills/regression-modeler ~/.claude/skills/regression-modelerThis skill is a directory: SKILL.md is the entry point; the files below ship with it.
---
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
```
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
Use when implementing any feature or bugfix, before writing implementation code