問題タブ [time-series]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 興味深い時系列データを生成するためのコンパクトなアルゴリズムは何ですか?
ある種の質問はそれをすべて言います。
コードテストの目的であろうと、実際のプロセスをモデル化しているのであろうと、愛する人を感動させようとしているのであろうと、人々が興味深い時系列データを生成するために使用するアルゴリズムは何ですか?統合されたリストを備えた優れたリソースはありますか?値(プラスまたはマイナスの無限大を除く)または寸法に制約はありませんが、実際に人々が有用または刺激的であると感じた例を探しています。
倹約的で読みやすいコードサンプルのボーナスポイント。
database - ラスター データを格納するための適切な方法は何ですか?
私は多かれ少なかれジオリファレンスされたグリッドにさまざまな時系列データを保存しています。たとえば、緯度と経度の 0.2 度ごとに 1 つの値です。現在、データはテキスト ファイルに保存されているため、251 日目には次のように表示されます。
抽象化のレベルを上げ、パフォーマンスを向上させ、脆弱性を減らしたいと考えています (たとえば、現在のコードでは、既存の 2 つのコードの間に 1 日を挿入することはできません!)。BLOB-y RDBMS ハックをいじり、テキスト ファイル形式の各行をテーブルの行として複製することさえありました (タイムスタンプ/緯度のペアごとに 1 行、経度の増分ごとに 1 列 -- うん!)。
「実際の」ジオデータベースにアクセスすることもできますが、個々の値に緯度と経度でタグ付けするオーバーヘッドは法外に思えます。データのサイズと解像度は 10 年間変わっておらず、今後も変わる可能性は低いです。
私はすべてをNetCDFファイルに入れようと頑張ってきましたが、ファイルの考え方を完全に乗り越える必要があると思います.私のすべてのソフトウェアが日付からファイル名を見つけ出したり、複数のファイルを何年にもわたって処理したりする必要があるのは嫌いです. 10 年間 (およびカウント中) のすべてのデータを 1 つのファイルに入れる別の方法も、実行可能ではないようです。
何か素晴らしいアイデアや製品はありますか?
c# - 時系列の「つなぐ」
時系列データを処理するための単純な内部フレームワークを設計しています。LINQ が私の現在のおもちゃのハンマーであることを考えると、LINQ ですべてを叩きたいです。
クラス TimeSeries (Select()、Where() など) にメソッドを実装して、LINQ 構文を使用して時系列データを処理できるようにしたい
たとえば (A の x から x+10 を選択)、新しい時系列が得られます。
2 つ以上の時系列を組み合わせるのに最適な構文設計は何ですか? (from a in A from b in B select a+b) はネストされたループを表現するため、あまり良くありません。たぶんいくつか参加しますか?これは、暗黙の時間変数の結合に対応する必要があります。(私が念頭に置いているのは、lisp 'zip'関数に対応しています)
編集: いくつかの明確化が必要です。
時系列は、株価などの時間に依存する一種の機能です。時系列の組み合わせは、時間の関数としての 2 つの株価の差である可能性があります。
可能ですが、これを LINQ 構文を使用してきちんと表現できますか? 私はclass MyTimeSeries
自分でLINQメソッドを実装することを期待しています。
r - 08:00〜08:15のような時間間隔で動作する
最初のフィールドが期間を示す時系列をインポートしたいと思います。
Rにはこれをきちんと行うための機能がありますか?
ありがとう!
アップデート:
Godekeが提案したように、私が見つけた最も有望な解決策は、cronパッケージであり、substring()を使用して間隔の開始を抽出しました。
私はまだ関連する問題に取り組んでいるので、そこに着いたら解決策を更新します。
r - 複数の時系列を含む csv ファイル
多くの列とデータのセクションを含む csv ファイルをインポートしました。
ファイルのレイアウトは次のようなものです。
(異なるデータセットのヘッダーはまったく同じです。
これで、最初のデータセットを次のようにプロットできます。
次のより良い方法があるかどうか興味があります。
変換せずに、数値として読み取られたすべての数値を取得します。
意味のある方法で、ファイル内のさまざまなデータセットに対処します。
ヒントをいただければ幸いです。ありがとうございました。
ステータスアップデート:
私はまだRで良い解決策を見つけていませんが、Luaでスクリプトを書き始めて、個々の時系列を個別のファイルに分けました。Rがこれらすべてのファイルをどれだけうまく処理できるか知りたいので、今のところこれを開いたままにします。1日あたり8ファイルを取得します。
gnuplot - Gnuplotを使用した時系列の線形回帰
私はgnuplotの大ファンで、さまざまなプロジェクトで勉強している間ずっとそれを使用していました。
最近、Gnuplotを使用して、減量、運動結果、ガス消費量などの時系列をグラフ化したいと思いました。
したがって、x軸を次のようにスケーリングします
ここで、fit関数を使用して線形フィットを与えたいと思います。私の問題は、x軸が時間に関連している場合、それを機能させることができないということです。
sql - 大量生産用の rrd ツールの代替
時系列データをログに記録するための rrdtool に代わるものがあるかどうか知りたいです。多数のデバイスを監視するために拡張できるものを探しています。
この件について私が読んだことによると、rrdtool は、大量のデータでヒットすると I/O バウンドになります。私はこれを非常に多くのデバイスを監視するように拡張することを想定しているので、I/O を詰まらせない代替手段があるかどうか知りたいです。SQL ベースが望ましいですが、必ずしもそうとは限りません。
ありがとう
c# - 時系列および相関戦略
相関させて、csvファイルまたはメモリ内データテーブル(.NET)として表示したいさまざまな時系列があります。これらの時系列は、時間と値のペアの配列です(実際には、これらは時間と値だけではないオブジェクトです)。時系列は、異なる重複する期間にまたがる場合があり、一部には穴がある場合もあります(特定のタイムスタンプの値が欠落している)。
興味のある方のために、私はOPC HDA .NETライブラリを使用して、OPCHDAサーバーから過去の時系列を抽出しています。
結果のデータテーブルには、時系列ごとに1つの列があり、すべてタイムスタンプ列に基づいて時系列になっている必要があります。以下の例を参照してください。
これを達成するための最も効果的な方法は何でしょうか?「効果的」とは、コードの量が最も少ないことを意味します。ただし、時系列が非常に大きくなる可能性があることを考えると、メモリ使用量も問題になる可能性があります。
python - 確率時系列、観測データの確率(既視感)
わかりました皆さん...この質問を見てくれてありがとう。大学で以下のことをしたことを覚えていますが、正確な解決策を忘れていました。正しい方向に舵を切るテイカー。
N のデータの時系列 (3 つを使用します) があります。データ系列は時間順に連続しています (たとえば、obsOne[1] は obsTwo[1] および obsThree[1] と共に発生しました)。
obsOne[47, 136, -108, -15, 22, ...], obsTwo[448, 321, 122, -207, 269, ...], obsThree[381, 283, 429, -393, 242, ...]
ステップ 2. データ シリーズから、データ シリーズごとに幅 Z の一連の X レンジ ビンを作成します。(観測 obsOne の例: bin1 = [<-108, -108] bin2 = [-108, -26] bin3 = [-26, 55] ... binX = [136, > 136]
ステップ 3. 次に、データ系列のすべての可能な組み合わせを含むテーブルを作成します。したがって、4 つのビンと 3 つのデータ系列がある場合、すべての組み合わせは合計 4x4x4 = 64 の可能な結果になります。(たとえば、row1 = obsOne bin1 + obsTwo bin1 + obsThree bin1、row2 = obsOne bin1 + obsTwo bin1 + obsThree bin2、... row5 = obsOne bin1 + obsTwo bin1 + obsThree binX、row6 = obsOne bin1 + obsTwo bin2 + obsThree bin1、row7 = obsOne bin1 + obsTwo bin1 + obsThree bin2、row9 = obsOne bin1 + obsTwo bin2 + obsThree binX、...)
ステップ 4. データ系列に戻り、データ系列の各行がテーブルのどこに該当するかを調べ、観測が何回該当するかを数えます。(例: obsOne[2] obsTwo[2] obsThree[2] = テーブルの行 30、obsOne[X] obsTwo[X] obsThree[X] = テーブルの行 52。
ステップ 5.次に、テーブルで正の一致がある行のみを取得し、その行に含まれる観測値の数を数え、データ系列の観測値の総数で割ります。これにより、観測されたデータのその範囲の確率が得られます。
数学の専門家ではなく、この基本的な質問で申し訳ありません。私は何年も前にこれを行いました。どの方法を使用したか忘れましたが、この長い (古代の「手動」) 方法よりもはるかに高速でした。当時、私は python を使用していませんでした。それは、C++ の他の独自のパッケージでした。この問題を Python (現在は Python ショップ) で解決できる何かが存在するかどうかを確認したいのですが、いつでも拡張できるので、それはソフトな制約です。
language-agnostic - 時系列データイベントからの状態の再構築
特定のプロジェクトについて、いくつかのイベントのデータを取得し、同時にそれらのイベントに関する変数を収集します。データが収集された後、ユーザーが関心を持っているものが何であれ、そのデータに対してユーザーがカスタマイズ可能な分析を実行します。
データは次のような形式で収集されます。
いつでも状態全体を理解するための最も簡単なアプローチは、データセット全体をウォークスルーすることです。たとえば、時刻0から開始し、タイムスタンプ5まで「分析」すると、その時点でx = 2、y = 1であり、イベントAが2回発生したことがわかります。これは本当に簡単な例です。ユーザーは、たとえばAからBまでのイベント間の時間に関心がある可能性があり(多くの場合、関心があります)、Aの最初の発生、次にB、またはAの最後の発生、次にB(それぞれ、9-3)を指定する可能性があります。 =6または9-4=5)。私が言ったように、これはあなたがセット全体を歩いているときに分析するのは簡単です。
次に、任意の時間枠を分析するためにモデルを適応させる必要があります。0-Nを見ると、それは簡単なケースです。しかし、たとえば1-5を見ると、0から始めて、yが最初は1であり、ウィンドウ1-5で変更されていないことがわからない限り、yの概念はありません。
私たちのアプローチは、基本的に変数のディクショナリを作成し、イベントに対してコールバックを実行することです。1つの分析が「イベントAが発生し、時間が3より大きい場合のxとは」である場合、最初のイベントAでそのコールバックを実行し、時間が3以下であるため、すぐに戻ります。4で再び実行されます。そして、t=4でxが1であったことを報告します。
「タイムウィンドウ」に適応するために、私は(バックグラウンドで)分析に追加の条件に取り組むつもりだと思います。分析が「イベントAが発生したときのxとは」であり、現在のウィンドウが1〜5の場合、「イベントAが発生して時間>=1かつ時間<=5のときのxとは」に変更します。次に、次のウィンドウが6〜10の場合、必要に応じて条件を再調整できます。
私の主な質問は、これはどのようなパターンに合うのかということです。 私たちは明らかにこのような問題に最初に取り組んだ人ではありませんが、他の人がどのように問題に取り組んだかを知ることはできませんでした。私はおそらくGoogleで何を検索するのか正確にはわからないでしょう。 特定の時間に単一の状態を検索するために、グローバル状態全体の辞書を保持する以外に、他のアプローチはありますか? また、データには数、場合によっては数万のレコードが含まれる可能性があるため、データセットの反復回数が少ないほど良いことにも注意してください。