R在熊猫中的功能

时间:2017-09-06 20:14:36

标签: python r pandas dataframe linear-regression

我在R中有以下lm函数:

in_data <- c(0.5, 0.6, 0.7)
minutes <- c(30, 60, 90)
foobar <- lm(log(in_data) ~ 0 + hours)

问题

  • 我理解~运算符用于分隔左边和 模型公式中的右侧。所以在这种情况下,是吗 翻译成log(in_data) is dependent on 0 and hours ???我完全迷失在这里,特别是关于向量的日志如何依赖于0和另一个向量
  • 如果我试图将此移植到熊猫,那么最简单的方法是什么?我尝试了以下几点:

import statsmodels.formula.api as sm
import numpy as np
result = sm.ols(formula="np.log(in_data) ~ 0 + minutes", data=model_data).fit()

但是这引发了一个错误:

patsy.PatsyError: Number of rows mismatch between data argument and np.log(in_data) (1 versus 4)
    np.log(in_data) ~ 0 + minutes
    ^^^^^^^^^^^^^^^^^

1 个答案:

答案 0 :(得分:3)

多元线性回归方程的形式为y = b0 + b1x1 + b2x2 + ... +bkxk,其中b0是截距或常数。您可以在R中使用0 +从模型中排除此常量。另一种方法是使用- 1,它在R和patsy中都有效。因此,您需要将结果更改为:

result = sm.ols(formula="np.log(in_data) ~ minutes - 1", data=model_data).fit()