如何在多元scipranet中学习多元回归?

2024-10-05 14:25:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我的python代码最初输出这些结果,一个关于人口普查区域(基本上是一块土地)人口和各种土地覆盖类型的字典列表。这里是:

[{'Total Population:': 4585, 'Total Water Ice Cover': 2.848142234497044, 'Total Developed': 17.205368316575324, 'Total Barren Land': 0.22439908514219134, 'Total Forest': 34.40642126612868},

 {'Total Population:': 4751, 'Total Water Ice Cover': 1.047783534830167, 'Total Developed': 37.27115716753022, 'Total Barren Land': 0.11514104778353484, 'Total Forest': 19.11341393206678},

 {'Total Population:': 3214, 'Total Water Ice Cover': 0.09166603009701321, 'Total Developed': 23.50469788404247, 'Total Barren Land': 0.2597204186082041, 'Total Forest': 20.418608204109695},

 {'Total Population:': 5005, 'Total Water Ice Cover': 0.0, 'Total Developed': 66.37545713124746, 'Total Barren Land': 0.0, 'Total Forest': 10.68671271840715},

...
]

然后将代码放入pandas对象中:

^{pr2}$

然后得到皮尔逊“r”相关性:

pd.set_option("precision",4)  # only show 4 digits

# remove 'Total ' from column names to make printing smaller
df.rename(columns=lambda x: x.replace("Total ", ""), inplace=True)  

corr = df.corr(method="pearson")
print(corr)
#                 Barren Land  Developed  Forest  Population:  Water Ice Cover
#Barren Land           1.0000    -0.9579  0.7361      -0.7772           0.4001
#Developed            -0.9579     1.0000 -0.8693       0.5736          -0.6194
#Forest                0.7361    -0.8693  1.0000      -0.1575           0.9114
#Population:          -0.7772     0.5736 -0.1575       1.0000           0.2612
#Water Ice Cover       0.4001    -0.6194  0.9114       0.2612           1.0000

现在我有了人口和各种土地覆盖类型之间的皮尔逊r相关值。在

我现在要做的是计算多元线性回归。我试图在以下地表覆盖的人口密度和面积百分比之间进行多元线性回归,并计算回归的R2:已开发、种植类/栽培类和其他一些。这也可以通过熊猫来实现吗?在

谢谢你


Tags: 代码类型dfcovertotal土地人口population
1条回答
网友
1楼 · 发布于 2024-10-05 14:25:16

您可以使用Scikit learn或Statsmodels进行多元回归。在

您可以在这里看到使用scikit\u learn的多元回归示例:Multiple linear regression in Python

至于Statsmodels,您可以这样做:

import statsmodels.api as sm    

X = df[[“variable_1”, “variable_2”]]
y = df[“target”]

model = sm.OLS(y, X).fit()
predictions = model.predict(X)
model.summary()

相关问题 更多 >