2013-03-12 20 views
7

Sembra che in esecuzione auto.arima dal pacchetto forecast in uno script knitr genera sempre un avvertimento - e non ho ricevuto questo avviso quando l'eseguo in normale R.Perché knitr mostra un avvertimento usando auto.arima?

knitr Markdown Esempio di codice:

```{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)) 
``` 

Produce questo:

knitroutput

Wher eas eseguendo il seguente in R produce normalmente tale avvertimento:

> 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 

Inoltre poiché questo insieme di dati è l'esempio set di dati per auto.arima Sono propenso a credere che l'avvertimento non è corretto (dato che ho il sospetto che un esempio di "buona" sarebbe essere dato).

Qualche idea su cosa sta succedendo?

+0

Hai provato a scrivere '{r, warning = FALSE}' ??? Vedi [Here] (http://yihui.name/knitr/options) per ulteriori dettagli –

+0

@Jilber che disabilita l'avviso. L'avviso non dovrebbe esistere in primo luogo. Non ho avvisi disabilitati in R. – Corone

+1

+1. Ho anche osservato di tanto in tanto con il pacchetto 'drc' la stessa cosa. L'esecuzione di codice in R non mostra avvisi, ma quando si esegue in knitr appaiono alcuni avvisi. Posso dare un esempio funzionante, tuttavia è desiderabile un commento. – EDi

risposta

8

Tale avviso esisteva, ma è stato soppresso internamente da forecast; vedi options(warn = -1) in forecast:::search.arima.

knitr (in realtà il pacchetto evaluate) cattura gli avvisi indipendentemente dal valore getOption('warn'). In questo caso, è necessario utilizzare l'opzione warning=FALSE come suggerito da Jilber.

+0

Questo sembra applicarsi anche al mio esempio di drc. – EDi

+0

@ EI probabilmente; Non ho controllato il codice sorgente di drc –

+1

Sei corretto che l'avviso è stato soppresso da 'forecast', ma non proviene da' forecast ::: search.arima'. Questo avviso è generato dal test di root dell'unità in 'tseries :: kpss.test' chiamato da' auto.arima'. Sfortunatamente genera avvisi inutili che io sopprimo perché disturbano inutilmente gli utenti. –