タグ付けされた質問 「time-series」

5
同じグラフでggplot2を使用して2つの変数を線としてプロットする
非常に新しい質問ですが、次のようなデータがあると言います。 test_data <- data.frame( var0 = 100 + c(0, cumsum(runif(49, -20, 20))), var1 = 150 + c(0, cumsum(runif(49, -10, 10))), date = seq(as.Date("2002-01-01"), by="1 month", length.out=100) ) を使用して、x軸に時系列var0とvar1同じグラフの両方をプロットするにはどうすればよいですか?色違いで作るとボーナスポイント、伝説を含めることができます!dateggplot2var0var1 これは非常にシンプルだと思いますが、そこに例を見つけることはできません。
305 r  ggplot2  graph  time-series  r-faq 

30
リアルタイム時系列データでのピーク信号検出
更新:これまでで 最高のパフォーマンスのアルゴリズムはこれです。 この質問では、リアルタイムの時系列データの突然のピークを検出するための堅牢なアルゴリズムについて説明します。 次のデータセットを検討してください。 p = [1 1 1.1 1 0.9 1 1 1.1 1 0.9 1 1.1 1 1 0.9 1 1 1.1 1 1 1 1 1.1 0.9 1 1.1 1 1 0.9 1, ... 1.1 1 1 1.1 1 0.8 0.9 1 1.2 0.9 1 1 1.1 …

10
時系列データを保存しますか、リレーショナルまたは非保存ですか?
SNMPを使用して(おそらく)5分間隔で、CPU使用率、ディスク使用率、温度などのさまざまなメトリックに関するデータをデバイスにポーリングするシステムを作成しています。最終的な目標は、システムのユーザーに時系列グラフの形で視覚化を提供することです。 私は過去にRRDToolの使用を検討しましたが、キャプチャされたデータを無期限に保存することは私のプロジェクトにとって重要であり、キャプチャされたデータへのより高いレベルでより柔軟なアクセスが必要であるため拒否しました。だから私の質問は本当に: グラフ化のためにデータをクエリするときのパフォーマンスに関しては、リレーショナルデータベース(MySQLやPostgreSQLなど)または非リレーショナルデータベースやNoSQLデータベース(MongoDBやRedisなど)のほうが優れています。 関連した リレーショナルデータベースが与えられた場合、data_instancesテーブルを使用します。このテーブルには、すべてのデバイスで測定されるすべてのメトリックについてキャプチャされたデータのすべてのインスタンスが格納され、次のフィールドが含まれます。 田畑: id fk_to_device fk_to_metric metric_value timestamp 特定のデバイスの特定のメトリックのグラフを描画する場合、他のデバイスを除外するこの特異なテーブルと、このデバイスに対して分析されている他のメトリックをクエリする必要があります。 SELECT metric_value, timestamp FROM data_instances WHERE fk_to_device=1 AND fk_to_metric=2 このテーブルの行数は次のようになります。 d * m_d * f * t ここdで、はデバイスの数、m_dはすべてのデバイスについて記録されているメトリックの累積数、fはデータがポーリングされる頻度、およびシステムがデータを収集していtた合計時間です。 年間5分ごとに3台のデバイスの10のメトリックを記録するユーザーの場合、500万レコード弱になります。 インデックス インデックスを付けずにこの継続的に拡張するテーブルfk_to_deviceをfk_to_metricスキャンしないと、時間がかかりすぎます。したがって、前述のフィールドにインデックスを付けることと、timestamp(ローカライズされた期間でグラフを作成するために)要件になります。 非リレーショナル(NoSQL) MongoDBにはコレクションという概念があります。テーブルとは異なり、これらは設定なしでプログラムで作成できます。これらを使用して、デバイスごとにデータのストレージを分割したり、デバイスごとに記録されたメトリックを分割したりすることもできました。 私はNoSQLの経験がなく、インデックス作成などのクエリパフォーマンス向上機能が提供されているかどうかはわかりませんが、前の段落では、データがNoSQLに格納される構造で従来のリレーショナルクエリ作業のほとんどを実行することを提案しています。 未定 正しいインデックス付けを使用するリレーショナルソリューションは、1年以内にクロールに減少しますか?または、コレクションに基づくNoSQLアプローチの構造(これは、格納されたデータの私のメンタルモデルに一致します)は顕著な利点を提供しますか?

3
クラス日付のx軸に垂直geom_vlineを取得するにはどうすればよいですか?
私はGoogleのグループのハドレーのポストを見つけにもかかわらずPOSIXctとgeom_vline、私はそれが成し遂げることができませんでした。私は時系列を持っており、たとえば1998年、2005年、2010年のような縦線を描きたいと思います。私は試したggplotし、qplot構文が、それでも私はどちらかまったく垂直線を見ていないか、縦線が非常に最初の垂直グリッドで描画され、シリーズ全体が右にやや奇妙にシフトしています。 gg <- ggplot(data=mydata,aes(y=somevalues,x=datefield,color=category)) + layer(geom="line") gg + geom_vline(xintercept=mydata$datefield[120],linetype=4) # returns just the time series plot I had before, # interestingly the legend contains dotted vertical lines 私の日付フィールドの形式は「1993-07-01」で、クラスはDateです。
109 r  date  ggplot2  time-series 

14
NumPyを使用して移動平均を計算する方法は?
単純にnumpy / scipyで移動平均を計算する関数はないようで、複雑な解につながります。 私の質問は2つあります。 numpyで移動平均を(正しく)実装する最も簡単な方法は何ですか? これは簡単ではなく、エラーが発生しやすいように思われるので、このケースにバッテリーを含めないことには十分な理由がありますか?

8
パンダは日付のヒストグラムをプロットできますか?
シリーズを取得して、dtype =のdatetime列に強制変換しましたdatetime64[ns](ただし、日付の解決だけが必要です...どのように変更するかわからない)。 import pandas as pd df = pd.read_csv('somefile.csv') column = df['date'] column = pd.to_datetime(column, coerce=True) しかし、プロットは機能しません: ipdb> column.plot(kind='hist') *** TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('float64') 週、月、または年ごとの日付数を示すヒストグラムをプロットしたいと思います。 確かにこれを行う方法はありpandasますか?

4
PostgreSQLで2つの日付間の時系列を生成する
このようなクエリがあり、2つの指定された日付の間の一連の日付を適切に生成します。 select date '2004-03-07' + j - i as AllDate from generate_series(0, extract(doy from date '2004-03-07')::int - 1) as i, generate_series(0, extract(doy from date '2004-08-16')::int - 1) as j との間2004-03-07で162の日付が生成され2004-08-16、これが必要です。このコードの問題は、二つの日付が異なる年からあるとき、私はしようとすると、それは例えば、正しい答えを与えていないだろうということです2007-02-01と2008-04-01。 より良い解決策はありますか?

8
パンダ:時間間隔による移動平均
私はパンダに不慣れです....私はたくさんのポーリングデータを持っています。3日間のウィンドウに基づいて、毎日の推定値を取得するために移動平均を計算したいと思います。この質問から理解できるように、rolling_ *関数は、特定の日時範囲ではなく、指定された数の値に基づいてウィンドウを計算します。 この機能を実装する別の機能はありますか?それとも私は自分で書くのに行き詰まっていますか? 編集: サンプル入力データ: polls_subset.tail(20) Out[185]: favorable unfavorable other enddate 2012-10-25 0.48 0.49 0.03 2012-10-25 0.51 0.48 0.02 2012-10-27 0.51 0.47 0.02 2012-10-26 0.56 0.40 0.04 2012-10-28 0.48 0.49 0.04 2012-10-28 0.46 0.46 0.09 2012-10-28 0.48 0.49 0.03 2012-10-28 0.49 0.48 0.03 2012-10-30 0.53 0.45 0.02 2012-11-01 0.49 0.49 …

2
ミリ秒を解析する方法は?
strptimeまたは他の関数を使用して、Rのミリ秒のタイムスタンプを解析するにはどうすればよいですか? time[1] # [1] "2010-01-15 13:55:23.975" strptime(time[1], format="%Y-%m-%d %H:%M:%S.%f") # [1] NA strptime(time[1], format="%Y-%m-%d %H:%M:%S") # [1] "2010-01-15 13:55:23"`

1
3か月のデータセットによる多変量時系列予測
3か月分のデータ(各行は毎日に対応)を生成し、同じものに対して多変量時系列分析を実行したいと思います。 利用可能な列は- Date Capacity_booked Total_Bookings Total_Searches %Variation 各日付のデータセットには1つのエントリがあり、3か月分のデータがあります。他の変数も予測するために、多変量時系列モデルを適合させたいと思います。 これまでのところ、これは私の試みであり、私は記事を読んで同じことを達成しようとしました。 私も同じことをした- df['Date'] = pd.to_datetime(Date , format = '%d/%m/%Y') data = df.drop(['Date'], axis=1) data.index = df.Date from statsmodels.tsa.vector_ar.vecm import coint_johansen johan_test_temp = data coint_johansen(johan_test_temp,-1,1).eig #creating the train and validation set train = data[:int(0.8*(len(data)))] valid = data[int(0.8*(len(data))):] freq=train.index.inferred_freq from statsmodels.tsa.vector_ar.var_model import VAR model …

2
パンダ:極小-極大に基づくデータのジグザグ分割
時系列データがあります。データを生成する date_rng = pd.date_range('2019-01-01', freq='s', periods=400) df = pd.DataFrame(np.random.lognormal(.005, .5,size=(len(date_rng), 3)), columns=['data1', 'data2', 'data3'], index= date_rng) s = df['data1'] 極大値と極小値を結ぶジグザグ線を作成します。これは|highest - lowest value|、各ジグザグ線のy軸上で、前の距離のパーセンテージ(たとえば20%)を超える必要があるという条件を満たすことです。ジグザグ線、および事前に記述された値k(1.2など) 私はこのコードを使用してローカル極値を見つけることができます: # Find peaks(max). peak_indexes = signal.argrelextrema(s.values, np.greater) peak_indexes = peak_indexes[0] # Find valleys(min). valley_indexes = signal.argrelextrema(s.values, np.less) valley_indexes = valley_indexes[0] # Merge peaks and valleys data …

1
`tempdisagg`パッケージの` td`コマンドを使用して月次データを日次データ頻度に分解するにはどうすればよいですか?
月別の頻度データがあり、それを日別の頻度データに分解しようとしています。したがって、以下のコードを使用して、R tdのtempdisaggパッケージのコマンドを使用します。 dat=ts(data[,2]) result=td(dat~1, conversion = "average", to = "day", method = "chow-lin-maxlog") 次に、次のエラーメッセージが表示されます。 Error in td(dat ~ 1, conversion = "average", to = "day", method = "chow-lin-maxlog") : 'to' argument: unknown character string 私が使用するデータdatは次のとおりです。 > dput(head(dat)) c(82.47703009, 84.63094431, 70.00659987, 78.81135651, 74.749746,82.95638213) したがって、このデータdatは毎月の頻度ですが、開始と終了はまだこれを反映していません。実際、開始日は1/1997、終了日は2019年9月です。 この月次データdatを日次頻度データに分解する方法について教えてください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.