2015-08-04 3 views
1

Я пытаюсь запустить ARIMA на временном наборе данных, который находится в CSV-файле. Вот мой код до сих пор:Ошибка с ARIMA

Oil_all <- read.delim("/Users/Jkels/Documents/Introduction to Computational 
Statistics/Oil production.csv",sep="\t",header=TRUE,stringsAsFactors=FALSE) 
Oil_all 

файл выглядит следующим образом:

year.mbbl 
1  1880,30 
2  1890,77 
3 1900,149 
4 1905,215 
5 1910,328 
6 1915,432 
7 1920,689 
8 1925,1069 
9 1930,1412 
10 1935,1655 
11 1940,2150 
12 1945,2595 
13 1950,3803 
14 1955,5626 
15 1960,7674 
16 1962,8882 
17 1964,10310 
18 1966,12016 
19 1968,14104 
20 1970,16690 
21 1972,18584 
22 1974,20389 
23 1976,20188 
24 1978,21922 
25 1980,21732 
26 1982,19403 
27 1984,19608 

Код:

apply(Oil_all,1,function(x) sum(is.na(x))) 

Результаты:

[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

Когда я бегу ARIMA:

library(forecast) 
auto.arima(Oil_all,xreg=year) 

Это ошибка:

Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 
    0 (non-NA) cases 
In addition: Warning message: 
In data.matrix(data) : NAs introduced by coercion 

Таким образом, я был в состоянии вызвать в наборе данных и печатает. Однако, когда я иду, чтобы проверить, присутствуют ли значения с функцией apply, я вижу все 0, поэтому я знаю, что что-то не так, и, вероятно, поэтому я получаю ошибку. Я просто не уверен, что означает ошибка или как ее исправить в коде.

Любые советы?

ответ

1

Если бы я получил свой вопрос правильно, так и должно быть:

Oil_all <- read.csv("myfolder/myfile.csv",header=TRUE) 
## I don't have your source data, so I tried to reproduce it with the data you printed 
Oil_all 
    year value 
1 1880 30 
2 1890 77 
3 1900 149 
4 1905 215 
5 1910 328 
6 1915 432 
7 1920 689 
8 1925 1069 
9 1930 1412 
10 1935 1655 
11 1940 2150 
12 1945 2595 
13 1950 3803 
14 1955 5626 
15 1960 7674 
16 1962 8882 
17 1964 10310 
18 1966 12016 
19 1968 14104 
20 1970 16690 
21 1972 18584 
22 1974 20389 
23 1976 20188 
24 1978 21922 
25 1980 21732 
26 1982 19403 
27 1984 19608 


library(forecast) 
auto.arima(Oil_all$value,xreg=Oil_all$year) 

Series: Oil_all$value 
ARIMA(3,0,0) with non-zero mean 

Coefficients: 
     ar1  ar2  ar3 intercept Oil_all$year 
     1.2877 0.0902 -0.4619 -271708.4  144.2727 
s.e. 0.1972 0.3897 0.2275 107344.4  55.2108 

sigma^2 estimated as 642315: log likelihood=-221.07 
AIC=454.15 AICc=458.35 BIC=461.92 
+0

@ Nemesi Здравствуйте, поэтому я попробовал то, что вы предложили, и по какой-то причине я получаю новую ошибку: Ошибка в ts (x): объект ts должен иметь одно или несколько наблюдений – Elle

+0

Спасибо, я это понял вне! – Elle

+0

Привет, Elle, как предложение в целом: если вы делаете данные, которые используете, человек, который отвечает на ваш вопрос, может дать вам более точный совет. Рад слышать, что ты это сделал! – Nemesi

1

ваш импорт должен быть

Oil_all<-read.csv("/Users/Jkels/Documents/Introduction to Computational Statistics/Oil production.csv") 

Именно поэтому ваши данные странно. Извините, у меня нет репутации для комментариев. Я сделал то же самое, что и Nemesi, и тогда это сработало. Я думаю, вы пытаетесь импортировать csv в виде файла с разделителями табуляции.

+0

Спасибо! Я понял! – Elle

Смежные вопросы