-4

次の時系列データがあります。以下に示すように、60 個のデータ ポイントがあります。このデータの簡単なプロットを以下に示します。これをプロットするためにRを使用しています。グラフの点に移動平均線を描くと、データのパターンがよくわかると思います。Rでそれを行う方法がわかりません。誰かがそれを手伝ってくれませんか。さらに、これがパターンを識別する良い方法であるかどうかはわかりません。また、良い方法があれば教えてください。ありがとうございました。

x <- c(18,21,18,14,8,14,10,14,14,12,12,14,10,10,12,6,10,8,
       14,10,10,6,6,4,6,2,8,6,2,6,4,4,2,8,6,6,8,12,8,8,6,6,2,2,4,
       4,4,8,14,8,6,6,2,6,6,4,4,8,6,6)

グラフ

4

2 に答える 2

6

についてのあなたの質問に答えるために、あなたはパッケージにあるmoving averages助けを借りてそれを達成することができます。rollmeanzoo

From Joshua's comment:に依存するに依存TTRするパッケージを調べることもできます。また、パッケージには他の移動平均があります:チェック。xtszooTTR?MA

require(TTR)
# assuming your vector is loaded in dat
# sliding window / moving average of size 5
dat.k5 <- rollmean(dat, k=5)
于 2013-01-23T15:34:33.953 に答える
5

1 つの合理的な可能性:

d <- data.frame(x=scan("tmp.dat"))
qplot(x=seq(nrow(d)),x,data=d)+geom_smooth(method="loess")

編集: https://meta.stackexchange.com/questions/164783/why-was-a-seemingly-relevant-non-offensive-comment-removedに基づいて、コメントから回答に移動しました

「これはパターンを識別する良い方法ですか」(これは StackOverflow のトピックから少し外れていますが、何でも) に関して; ローリング平均は完全に立派だと思いますが、より洗練された方法 (ここに示す局所的に重み付けされた回帰 [loess/lowess] など) は存在します。ただし、ここで検出する複雑なパターンが多くあるようには見えません。データは、最初は時間とともに減少し、その後横ばいになっているようです。ローリング手段とより洗練されたアプローチはよりきれいに見えるかもしれませんが、このデータセットでより深いパターンを識別できるとは思いません...

複数のデータセットに対してこの種のことを一度に実行したい場合(コメントに示されているように)、ggplot同じプロットの複数行またはファセットバージョンを自動的に生成する の機能が好きかもしれません。

于 2013-01-23T15:40:46.903 に答える