メインコンテンツ

mape

配列間の平均絶対誤差率

R2022b 以降

説明

E = mape(F,A) は、予測 (予測値) の配列 F と実際 (観測値) の配列 A との間の平均絶対誤差率 (MAPE) を返します。

  • FA は同じサイズであるか、互換性のあるサイズでなければなりません。

  • FA が同じサイズのベクトルの場合、E はスカラーになります。

  • F-A が行列の場合、E は各列の MAPE を含む行ベクトルになります。

  • FA が多次元配列の場合、E にはサイズが 1 ではない最初の配列の次元に沿って計算された MAPE が含まれます。これらの要素はベクトルとして扱われます。この次元の E のサイズは 1、その他のすべての次元のサイズは F-A と同じになります。

E = mape(F,A,"all") は、FA のすべての要素の MAPE を返します。

E = mape(F,A,dim) は、次元 dim に沿って処理します。たとえば、FA が行列の場合、mape(F,A,2) は各行の要素について動作し、各行の MAPE が含まれた列ベクトルを返します。

E = mape(F,A,vecdim) は、ベクトル vecdim で指定されている次元に沿って動作します。たとえば、FA が行列の場合、mape(F,A,[1 2])FA のすべての要素について動作します。これは、次元 1 と次元 2 で定義された配列スライスに行列内のすべての要素が含まれるためです。

E = mape(___,nanflag) は、前述の任意の構文で FANaN 値を含めるか省略するかを指定します。たとえば、mape(F,A,"omitnan") は MAPE の計算時に NaN 値を無視します。既定では、mapeNaN 値を含めます。

E = mape(___,zeroflag) は、A のゼロの値を含めるか省略するかを指定します。たとえば、mape(F,A,"includezero") は計算にゼロを含めますが、mape(F,A,"omitzero") はゼロを無視します。

E = mape(___,Weights=W) は、重み付けスキーム W を指定し、重み付けされた MAPE を返します。

すべて折りたたむ

予測 (予測値) のデータの列ベクトルを 2 つ、実際 (観測値) のデータの列ベクトルを 1 つ作成します。

F1 = [1; 10; 9];
F2 = [2; 5; 10];
A = [1; 9; 10];

それぞれの予測と実際のデータとの MAPE を計算します。

E1 = mape(F1,A)
E1 = 
7.0370
E2 = mape(F2,A)
E2 = 
48.1481

あるいは、両方の予測を含む行列を作成し、それぞれの予測と実際のデータとの MAPE を 1 つのコマンドで計算します。

F = [F1 F2]
F = 3×2

     1     2
    10     5
     9    10

E = mape(F,A)
E = 1×2

    7.0370   48.1481

E の最初の要素は、1 つ目の予測の列と実際のデータとの MAPE です。E の 2 番目の要素は、2 つ目の予測の列と実際のデータとの MAPE です。

予測データの行列と実際のデータの行列を作成します。

F = [17 19; 1 6; 16 15];
A = [17 25; 3 4; 16 13];

操作次元を 2 と指定して、予測と実際のデータとの行ごとの MAPE を計算します。最も小さい MAPE は、予測データと実際のデータの 3 番目の行間の MAPE に対応しています。

E = mape(F,A,2)
E = 3×1

   12.0000
   58.3333
    7.6923

予測データを含むページをもつ 3 次元配列と実際のデータの行列を作成します。

F(:,:,1) = [2 4; -2 1];
F(:,:,2) = [4 4; 8 -3];
A = [6 7; 1 4];

操作次元 1 と 2 のベクトルを指定して、予測の配列の各ページにある予測データと実際のデータの行列との MAPE を計算します。

E = mape(F,A,[1 2])
E = 
E(:,:,1) =

  121.1310


E(:,:,2) =

  237.7976

E の 1 ページ目に、F の 1 ページ目と行列 A との MAPE が含まれます。E の 2 ページ目に、F の 2 ページ目と行列 A との MAPE が含まれます。

NaN 値を含む予測データの行列と実際のデータの行列を作成します。

F = [17 19 3; 6 16 NaN];
A = [17 25 NaN; 4 16 NaN];

NaN 値を無視して、予測と実際のデータとの MAPE を計算します。F または A のすべてが NaN 値である列については、MAPE が NaN になります。

E = mape(F,A,"omitnan")
E = 1×3

    25    12   NaN

ゼロを含む予測データの行ベクトルと実際のデータの行ベクトルを作成します。

F = [1 6 10 5];
A = [2 6 0 3];

予測と実際のデータとの MAPE を計算します。

E = mape(F,A)
E = 
Inf

既定では、A にあるゼロ値は MAPE 計算に含まれるため、結果は Inf になります。"omitzero" を指定して、実際のデータ内のゼロを無視します。このとき、関数は入力データの 1 番目、2 番目、および 4 番目の列に対してのみ MAPE を計算します。

Eomit = mape(F,A,"omitzero")
Eomit = 
38.8889

予測の列ベクトルと実際の列ベクトルを作成します。

F = [2; 10; 13];
A = [1; 9; 10];

W で指定される重み付けスキームに従って、予測と実際のデータとの MAPE を計算します。

W = [0.5; 0.25; 0.25];
E = mape(F,A,Weights=W)
E = 
60.2778

入力引数

すべて折りたたむ

予測または予測値の配列。ベクトル、行列、または多次元配列として指定します。

入力 FA は同じサイズであるか、互換性のあるサイズでなければなりません。たとえば、Fmn 列の行列、A を 1 行 n 列の行ベクトルにします。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

データ型: single | double
複素数のサポート: あり

実際または観測値の配列。ベクトル、行列、または多次元配列として指定します。

入力 FA は同じサイズであるか、互換性のあるサイズでなければなりません。たとえば、Fmn 列の行列、A を 1 行 n 列の行ベクトルにします。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

データ型: single | double
複素数のサポート: あり

演算の対象の次元。正の整数のスカラーとして指定します。次元を指定しない場合、既定値はサイズが 1 でない最初の配列次元です。

操作次元の E のサイズは 1 です。その他のすべての次元の E のサイズは F-A の結果と同じサイズになります。

たとえば、3 行 4 列の行列 F の 4 つの予測と 3 行 1 列の列ベクトル A の実際のデータについて考えます。

  • mape(F,A,1) は、各列の要素の MAPE を計算し、1 行 4 列の行ベクトルを返します。

    操作次元の E のサイズは 1 です。FA の差は 3 行 4 列の行列です。操作次元以外の E のサイズは F-A の 2 番目の次元と同じ 4 です。E の全体のサイズは 1 行 4 列になります。

  • mape(F,A,2) は、各行の要素の MAPE を計算し、3 行 1 列の列ベクトルを返します。

    操作次元の E のサイズは 1 です。FA の差は 3 行 4 列の行列です。操作次元以外の E のサイズは F-A の 1 番目の次元と同じ 3 です。E の全体のサイズは 3 行 1 列になります。

演算の対象の次元のベクトル。正の整数のベクトルとして指定します。各要素は入力配列の次元を表します。操作次元の E のサイズは 1 です。その他のすべての次元の E のサイズは F-A の結果と同じサイズになります。

たとえば、2×3×3 の配列 F の予測と 1 行 3 列の行ベクトル A の実際のデータについて考えます。mape(F,A,[1 2]) は、F の各ページについて MAPE を計算し、1×1×3 の配列を返します。操作次元の E のサイズは 1 です。FA の差は 2×3×3 の配列です。操作次元以外の E のサイズは F-A の 3 番目の次元と同じ 3 です。

欠損値の条件。次の値のいずれかとして指定します。

  • "includemissing" または "includenan" — MAPE の計算時に入力配列の NaN 値を含めます。操作次元内のいずれかの要素が NaN の場合、E の対応する要素は NaN です。"includemissing""includenan" の動作は同じです。

  • "omitmissing" または "omitnan" — MAPE の計算時に入力配列の NaN 値を無視します。FA、または W の操作次元内のすべての要素が NaN の場合、E の対応する要素は NaN です。"omitmissing""omitnan" の動作は同じです。

ゼロの条件。次の値のいずれかとして指定します。

  • "includezero" — MAPE の計算時に A 内のゼロを含めます。A に 1 つ以上のゼロが含まれる場合、EInf になります。

  • "omitzero" — MAPE の計算時に A 内のゼロを無視します。MAPE が Inf になるような小さな非ゼロ値の A も無視されます。A のすべての要素が無視される場合、ENaN です。

重み付けスキーム。ベクトル、行列、または多次元配列として指定します。W の要素は非負でなければなりません。

W がベクトルの場合、操作次元と同じ長さであるか、F-A と同じサイズでなければなりません。W が行列または多次元配列の場合、FA、または F-A と同じサイズでなければなりません。

この引数は、vecdim または "all" を指定する場合は指定できません。

データ型: double | single

詳細

すべて折りたたむ

ヒント

  • 実際のデータ A に含まれるゼロまたは小さな非ゼロ値は、FA の誤差を測定するメトリクスとして MAPE が適切でない可能性を示している場合があります。

拡張機能

すべて展開する

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2022b で導入

すべて展開する

参考

| |