Анализиране на времева серия с R

Аз съм начинаещ в R, следя PDF с анализ на времеви серии с R, от Walter Zucchini. Имам някои данни, идващи от сензор, по-специално мога да имам данни на всеки минути или на всеки 5 секунди. След това искам да използвам командата ts(), за да направя времева серия от тези стойности. Така че синтаксисът трябва да бъде data1mints <- ts(data1min ,freq = 525600), където 525600 са минутите в обикновена година.
след това се опитвам да чертая с тази команда plot(stl(log(data1min), s.window = "periodic")), но R ми казва, че

серията не е периодична или има по-малко от два периода

За да бъда по-точен, имам данни от 20 март до 28 март, така че нямах пълни данни за годината, но мисля, че това е достатъчен период, за да анализирам какво се случва всяка минута.

Какво греша?


person alessandrob    schedule 04.09.2013    source източник


Отговори (1)


Съобщението за грешка ви казва какво не е наред - имате по-малко от 2 периода.

Например,

# this works since there are 3 periods
freq <- 100
ny <- 3 # no of years, i.e. periods
n <- ny * freq
set.seed(13)
tt <- ts(rnorm(n), freq = freq)
s <- stl(tt, "periodic")

# this issues error since there are less than 2 periods. (We have changed ny to 1.)
freq <- 100
ny <- 1 ##
n <- ny * freq
set.seed(13)
tt <- ts(rnorm(n), freq = freq)
s <- stl(tt, "periodic")
person G. Grothendieck    schedule 04.09.2013
comment
Съжалявам, защо използвате freq=100, какво означава това? - person alessandrob; 04.09.2013
comment
Това беше само за да направим примера по-малък. Можете да използвате freq <- 525600, ако желаете и това няма да промени факта, че първият работи, а вторият дава грешка. - person G. Grothendieck; 04.09.2013
comment
Добре благодаря :) . Също така не разбирам къде моят масив от данни (data1min), както е написано по-горе, трябва да бъде вмъкнат във вашия пример и какъв период трябва да използвам, ако искам да направя като периоди минутите (т.е. всички минути от моите 8 дни?) - person alessandrob; 04.09.2013
comment
Примерът е самостоятелен и както е посочено в първото изречение, има за цел да илюстрира съобщението за грешка, което гласи, че трябва да предоставите поне два периода с данни. Не е нужно да вмъквате нищо. За да го стартирате, просто го копирайте и поставете в R. - person G. Grothendieck; 04.09.2013
comment
Примерът работи и е добре. Но въпросът ми е дали е възможно, имайки данни, идващи само от 8 дни, да ги анализирате по някакъв начин, също и без функцията ts. Благодаря - person alessandrob; 05.09.2013
comment
Честотата е броят точки от данни в период, така че ако зададете честота така, че периодът да е един ден, тогава с 8 дни имате 8 периода, което е повече от два периода, така че сте добре. Ако честотата е такава, че една седмица е период, или месец е период, или година е период, тогава очевидно нямате два цикъла, така че не сте добре. - person G. Grothendieck; 05.09.2013