我在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
^^^^^^^^^^^^^^^^^
答案 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()