【问题标题】:I() equivalent (used in R), what is the Python equivalent?I() 等价物(在 R 中使用),Python 等价物是什么?
【发布时间】:2021-06-19 18:10:15
【问题描述】:

R中的I()函数用于在线性回归中创建新的预测器,例如X^2:

lm.fit2=lm(medv∼lstat +I(lstat ^2))

这里给出了很好的解释 (What does the capital letter "I" in R linear regression formula mean?)。

我正在尝试使用相同的公式在 Python 中进行线性回归,但我似乎找不到等价的。此代码适用于单个变量

fit3 = smf.ols('medv~lstat', data=data).fit()
print(fit3.summary())

但是如果我尝试,下面的代码sn-p,它显然不能正常工作。

fit3 = smf.ols('medv~lstat + lstat**2', data=data).fit()
print(fit3.summary())

尝试 ^ 运算符也没有意义,因为 Python 将此符号解释为按位异或。有谁知道 Python 中是否存在与 I() 相同的函数?

【问题讨论】:

    标签: python r olsmultiplelinearregression


    【解决方案1】:

    我找到了答案,好像很简单:

    f = 'medv~lstat + I(lstat**2)'
    fit3 = smf.ols(f, data=data).fit()
    print(fit3.summary())
    

    【讨论】:

    • statsmodels 使用 patsy 来解析类似 R 的输入。 Here's the quickstart 包括上述答案以及许多其他信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 2011-03-07
    • 2014-05-08
    • 2013-10-18
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    相关资源
    最近更新 更多