2016-08-23 5 views
1

シールによる漏れ率を予測しようとしています。生データは60分ごとに秒を記録したデータの測定で構成されていますts関数で分単位の観測回数として頻度を持つことは可能ですか?

Raw Data

私は3600個のデータポイントを持っている(60秒×60分= 3600)。 Rでtsを使用してデータを時系列に変換しようとしています。次のコードを書きました。ここでは、周波数を60に設定しました。秒あたり60データポイントを収集したためです。周波数は、サイクルごとの観測値の数で、私の場合にはサイクルが、これはそれを行うための正しい方法分(私は仮定し、それが正しいかどうかわからない)

NEW <- ts(Set2.1, start= 0, end= 60, frequency=60) 

ですか? 3600のデータポイントの代わりに3601のデータポイントが得られるからです。 3600の代わりに3601のデータポイントが得られる理由はわかりません。私のコードで周波数が言及されていなければ、正確に3600のデータポイントが得られます。

分解して分解すると、次のエラーが表示されます。時系列に2ピリオド以下があります。データに季節性がないことは可能ですか?私の生データは非常に線形であり、それは上向きであり、その中にセソナリティがあるかどうかはわかりません。

答えて

0

ts()は、2つの時間単位で動作します。長い方には短い方のサンプルが多数含まれており、ts()にはfrequencyという引数が与えられています。

あなたのケースでは、より長い時間単位は分であり、より短い時間単位(すなわち秒)の60サンプルを含みます。時系列の任意の瞬間には、2つの数値でラベル付けすることができ、2つの単位を示します。あなたの場合も、10分35秒での測定はc(10, 35)と表示されます。

ts()の中に開始と終了を指定する場合は、2つの数字を指定することもできます。最初の測定値は0分1秒、すなわちc(0, 1)であり、最後の測定値は60分0秒です。つまり、c(60, 0)です。だから、これは期待される結果(私は例えば、いくつかのダミーの値を作成する)を与える:start()end() 2つの値を返す:あなたのアプローチで問題を説明するために

data <- rnorm(3600) 
ts_data <- ts(data, start = c(0, 1), end = c(60, 0), frequency = 60) 
length(ts_data) 
## [1] 3600 

を、私は2つの他の機能を導入する必要があります最初と最後の測定のラベル。したがって、上記の例:ここでは

start(ts_data) 
## [1] 0 1 
end(ts_data) 
## [1] 59 60 

、あなたはすでに少しの詳細を見ることができます:ts()は実際に60分0秒59分60秒として理解されるように、1でサンプルに番号を開始しません。あなたの例に今

ts_data2 <- ts(data, start = 0, end = 60, frequency = 60) 
start(ts_data2) 
## [1] 0 1 
end(ts_data2) 
## [1] 60 1 

あなたが見ることができるようにあなたがstartendにのみ単一の整数を渡すと、これは、短い単位の最初のサンプルに属するものと解釈されます。したがって、実際には、0分1秒から60分1秒まで実行される時系列を作成しました。これは、必要な秒数より1秒多くです。したがって、ts_data2の長さは3601です。

ちょっとした仕上げがあります。これはあなたの例に合っているので、ほとんどの場合、数秒で話しました。しかし、ts()は実際に何を知らなくても、より長い時間単位と短い時間単位で作業していることに注意することが重要です。したがって、c(4, 6)は、4分6秒、4週目6日目、または4週目6日を指すだけではありません。

+0

ありがとうございました!それは、tsの仕組みの背後にある理論を理解するのに役立ちました。私のコードは修正されており、もうその問題はありません。私の時間を保存していただきありがとうございます。 – Madhumitha

関連する問題