我在PHP脚本中运行R中的回归模型。事实上,我正在进行回归......
fit <- lm(VIEWS ~ TREND + STUNDE + WOCHENTAG + MONAT * JAHR)
...然后对结果应用box-cox-transformation,在我的情况下获取一个有意义的范围内的“最佳”lambda。
bc <- boxcox(fit, lambda = seq(0, 0.5, 0.005))
lambda <- bc$x[which.max(bc$y)]
如果lamda不为0,我应用实际的转换,一切正常:
VIEWS_BOX <- VIEWS^lambda - 1
我通过用VIEWS_BOX取代VIEWS来重复回归。
我的问题: 我需要为lambda = 0的情况写一个if条件,我读了很多并尝试了很多东西,但它只是不起作用。例如。我试过了:
VIEWS_BOX <- ifelse(rep(lambda = 0, length(VIEWS)), ln(VIEWS), VIEWS^lambda - 1)
任何人都可以帮助我吗?提前谢谢!
答案 0 :(得分:0)
在您的代码中,您使用了lambda = 0
,但=
表示已分配。它应该是lambda == 0
,因为==
表示比较。
ifelse
没有必要。您可以使用:
VIEWS_BOX <- if (lambda) VIEWS^lambda - 1 else log(VIEWS)