2013-03-12 18 views
7

Wydaje się, że działa auto.arima z pakietu forecast w knitr skryptu zawsze generuje ostrzeżenie - i nie dostać to ostrzeżenie, gdy uruchomię go w normalnej R.Dlaczego knitr wyświetla ostrzeżenie używając auto.arima?

knitr Markdown przykładowy kod:

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

Wytwarza to:

knitroutput

gdzi EAS uruchamiając następujące w R normalnie nie wytwarza takiego ostrzeżenie:

> 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 

także od tego zestawu danych jest przykładem zestawu danych dla auto.arima jestem skłonny uwierzyć, że ostrzeżenie jest niepoprawna (ponieważ podejrzewam, że „dobre” Przykładem może zostało dane).

Każdy pomysł, co się dzieje?

+0

Czy próbowałeś pisać '{r, warning = FALSE}' ??? Zobacz [tutaj] (http://yihui.name/knitr/options) w celu uzyskania dalszych szczegółów. –

+0

@Jilber, który wyłącza ostrzeżenie. Ostrzeżenie nie powinno istnieć w pierwszej kolejności. Nie mam ostrzeżeń wyłączonych w R. – Corone

+1

+1. Obserwowałem także od czasu do czasu z pakietem 'drc' to samo. Uruchomiony kod w R nie wyświetla żadnych ostrzeżeń, ale podczas działania w dzianiu pojawiają się pewne ostrzeżenia. Mogę podać przykład roboczy, jednak powinienem tęsknić za komentarzem. – EDi

Odpowiedz

8

To ostrzeżenie istniało, ale zostało wewnętrznie stłumione przez forecast; zobacz options(warn = -1) w forecast:::search.arima.

knitr (w rzeczywistości pakiet evaluate) przechwytuje ostrzeżenia niezależnie od wartości getOption('warn'). W tym przypadku musisz użyć opcji warning=FALSE, jak sugerowała Jilber.

+0

Wydaje się, że dotyczy to również mojego przykładu-drc. – EDi

+0

@EDi prawdopodobnie; Nie sprawdziłem kodu źródłowego drc –

+1

Masz rację, że ostrzeżenie zostało wyłączone przez 'forecast', ale nie pochodzi ono z' forecast ::: search.arima'. To ostrzeżenie jest generowane przez test root jednostki w 'tseries :: kpss.test' wywoływanym przez' auto.arima'. Niestety generuje niepotrzebne ostrzeżenia, które tłumię, ponieważ niepotrzebnie niepokoją użytkowników. –