gpt4 book ai didi

Python - 在回归中减去两个变量而不创建新变量

转载 作者:行者123 更新时间:2023-12-01 09:05:11 24 4
gpt4 key购买 nike

假设我正在倒退

y = x1 + x4

其中 x4 = x2 - x3

在 R 中,有一个函数 I(),这样我就不必在数据集中创建新变量 x4,而只需编写

y = x1 + I(x2 - x3)

查看详细信息: What does the capital letter "I" in R linear regression formula mean?

Python 中有类似的方法吗?例如使用 statsmodels.formula.apisklearn

最佳答案

通过statsmodels.formula.api,您可以使用 numpy 中的矢量化函数。要应用减法,您可以使用np.subtract():

import numpy as np
import statsmodels.formula.api as smf
import pandas as pd

y = np.random.uniform(0, 20, size=100)
x1 = np.random.uniform(0, 20, size=100)
x2 = np.random.uniform(0, 20, size=100)
x3 = np.random.uniform(0, 20, size=100)
x = np.stack([y, x1, x2, x3], axis=1)
df = pd.DataFrame(x)
df.columns = ["y", "x1", "x2", "x3"]

fit = smf.ols(formula="y~x1+np.subtract(x2, x3)", data=df).fit()
print(fit.summary())

(示例数据显然没有意义,并导致 R 平方几乎为零的回归,但它显示了其工作原理。)

关于Python - 在回归中减去两个变量而不创建新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52120834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com