Python数学建模库StatsModels统计回归简介初识
StatsModels是Python数据分析常用的库之一,它是用于拟合和分析各种统计模型的库。其中包括线性回归、广义线性模型、时间序列分析等。本文将简单介绍StatsModels库中的统计回归分析。
一、线性回归
线性回归是一种用于探索两种变量之间关系的统计学方法。其中一个变量被看做是自变量,另一个变量则被看做是因变量。线性回归对这两种变量进行拟合,通过最小化误差来预测因变量的值。StatsModels库中的线性回归模型使用OLS模块实现。
下面是一个简单的线性回归示例:
import statsmodels.api as sm
import numpy as np
import pandas as pd
# 构造数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([3, 5, 7, 9, 11])
# 添加常数项
x = sm.add_constant(x)
# 构建模型
model = sm.OLS(y, x)
# 拟合数据
results = model.fit()
# 打印结果
print(results.summary())
此代码生成以下摘要:
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 1.000
Model: OLS Adj. R-squared: 1.000
Method: Least Squares F-statistic: 1.026e+32
Date: Fri, 03 Sep 2021 Prob (F-statistic): 0.00
Time: 09:00:00 Log-Likelihood: 143.71
No. Observations: 5 AIC: -283.4
Df Residuals: 3 BIC: -283.8
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const 2.0000 2.9e-15 6.88e+14 0.000 2.000 2.000
x1 2.0000 1.98e-16 3.21e+15 0.000 2.000 2.000
==============================================================================
Omnibus: nan Durbin-Watson: 0.022
Prob(Omnibus): nan Jarque-Bera (JB): 0.488
Skew: -0.745 Prob(JB): 0.784
Kurtosis: 2.409 Cond. No. 6.00
==============================================================================
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
在上述示例中,我们首先生成x和y数组,并将x添加一个常数项。然后,我们使用OLS模块构建一个线性回归模型,并使用拟合方法来拟合数据。最后,我们通过打印summary()方法的结果,查看系数和其他统计信息。在这个例子中,线性拟合的结果显示斜率是2,常数项是2。
二、Logistic 回归
Logistic回归是一种用于处理分类问题的统计学方法。在Logistic回归中,因变量是二元的,典型的情况包括“是”或“否”,“真”或“假”,“成功”或“失败”等。自变量可以是连续或分类变量,通过最大化似然函数来拟合模型。StatsModels库中的Logistic回归模型采用GLM模块实现。
下面是一个简单的Logistic回归示例:
import statsmodels.api as sm
import pandas as pd
import numpy as np
# 构造数据
df = pd.DataFrame({'y': [1, 0, 1, 0, 1, 0, 1, 0], 'x1': [1, 2, 3, 4, 5, 6, 7, 8], 'x2': [5, 6, 7, 8, 9, 10, 11, 12]})
# 训练模型
model = sm.GLM(df['y'], df[['x1', 'x2']], family=sm.families.Binomial())
# 拟合模型
results = model.fit()
# 打印结果
print(results.summary())
此代码生成以下摘要:
Generalized Linear Model Regression Results
==============================================================================
Dep. Variable: y No. Observations: 8
Model: GLM Df Residuals: 6
Model Family: Binomial Df Model: 1
Link Function: logit Scale: 1.0000
Method: IRLS Log-Likelihood: -3.2203
Date: Fri, 03 Sep 2021 Deviance: 6.4406
Time: 09:00:00 Pearson chi2: 8.00
No. Iterations: 5
Covariance Type: nonrobust
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
x1 0.0499 0.333 0.150 0.881 -0.603 0.703
x2 -0.5214 0.436 -1.194 0.233 -1.378 0.335
==============================================================================
在上述示例中,我们首先生成一个包含因变量和自变量的数据框df,并使用GLM模块训练模型。最后,我们使用拟合方法进行拟合,并通过打印summary()方法的结果,查看系数和其他统计信息。
通过上述两个示例,我们可以看到StatsModels库中线性回归和Logistic回归的简单应用。这些模型的应用有助于通过统计学方法分析和预测数据。针对不同的问题,还有需选择使用合适的模型。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python数学建模库StatsModels统计回归简介初识 - Python技术站