Skill

Perform Statistical Modeling and Econometric Analysis

A skill for rigorous statistical modeling and econometrics in Python's statsmodels - regression, GLM, discrete choice, time series.

Works with numpypandasmatplotlib

74
Spark score
out of 100
Updated 5 days ago
Version 15.8.0

Add to Favorites

Why it matters

Leverage Statsmodels for rigorous statistical analysis, from linear regression to time series and discrete choice models. Generate publication-ready tables and perform essential diagnostic tests.

Outcomes

What it gets done

01

Fit various regression models (OLS, WLS, GLS, quantile regression).

02

Conduct time series analysis (ARIMA, SARIMAX, VAR, forecasting).

03

Perform generalized linear modeling for non-normal outcomes.

04

Run statistical tests and diagnostics, including assumption testing and outlier detection.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-statsmodels | bash

Overview

Statsmodels: Statistical Modeling and Econometrics

A skill for rigorous statistical modeling and econometrics in Python's statsmodels library, covering regression, GLM, discrete choice, time series, and diagnostic testing. Use it for statsmodels-specific model fitting, diagnostics, and inference; it is not a general statistics tutorial or a substitute for domain econometric judgment.

What it does

This skill provides rigorous statistical modeling and econometric analysis using Python's statsmodels library. It covers linear regression models (OLS, WLS for heteroskedastic errors, GLS for arbitrary covariance, GLSAR for autoregressive errors, Quantile Regression, Mixed Effects, Recursive/Rolling estimation) with comprehensive diagnostics, robust standard errors (HC, HAC, cluster-robust), influence statistics (Cook's distance, leverage, DFFITS), and model comparison via AIC/BIC and likelihood ratio tests. Generalized Linear Models extend to non-normal outcomes across Binomial (logistic), Poisson, Negative Binomial (overdispersed counts), Gamma, Inverse Gaussian, Gaussian, and Tweedie families with configurable link functions (logit, probit, log, identity, inverse, sqrt, cloglog, power). Discrete choice models cover binary (Logit, Probit), multinomial (MNLogit, Conditional Logit, Ordered), and count outcomes (Poisson, Negative Binomial, Zero-Inflated ZIP/ZINB, Hurdle models) with marginal effects and classification evaluation. Time series analysis spans univariate models (AutoReg, ARIMA, SARIMAX, Exponential Smoothing, ETS), multivariate models (VAR, VARMAX, Dynamic Factor Models, VECM for cointegration), and advanced models (State Space/Kalman filtering, Markov regime switching, ARDL), with stationarity testing (ADF, KPSS), forecasting with confidence intervals, Granger causality, impulse response functions, and forecast error variance decomposition. It provides an extensive statistical-tests and diagnostics toolkit: residual autocorrelation (Ljung-Box, Durbin-Watson, Breusch-Godfrey), heteroskedasticity (Breusch-Pagan, White, ARCH), normality (Jarque-Bera, Omnibus, Anderson-Darling), specification tests (RESET, Harvey-Collier), influence/outlier detection, parametric and non-parametric hypothesis tests, ANOVA, multiple-comparison corrections (Tukey's HSD, Bonferroni, FDR), effect sizes, and power analysis. It demonstrates the R-style formula API (smf.ols('y ~ x1 + x2 + C(category)', data=df)) for intuitive model specification with automatic categorical dummy coding and interaction terms, model-comparison workflows (AIC/BIC tables, likelihood ratio tests for nested models, k-fold cross-validation), and four full worked workflows (linear regression analysis, binary classification, count data analysis, time series forecasting) each as a numbered step sequence from exploration through validation. Reference files provide deep detail on linear models, GLM, discrete choice, time series, and stats diagnostics. It closes with 15 explicitly named common pitfalls: forgetting the constant term via sm.add_constant(), ignoring residual assumption checks, using the wrong model family for the outcome type, not checking convergence, misinterpreting coefficients under non-identity link functions, using Poisson with unchecked overdispersion, skipping robust SEs when needed, overfitting, data leakage, skipping out-of-sample validation, comparing non-nested models with LR tests instead of AIC/BIC, ignoring influential observations, uncorrected multiple testing, fitting ARIMA on non-stationary data, and confusing prediction intervals with confidence intervals.

When to use - and when NOT to

Use it when fitting regression models, performing GLM, analyzing discrete or count outcomes, conducting time series analysis and forecasting, running statistical tests and diagnostics, testing model assumptions, detecting outliers/influential observations, comparing models, or producing publication-ready statistical inference. It is specific to the statsmodels library's API and conventions, not a general statistics tutorial or a substitute for domain-specific econometric judgment.

Inputs and outputs

Inputs: a dataset and the statistical question being asked (regression, classification, count modeling, time series forecasting, or hypothesis testing).
Outputs: fitted statsmodels model code with .summary() output, diagnostic test results, model comparison tables, and forecasts or predictions with confidence/prediction intervals.

import statsmodels.api as sm
X = sm.add_constant(X_data)
model = sm.OLS(y, X)
results = model.fit()
print(results.summary())

Who it's for

Data scientists, econometricians, and analysts who need rigorous, assumption-checked statistical modeling in Python - from linear regression through GLM, discrete choice, and time series forecasting - using statsmodels' full diagnostic and inference toolkit.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.