为啥 knitr 使用 auto.arima 显示警告?
Posted
技术标签:
【中文标题】为啥 knitr 使用 auto.arima 显示警告?【英文标题】:Why does knitr show a warning using auto.arima?为什么 knitr 使用 auto.arima 显示警告? 【发布时间】:2013-02-27 22:21:12 【问题描述】:似乎在knitr
脚本中从forecast
包运行auto.arima
总是会产生一个警告——当我在普通R 中运行它时不会收到这个警告。
knitr Markdown 示例代码:
```r
library(forecast)
```
Spurious warning from forecast and knitr
========================================
The following generates a warning that I don't think is valid
```r
summary(auto.arima(WWWusage))
```
产生这个:
而在 R 中运行以下命令通常不会产生这样的警告:
> library(forecast)
This is forecast 4.02
> summary(auto.arima(WWWusage))
Series: WWWusage
ARIMA(1,1,1)
Coefficients:
ar1 ma1
0.6504 0.5256
s.e. 0.0842 0.0896
sigma^2 estimated as 9.793: log likelihood=-254.15
AIC=514.3 AICc=514.55 BIC=522.08
Training set error measures:
ME RMSE MAE MPE MAPE MASE
0.3035616 3.1137542 2.4052748 0.2805566 1.9174634 0.5315228
此外,由于此数据集是 auto.arima
的示例数据集,我倾向于认为警告是不正确的(因为我怀疑会给出一个“好”的示例)。
知道发生了什么吗?
【问题讨论】:
你试过写r, warning=FALSE
???更多详情请见Here
@Jilber 只是禁用了警告。警告首先不应该存在。我没有在 R 中禁用警告。
+1。我也时不时地观察到与drc
包相同的东西。在 R 中运行代码不会显示任何警告,但在 knitr 中运行时会弹出一些警告。我可以举一个可行的例子,但是需要评论。
见here。
我可以重现该问题。我会试着找出原因。谢谢!
【参考方案1】:
该警告确实存在,但在内部被forecast
压制;参见forecast:::search.arima
中的options(warn = -1)
。
knitr
(实际上是evaluate
包)捕获警告,而不管getOption('warn')
值如何。在这种情况下,您必须按照 Jilber 的建议使用 warning=FALSE
选项。
【讨论】:
这似乎也适用于我的 drc-example。 警告被forecast
抑制是正确的,但它不是来自forecast:::search.arima
。此警告由tseries::kpss.test
中的单位根测试生成,由auto.arima
调用。不幸的是,它会产生毫无意义的警告,我禁止这样做,因为它们不必要地打扰了用户。
@RobHyndman 哦,是的,我忘了提这个;感谢您指出。我确实从tseries
找到了警告的来源,我不明白(我不是时间序列专家)。您是否试图就这个毫无意义的警告与作者/维护者争论?如果他们不同意您的意见,您可以使用suppressWarnings(kpss.test())
从根目录中删除警告。以上是关于为啥 knitr 使用 auto.arima 显示警告?的主要内容,如果未能解决你的问题,请参考以下文章
使用 auto.arima() 和 xreg 进行样本外预测