

 Amazon Forecast は新規顧客には利用できなくなりました。Amazon Forecast の既存のお客様は、通常どおりサービスを引き続き使用できます。[詳細はこちら](https://aws.amazon.com/blogs/machine-learning/transition-your-amazon-forecast-usage-to-amazon-sagemaker-canvas/)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# さまざまな予想頻度のデータ集計
<a name="data-aggregation"></a>

 予測子を作成するときは、予想頻度を指定する必要があります。予想頻度によって、予想における予測頻度が決まります。例えば、月次売上予想などです。Amazon Forecast の予測子は、指定した予想頻度よりも高いデータ頻度の予想を生成できます。例えば、データが毎日記録されている場合でも、週ごとの予想を生成できます。トレーニング中、Forecast は日次データを集計し、週ごとの予想頻度で予想を生成します。

**Topics**
+ [集計の仕組み](how-aggregation-works.md)
+ [時間境界](#time-boundaries)
+ [データ集計の想定](aggregation-guidelines.md)

# 集計の仕組み
<a name="how-aggregation-works"></a>

 トレーニング中、Amazon Forecast は、指定した予想頻度と一致しないデータをすべて集計します。例えば、日次データはあるが、週次の予想頻度を指定しているとします。Forecast は、そのデータが属する週に基づいて日次データを調整します。次に、Forecast はそれを週ごとに 1 つのレコードにまとめます。Forecast は、時間境界との関係に基づいて、データがどの週 (または月、日など) に属するかを判断します。時間境界は、1 日の開始時間や週の開始日など、時間単位の開始点を指定します。

 時間単位や分単位の予想、または時間境界が不明な場合、Forecast は頻度の時間単位に基づくデフォルトの時間境界を使用します。日次、週次、月次、または年次の予想頻度となる自動予測子の場合、カスタムの時間境界を指定できます。時間境界の詳細については、「[時間境界](data-aggregation.md#time-boundaries)」を参照してください 

 集計時のデフォルトの変換方法は、データを合計することです。予測子の作成時に変換を設定できます。これは、Forecast コンソールの **[予測子を作成]** ページの **[入力データ設定]** セクションで行います。または、CreateAutoPredictor オペレーションの [AttributeConfig](API_AttributeConfig.md) の `Transformations` パラメータで変換メソッドを設定することもできます。

次の表は、デフォルトの時間境界を使用した 1 時間ごとの予測頻度の集計例を示しています。各時間は正時から始まります。

**変換前**


| 時間 | [データ] | 時間の冒頭 | 
| --- | --- | --- | 
| 2018-03-03 01:00:00 | 100 | はい | 
| 2018-03-03 02:20:00 | 50 | いいえ | 
| 2018-03-03 02:45:00 | 20 | いいえ | 
| 2018-03-03 04:00:00 | 120 | はい | 

**変換後**


| 時間 | [データ] | メモ | 
| --- | --- | --- | 
| 2018-03-03 01:00:00 | 100 |  | 
| 2018-03-03 02:00:00 | 70 | 02:00:00～02:59:59 (50 \$1 20) の間の値の合計 | 
| 2018-03-03 03:00:00 | 空 | 03:00:00～03:59:59 の間に値はありません | 
| 2018-03-03 04:00:00 | 120 |  | 

次の図は、Forecast がデフォルトの毎週の時間境界に合うようにデータを変換する方法を示しています。

![\[Raw sales data points transformed into a smooth demand time series curve over weekly intervals.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/data-alignment.png)


## 時間境界
<a name="time-boundaries"></a>

時間境界は、週の開始日など、時間単位の開始点を指定します。データを集計する前に、Amazon Forecast は予想頻度の時間単位に基づいてデータを調整します。これは、データと時間的境界との関係に基づいて行われます。

 例えば、日単位の予想頻度を指定し、独自の時間境界は指定しない場合、Forecast は各時間ごとのレコードをその日付に基づいて調整します。1 日の開始は 0 時間です。1 日の開始 (0 時間) の定義が時間境界です。次に、Forecast は時間単位のレコードをその日の 1 つのレコードに集約します。

Forecast は、予想頻度の時間単位に基づくデフォルトの時間境界を使用します。自動予測子を作成する場合、カスタムの時間境界を指定できます。

カスタム時間境界とカスタム予想頻度の両方を指定すると、Forecast は予想頻度内のデータを集計し、カスタム時間境界に合わせます。予想頻度によってデータが集計される頻度が決まり、カスタム時間境界によって調整が行われる場所が決まります。例えば、データを毎日収集していて、Amazon Forecast でその月の 15 日に 1 年間の四半期予想を生成させたいとします。そのためには、予想頻度を 3 か月ごとに、カスタム期間を 15 に設定します。次の AWS Command Line Interface 例を参照してください。

```
aws forecast create-predictor \
--predictor-name predictor_name \
--data-config DatasetGroupArn="arn:aws:forecast:region:account:dataset-group/datasetGroupName" \
--forecast-horizon 4 \
--forecast-frequency 3M \
--time-alignment-boundary DayOfMonth=15
```

この例では、すべての日次データが 3 か月ごとの 15 日に合計されます (デフォルトの集計)。

この集計では日次データは必要なく、データが毎月またはそれ以上の頻度で収集されることだけであることに注意してください。

**Topics**
+ [デフォルトの時間境界](#default-time-boundaries)
+ [時間境界の指定](#specifying-time-boundary)

### デフォルトの時間境界
<a name="default-time-boundaries"></a>

次の表は、Forecast がデータを集計するときに使用するデフォルトの時間調整の境界を示しています。


| 頻度 | 境界 | 
| --- | --- | 
| 分 | 分の末尾 (45:00、06:00) | 
| 時 | 時間の末尾 (09:00:00、13:00:00) | 
| 日 | 1 日の最初の 1 時間 (0 時間) | 
| 週 | 直近の月曜日 | 
| 月 | 毎月 1 日 | 
| 年 | 年始 (1 月 1 日) | 

### 時間境界の指定
<a name="specifying-time-boundary"></a>

**注記**  
自動予測子には時間境界のみを指定できます。

 日次、週次、月次、または年次の予測頻度で自動予測子を作成する場合、Forecast がデータを集計するために使用する時間境界を指定できます。業務カレンダーがデフォルトの時間境界と一致しない場合は、時間境界を指定できます。例えば、各月にその 3 日目から始まる月次予想を生成したい場合があります。時間境界を指定しない場合、Forecast は [デフォルトの時間境界](#default-time-boundaries) のセットを使用します。

 指定する時間境界単位は、予想頻度より 1 単位小さくなければなりません。次の表は、指定できる時間境界の単位と値を予想頻度別にまとめたものです。

境界値が `28` 以下の `Monthly` 時間境界のみを指定できます。


| 予想頻度単位 | 境界の単位 | 境界の値 | 
| --- | --- | --- | 
| 1 日 1 回 | 時 | 0～23 | 
| 毎週 | 曜日 | 月曜日から日曜日 | 
| 月別 | 日 | 1 から 28 | 
| 年次 | 月 | 1 月から 12 月 | 

予測子を作成するときは、次のように時間調整の境界を指定します。プログラムで指定できるさまざまな時間境界単位と境界値については、「[TimeAlignmentBoundary](API_TimeAlignmentBoundary.md)」を参照してください。

------
#### [ Console ]

****

**予測子の時間調整境界を指定するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. **[Dataset groups]** (データセットグループ) から、データセットグループを選択します。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. **[Train new predictor]** (新しい予測子のトレーニング) を選択します。

1. 必須の **[名前]**、**[予想頻度]**、および **[予想]** フィールドに値を入力します。

1.  **[時間調整境界]** には、予測子がデータを集計するときに使用する時間境界を指定します。このリストの値は、選択した**予想頻度**によって異なります。

1. **[開始]** を選択します。Forecast は、予測子の作成時に指定した時間調整境界を使用してデータを集計します。

------
#### [ AWS CLI ]

を使用して予測子の時間調整境界を指定するには AWS CLI、 `create-predictor` コマンドを使用します。`time-alignment-boundary` パラメータには、時間単位と境界値を指定します。次のコードは、毎週火曜日から始まる先の 5 週間を予測する自動予測子を作成します。

`DayOfWeek` と `DayOfMonth` 値はすべて大文字でなければなりません。指定できるさまざまな時間境界単位と境界値については、「[TimeAlignmentBoundary](API_TimeAlignmentBoundary.md)」を参照してください。必須とオプションのパラメータの詳細については、「[CreateAutoPredictor](API_CreateAutoPredictor.md)」を参照してください。

```
aws forecast create-predictor \
--predictor-name predictor_name \
--data-config DatasetGroupArn="arn:aws:forecast:region:account:dataset-group/datasetGroupName" \
--forecast-horizon 5 \
--forecast-frequency W \
--time-alignment-boundary DayOfWeek=TUESDAY
```

------
#### [ Python ]

SDK for Python (Boto3) で予測子のタイムアライメント境界を指定するには、`create_auto_predictor` メソッドを使用します。`TimeAlignmentBoundary` パラメータには、時間単位をキー、境界値を値とするディクショナリを指定します。次のコードは、毎週火曜日から始まる先の 5 週間を予測する自動予測子を作成します。

`DayOfWeek` と `DayOfMonth` 値はすべて大文字でなければなりません。指定できるさまざまな時間境界単位と境界値については、「[TimeAlignmentBoundary](API_TimeAlignmentBoundary.md)」を参照してください。必須とオプションのパラメータの詳細については、「[CreateAutoPredictor](API_CreateAutoPredictor.md)」を参照してください。

```
import boto3
            
forecast = boto3.client('forecast')

create_predictor_response = forecast.create_auto_predictor(
    PredictorName = 'predictor_name',
    ForecastHorizon = 5,
    ForecastFrequency = 'W',
    DataConfig = {
      "DatasetGroupArn": "arn:aws:forecast:region:account:dataset-group/datasetGroupName"
    },
    TimeAlignmentBoundary = {
      "DayOfWeek": "TUESDAY"
    }
)
print(create_predictor_response['PredictorArn'])
```

------

# データ集計の想定
<a name="aggregation-guidelines"></a>

Forecast は、データが特定のタイムゾーンのものであるとは想定していません。ただし、時系列データを集計するときは、次の前提になります。
+ すべてのデータは同じタイムゾーンからのものです。
+ すべての予想は、データセットのデータと同じタイムゾーンにあります。
+ [CreatePredictor](API_CreatePredictor.md) オペレーションの [InputDataConfig](API_InputDataConfig.md) パラメータで [SupplementaryFeature](API_SupplementaryFeature.md) 休日機能を指定した場合、入力データは同じ国のものです。