python - 如何在多线回归中对解释变量进行平方
问题描述
所以我想让我的解释变量空气质量和吸烟状况以及吸烟状况平方作为我的线性回归的一部分。所以我可以通过在我正在读取的 .csv 文件中添加值来轻松解决这个问题,但我想使用 python 来操作它。有没有办法通过平方和利用多线回归的一部分来操纵吸烟状态?我的 csv 文件只有 3 列,包括空气质量、吸烟状况和哮喘。
x = df[['Air_quality', 'Smoking_Status']]
y = df['Asthma_Death_Rate']
x = sm.add_constant(x)
est = sm.OLS(y,x).fit()
解决方案
使用formula
API。使用patsy
符号,您应该可以轻松地计算一个术语,但有些东西对我不起作用。它仍然接受功能;在这种情况下,我们使用numpy.power
.
import statsmodels.formula.api as smf
import numpy as np
mod = smf.ols('Asthma_Death_Rate ~ Air_quality + np.power(Smoking_Status, 2)', data=df).fit()
样本数据:
import pandas as pd
np.random.seed(123)
s = 100
df = pd.DataFrame({'Air_quality': np.random.randint(1, 20, s),
'Smoking_Status': np.arange(0, s, 1) + np.random.normal(size=s),
'Asthma_Death_Rate': np.arange(0, s, 1)**2})
输出:部分mod.summary()
===============================================================================================
coef std err t P>|t| [0.025 0.975]
-----------------------------------------------------------------------------------------------
Intercept 3.4253 33.039 0.104 0.918 -62.148 68.999
Air_quality 3.2522 2.721 1.195 0.235 -2.148 8.653
np.power(Smoking_Status, 2) 0.9916 0.005 193.833 0.000 0.981 1.002
按照设计,Asthma_Death_Rate 与 Smoking_Status 平方非常相关。
推荐阅读
- r - 使用 sp/rgeos 查找 3 个数据集中的点之间的最近距离?
- laravel - 如何使用 Laravel 在 SPA 中添加路由?
- c++ - C ++地图容器擦除()分段错误
- c# - WM_PAINT 消息频率:C# (.Net Framework 4.7.2 WinForms) vs. C++
- mysql - 将 SQL 查询重写为 HQL
- ios - Swift - 从 Firestore 加载后,将数据从 Base ViewController 传递到两个 Container ViewController
- c# - C# Var vs Target-typed new
- regex - 如何在apache免费标记中比较两个字符串
- python - 检查 discord.py 中的给定消息内容时指令不起作用
- java - 如何使用 Apache HttpClient 登录 Webcrawler?