0 / 0
資料の 英語版 に戻る
時系列の主要機能
最終更新: 2024年7月04日
時系列の主要機能

時系列ライブラリーは、1 変量時系列、多変量時系列、複合キー時系列、数値タイプ、分類タイプに関するさまざまな関数を提供しています。

ライブラリーで提供されている機能は、大きく以下のように分類できます。

  • 時系列データの作成および保存に使用する時系列入出力
  • 時系列関数、変換、ウィンドウ操作またはセグメンテーション、およびレデューサー
  • スケーラブルな時系列関数を実行するための、Spark に対する時系列 SQL および時系列 SQL 拡張機能

以下のセクションで、例を使用して主要機能をいくつか示します。

時系列入出力

時系列の主要な入出力 (I/O) 機能では、pandas DataFrame または Python リストを使用します。 以下のコード・サンプルは、DataFrame からの時系列の作成を示しています。

>>> import numpy as np
>>> import pandas as pd
>>> data = np.array([['', 'key', 'timestamp', "value"],['', "a", 1, 27], ['', "b", 3, 4], ['', "a", 5, 17], ['', "a", 3, 7], ['', "b", 2, 45]])
>>> df = pd.DataFrame(data=data[1:, 1:], index=data[1:, 0], columns=data[0, 1:]).astype(dtype={'key': 'object', 'timestamp': 'int64', 'value': 'float64'})
>>> df
key  timestamp  value
  a          1   27.0
  b          3    4.0
  a          5   17.0
  a          3    7.0
  b          2   45.0

#Create a timeseries from a dataframe, providing a timestamp and a value column
>>> ts = tspy.time_series(df, ts_column="timestamp", value_column="value")
>>> ts
TimeStamp: 1     Value: 27.0
TimeStamp: 2     Value: 45.0
TimeStamp: 3     Value: 4.0
TimeStamp: 3     Value: 7.0
TimeStamp: 5     Value: 17.0

時系列からpandas DataFrameに戻すには、to_df関数を使用します:

>>> import tspy
>>> ts_orig = tspy.time_series([1.0, 2.0, 3.0])
>>> ts_orig
TimeStamp: 0     Value: 1
TimeStamp: 1     Value: 2
TimeStamp: 2     Value: 3

>>> df = ts_orig.to_df()
>>> df
   timestamp  value
0          0      1
1          1      2
2          2      3

データ・モデル

Open Geospatial Consortium (OGC) などの標準によって管理されている空間データ型などの一部のデータ型とは異なり、時系列データにはモデルやデータ型に標準がありません。 時系列データでの課題は、Spark Resilient Distributed Dataset (RDD) のものと同じように、サポートが必要なさまざまな関数が存在することです。

データ・モデルによって、時系列のセグメンテーションやウィンドウ操作、1 つの時系列から別の時系列への変換、時系列から静的値を計算するレデューサー、複数の時系列を結合する結合、異なるタイム・ゾーンからの時系列のコレクターなど、さまざまな形式に渡る幅広い操作を実行できます。 時系列ライブラリーによって、中核となるデータ構造を変更不可のままにして、新しい関数をプラグ・アンド・プレイで使用できます。 また、このライブラリーは、数値タイプの時系列と分類タイプの時系列をサポートしています。

複数のタイム・ゾーンや人間が読めるさまざまな時刻形式を備えた、データ・モデルの主要な側面は、時間参照システム (TRS) のサポートです。 すべての時系列が TRS (システム・デフォルト) に関連付けられます。TRS は、ユーザーが選択した特定のものにいつでも再マップでき、特定の時系列や時系列のセグメントの変換を容易に行うことができます。 時間参照システムの使用を参照してください。

さらに、大規模な時系列を処理するというニーズに対応するために、このライブラリーでは、最大限定の時間的依存関係を特定するためのメカニズムを提供することで、遅延評価構成体を提供しています。 この構成体は、Spark の計算グラフの構成体に非常に似ています。この場合も、必要に応じてデータがメモリーに読み込まれ、必要な場合にのみ計算が実行されます。

時系列データ・タイプ

数値、分類、配列、ディクショナリーのデータ構造にまたがる時系列の要素として、複数のデータ型を使用できます。

以下のデータ型が時系列でサポートされています。

データ・タイプ 説明
数値 倍精度や整数を含む数値タイプの 1 変量観測を伴う時系列。 例えば、[(1, 7.2), (3, 4.5), (5, 4.5), (5, 4.6), (5, 7.1), (7, 3.9), (9, 1.1)]
数値配列 倍精度配列や整数配列を含む数値タイプの多変量観測を伴う時系列。 例:[(1, [7.2, 8.74]), (3, [4.5, 9.44]), (5, [4.5, 10.12]), (5, [4.6, 12.91]), (5, [7.1, 9.90]), (7, [3.9, 3.76])]
ストリング Stringタイプの単変量観測の時系列。例:[(1, "a"), (3, "b"), (5, "c"), (5, "d"), (5, "e"), (7, "f"), (9, "g")]
ストリング配列 文字列配列型の多変量観測値を持つ時系列。例:[(1, ["a", "xq"]), (3, ["b", "zr"]), (5, ["c", "ms"]), (5, ["d", "rt"]), (5, ["e", "wu"]), (7, ["f", "vv"]), (9, ["g", "zw"])]
セグメント セグメントの時系列。 segmentBy関数の出力は、数値、ストリング、数値配列、およびストリング配列を含む、任意のタイプにすることができます。 例えば、次のとおりです。[(1,[(1, 7.2), (3, 4.5)]), (5,[(5, 4.5), (5, 4.6), (5, 7.1)]), (7,[(7, 3.9), (9, 1.1)])]
辞書 ディクショナリーの時系列。 ディクショナリーの内部に任意のタイプを設定できます。

時系列関数

提供される時系列パッケージに含まれているさまざまな関数を使用すると、時系列データを分析して意味のある情報を抽出し、その情報を使用して、以前の観測値に基づいて新しい値を予測するために使用できるモデルを作成できます。 時系列関数を参照してください。

詳細情報

tspy PythonSDKを使用するには、tspy PythonSDK資料を参照してください。

親トピック: 時系列分析