【问题标题】: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
  • 我可以重现该问题。我会试着找出原因。谢谢!

标签: r warnings knitr forecasting


【解决方案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()) 从根目录中删除警告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 2023-01-26
  • 2012-05-05
  • 2013-11-30
  • 1970-01-01
相关资源
最近更新 更多