Python中的statsmodels.apiGLM:泊松回归与计数数据模型
发布时间:2023-12-24 05:00:17
statsmodels是一个Python库,提供了多种统计模型的实现。其中的GLM模块实现了广义线性模型,包括泊松回归和计数数据模型。
泊松回归是一种广义线性模型,用于建立与计数数据相关的回归模型。在泊松回归中,因变量是一个计数值,如发生的事件次数,而自变量可以是连续值或分类变量。
首先,我们需要导入statsmodels中的GLM和Poisson类,以及用于数据处理的numpy和pandas库。
import statsmodels.api as sm from statsmodels.genmod.families import Poisson import numpy as np import pandas as pd
接下来,我们创建一个示例数据集。假设我们有一份数据,包含了每个城市的人口和每个城市发生的交通事故次数。
data = {'Population': [1000, 2000, 3000, 1500, 2500],
'Accidents': [5, 10, 15, 7, 12]}
df = pd.DataFrame(data)
然后,我们需要为GLM模型指定自变量和因变量。在这个例子中,我们将人口作为自变量,交通事故次数作为因变量。
X = df['Population'] y = df['Accidents']
接下来,我们创建一个GLM对象,并使用Poisson作为family参数,因为我们的因变量是一个计数值。
model = sm.GLM(y, X, family=Poisson())
之后,我们可以使用fit()方法来拟合模型,并输出拟合结果。
result = model.fit() print(result.summary())
运行上述代码,我们可以得到泊松回归模型的拟合结果。结果中包含了模型的各种统计指标,如回归系数、标准误差、z值和p值等。
最后,我们可以使用拟合结果来做预测。
new_data = {'Population': [3500]}
new_df = pd.DataFrame(new_data)
predictions = result.predict(new_df)
print(predictions)
在上面的代码中,我们创建了一个新的数据集,包含一个未见过的城市的人口数量。然后,使用拟合结果对该城市的交通事故次数进行预测。
这就是一个使用statsmodels的GLM模块进行泊松回归的例子。通过这个例子,我们可以学习到如何使用GLM模块来建立和解释计数数据的回归模型。
