ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

timeseries クラス

timeseries オブジェクトの作成

説明

時系列は、時間を追って順に (多くの場合は一定間隔で) サンプリングされたデータ ベクトルです。このようなデータは、多くの他のデータ解析の基礎となる、ランダムにサンプリングされたデータとは区別されます。時系列は、集団の動態や過程の時間発展を表します。時系列の線形順序は専用の手法で、データ解析においてデータに固有の位置を与えます。時系列解析は、以下と関連します。

  • パターンの識別

  • パターンのモデル化

  • 値の予測

構築

ts = timeseries は、空の時系列オブジェクトを作成します。

ts = timeseries(tsname) は、時系列オブジェクトの名前 (tsname) を使用して、空の時系列オブジェクトを作成します。この名前は時系列変数名と異なってもかまいません。

ts = timeseries(data) は、指定された data を使用して時系列オブジェクトを作成します。

ts = timeseries(data,time) は、指定された datatime を使用して、時系列オブジェクトを作成します。

ts = timeseries(data,time,quality) は、QualityInfo.Code で定義されたコードに対して品質を指定します。

ts = timeseries(data,'Name',tsname) は、指定された data と名前 tsname を使用して、時系列オブジェクトを作成します。

ts = timeseries(data,time,'Name',tsname) は、指定された datatime および名前 tsname を使用して、時系列オブジェクトを作成します。

ts = timeseries(data,time,quality,'Name',tsname) は、指定された quality と名前 tsname を使用します。

入力引数

data

時系列データ (サンプルの配列である場合があります)

tsname

文字列として指定された時系列名

既定値: ' '

time

時間ベクトル

時間値が日付文字列の場合は、Time を日付文字列のセル配列として指定しなければなりません。 時間ベクトルに重複する値が含まれる場合、以下の条件を満たす必要があります。

  • 重複する値は、隣接する要素を占有しなければなりません。

  • 時間値は、減少してはなりません。

resamplesynchronize などのメソッドを使用している内挿時系列データでは、入力 timeseries に重複する時間が含まれているかどうかによって、異なる結果が生成されることがあります。

既定値: 0 から N-1 まで 1 秒間隔の範囲の時間ベクトル。ここで、N はサンプル数です。

quality

-128 から 127 の値をもつ整数ベクトルまたは配列です。これは、QualityInfo.Code で定義されたコードの特性を指定します。

Quality がベクトルの場合:

  • Quality は、time ベクトルと同じ長さでなければなりません。

  • Quality 値が、対応するデータ サンプリングに適用されます。

Quality が配列の場合:

  • Quality は、データ配列と同じサイズでなければなりません。

  • Quality 値は、ts.data 配列の対応するデータ値を適用します。

プロパティ

Data

時系列データ。各データ サンプルは個々の時間に対応します。

スカラー、ベクトル、または多次元配列のデータを使用できます。データの最初または最後のどちらかの次元が Time に整合していなければなりません。

既定の設定では、NaN は、欠損値または未指定のデータを表します。欠損データを計算でどのように取り扱うかを決めるには、TreatNaNasMissing プロパティを設定します。

属性:

Dependenttrue

DataInfo

Data の内容に関する情報を保存するフィールドを含みます。

  • Units — データの単位を指定する文字列です。

  • Interpolation — この timeseries オブジェクトの内挿法を指定する tsdata.interpolation オブジェクト。

    tsdata.interpolation オブジェクトのフィールドは、以下を含みます。

    • Fhandle — ユーザー定義の内挿関数の関数ハンドルです。

    • Name — 内挿法の名前を指定する文字列です。事前に定義されているメソッドは、'linear''zoh' (ゼロ次ホールド) です。'linear' は既定の設定です。

  • UserData — ユーザー定義情報は、文字列で入力します。

Events

この timeseries オブジェクトに関するイベント情報を格納する tsdata.event オブジェクトの配列。

addevent メソッドを使用することで、イベントが追加できます。tsdata.event オブジェクトのフィールドは、以下を含みます。

  • EventData — イベントに関するユーザー定義の情報

  • Name — イベント名を指定する文字列。

  • Time — 実数または日付文字列で指定したイベントが起こる時間値です。

  • Units — 時間の単位。

  • StartDate — MATLAB® 日付文字列形式で指定される参照日。数値の (日付文字列でない) 時間ベクトルがある場合、StartDate は空になります。

IsTimeFirst

時間ベクトルが Data 配列の最初または最後のどちらの次元に合わせて割り当てられているかを指定する論理値 (true または false) です。値は 3 次元以上の次元のデータの場合は false、それ以外の場合は true です。

  • true — データ配列の最初の次元が、時間ベクトルに合わせて割り当てられます。例: ts = timeseries(rand(3,3),1:3);

  • false — データ配列の最後の次元が、時間ベクトルに合わせて割り当てられます。例: ts = timeseries(rand(3,4,5),1:5);

属性:

Dependenttrue
SetAccess'protected'

Length

timeseries オブジェクト内の時間ベクトルの長さ。

属性:

Dependenttrue
SetAccess'protected'

Name

文字列 tsname として入力する timeseries オブジェクト名。

この名前は、MATLAB ワークスペースの timeseries の変数名とは異なるものにできます。

Quality

-128 から 127 の値をもつ整数ベクトルまたは配列です。これは、QualityInfo.Code で定義されたコードの特性を指定します。

Quality がベクトルの場合は、時間ベクトルと同じ長さでなければなりません。この場合、各 Quality 値は、対応するデータ サンプルに適用されます。

Quality が配列の場合は、データ配列と同じサイズでなければなりません。この場合は、Quality の各値が、データ配列の対応する値に適用されます。

属性:

Dependenttrue

QualityInfo

数値の Quality コードを理解しやすい記述に変換するルックアップ テーブルを提供します。

QualityInfo フィールドは、次を含みます。

  • Code — 特性コードの "辞書" を定義する -128 から 127 の値をもつ整数ベクトル。Quality プロパティを使用すると、これらの整数値のいずれかを各 Data 値に割り当てることができます。

  • Description — 文字列のセル ベクトル。各要素は、関連する特性 Code のわかりやすい説明です。

  • UserData — 追加のユーザー定義情報を格納します。

CodeDescription の長さは、一致しなければなりません。

Time

時間ベクトルの配列です。

TimeInfo.StartDate が空の場合は、Time の数値は、指定された単位で 0 を起点として測定されます。TimeInfo.StartDate が定義された場合、時間値は指定された単位で StartDate を元に計算された日付文字列を示します。

Time の長さは、Data の最初または最後の次元のいずれかと同じでなければなりません。データに 3 以上の次元が含まれる場合、Time の長さは最後のデータ次元のサイズと一致します。それ以外の場合、Time の長さは最初のデータ次元のサイズと一致します。

属性:

Dependenttrue

TimeInfo

Time の情報を保持するために、以下のフィールドを使用します。

  • Units — 以下のいずれかの値をもつ時間単位。'weeks''days''hours''minutes''seconds''milliseconds''microseconds''nanoseconds'

  • Start — 開始時間

  • End — 終了時間 (読み取り専用)

  • Increment — 2 つの連続する時間値の間隔

  • Length — 時間ベクトルの長さ (読み取り専用)

  • Format — 日付文字列の表示形式を定義する文字列。詳細は、MATLAB 関数 datestr のリファレンス ページを参照してください。

  • StartDate — 基準日を定義する日付文字列。詳細は、MATLAB 関数 setabstime のリファレンス ページを参照してください。

  • UserData — 追加のユーザー定義情報を保存します

TreatNaNasMissing

DataNaN 値をどのように取り扱うか指定する論理値。

  • true — 統計演算を除き、常に NaN 値を欠損値として取り扱います (既定の設定)。

  • false — 統計演算に NaN の値を含めます。この場合は、NaN 値が結果に伝播されます。

UserData

オブジェクトに追加する任意のクラスのデータ用の汎用フィールド。

既定値: []

メソッド

時系列のメソッド

オブジェクト プロパティのクエリと設定を行い、データをプロットするメソッド

get

timeseries オブジェクトのプロパティ値を問い合わせます。

getdatasamplesize

timeseries オブジェクトの各データ サンプルのサイズを返します。

getqualitydesc

timeseries オブジェクトに割り当てられた Quality の値に基づいて、データの特性の説明を返します。

plot

timeseries オブジェクトをプロットします。

set

timeseries プロパティ値を設定します。

日付と時間を取り扱うメソッド

addsample

timeseries オブジェクトにデータ サンプルを追加します。

append

時間次元内の timeseries オブジェクトを連結します。

delsample

timeseries オブジェクトからサンプルを削除します。

detrend

時系列データから平均値や最適な近似直線を差し引いたり、すべての NaN を取り除きます。

filter

1 次元デジタル フィルターを用いて時系列データの周波数成分を成形します。

getabstime

timeseries オブジェクトからセル配列に日付文字列の時間ベクトルを抽出します。

getdatasamples

添字インデックス配列を使って、既存の timeseries オブジェクトから配列へデータ サンプルのサブセットを抽出します。

getsamples

添字インデックス配列を使って、既存の timeseries オブジェクトから新しい timeseries オブジェクトへデータ サンプルのサブセットを抽出します。

getinterpmethod

timeseries オブジェクトの内挿法の名前を取得します。

getsampleusingtime

指定した開始時間と終了時間の値に基づいて、既存の timeseries オブジェクトから新しい timeseries オブジェクトへデータ サンプルを抽出します。

idealfilter

timeseries オブジェクトに、理想パス フィルターまたはノッチ (非因果的) フィルターを適用します。

resample

新しい時間ベクトルを用いて、timeseries オブジェクトのデータを選択または内挿します。

setabstime

時間ベクトルの時間値を日付文字列として設定します。

setinterpmethod

timeseries オブジェクトの内挿法の名前を設定します。

setuniformtime

timeseries オブジェクトに一様な時間ベクトルを割り当てます。

synchronize

共通の時間ベクトルを使って、2 つの timeseries オブジェクトを同期およびリサンプリングします。

イベント メソッド

イベント オブジェクトを作成するには、コンストラクター tsdata.event を使用します。時系列のイベントを定義する例については、「イベントの定義」を参照してください。

addevent

timeseries オブジェクトに、1 つまたは複数のイベントを追加します。

delevent

timeseries オブジェクトから、1 つまたは複数のイベントを削除します。

gettsafteratevent

指定したイベントの後または同時に起こる既存の時系列からサンプルを抽出することにより、新しい timeseries オブジェクトを作成します。

gettsafterevent

既存の時系列から指定したイベント後に起こるサンプルを抽出することにより、新しい timeseries オブジェクトを作成します。

gettsatevent

既存の時系列から指定したイベントと同時に起こるサンプルを抽出することにより、新しい timeseries オブジェクトを作成します。

gettsbeforeatevent

既存の時系列から指定したイベントの前または同時に起こるサンプルを抽出することにより、新しい timeseries オブジェクトを作成します。

gettsbeforeevent

既存の時系列から指定したイベントの前に起こるサンプルを抽出することにより、新しい timeseries オブジェクトを作成します。

gettsbetweenevents

既存の時系列から 2 つの指定したイベント間に起こるサンプルを抽出することにより、新しい timeseries オブジェクトを作成します。

timeseries オブジェクトを算術的に結合するメソッド

+

timeseries オブジェクトの対応するデータ値を加算します。

-

timeseries オブジェクトの対応するデータ値を減算します。

.*

timeseries のデータを要素ごとに乗算します。

*

timeseries のデータの行列乗算を行います。

./

timeseries のデータを要素ごとに除算します。

/

timeseries のデータの行列の右除算を行います。

.\

timeseries のデータの要素ごとの左除算を行います。

\

timeseries のデータの行列の左除算を行います。

timeseries オブジェクトの記述的統計を計算するメソッド

iqr

timeseries のデータの四分位範囲を返します。

max

timeseries のデータの最大値を返します。

mean

timeseries のデータの平均値を返します。

median

timeseries のデータの中央値を返します。

min

timeseries のデータの最小値を返します。

std

timeseries のデータの標準偏差を返します。

sum

timeseries のデータの総和を返します。

var

timeseries のデータの分散を返します。

定義

timeseries

timeseries と呼ばれる時系列のオブジェクトは、単一の時間インデックス データとプロパティの一貫した構造をもつ MATLAB 変数です。たとえば、データと時間ベクトルに加えて、イベントを保存するのに時系列オブジェクトも使用できます。このイベントは、データと時間に対するデータ品質と内挿法の記述情報です。

データ サンプル

時系列オブジェクトにおける データ サンプル は、特定の時間に 1 つまたは複数の値の記録を含みます。時系列のデータ サンプルの数は、時間ベクトルの長さと同じです。

たとえば、ts.data のサイズが 3 x 4 x 5 で、時間ベクトルの長さが 5 であるとします。このとき、サンプル数は 5 で、データ値の全体数は 3 x 4 x 5 = 60 です。

時間ベクトル

timeseries オブジェクトの時間ベクトルは、数値 (double) または有効な MATLAB データ文字列のいずれかです。

timeseries オブジェクトの TimeInfo.StartDate プロパティが空の場合は、time の値は、0 (または他の数値) に対して、指定した単位で測定されます。この場合は、時間ベクトルは相対的 (特定の起点に関連付けられていない時間の値を含む) になります。

TimeInfo.StartDate が空でない場合は、時間の値は StartDate に対して、指定した単位で測定される日付文字列です。この場合は、時間ベクトルは絶対的 (特定の日付に関連付けられた時間の値を含む) になります。

MATLAB で時系列用にサポートしている日付文字列の形式は、次のとおりです。

日付文字列の形式使用例
dd-mmm-yyyy HH:MM:SS01-Mar-2000 15:45:17
dd-mmm-yyyy01-Mar-2000
mm/dd/yy03/01/00
mm/dd03/01
HH:MM:SS15:45:17
HH:MM:SS PM3:45:17 PM
HH:MM15:45
HH:MM PM3:45 PM
mmm.dd,yyyy HH:MM:SSMar.01,2000 15:45:17
mmm.dd,yyyyMar.01,2000
mm/dd/yyyy03/01/2000

コピーのセマンティクス

値。コピー操作に対する値クラスの影響については、MATLAB ドキュメンテーションの「オブジェクトのコピー」を参照してください。

'LaunchData' という名前で 4 つのデータセットをもつ timeseries オブジェクトを作成します。各データセットは、長さ 5 の列をもち、既定の時間ベクトルを使用します。

b = timeseries(rand(5, 4),'Name','LaunchData')

長さ 5 で単一のデータセットをもつ timeseries オブジェクトを作成します。時間ベクトルは、1 から始まり 5 で終わります。

b = timeseries(rand(5,1),[1 2 3 4 5])

単一の時点に 5 つのデータ点をもつ 'FinancialData' という名前の timeseries オブジェクトを作成します。

b = timeseries(rand(1,5),1,'Name','FinancialData')

R2006a より前に導入

この情報は役に立ちましたか?