

 Amazon Forecast 不再提供給新客戶。Amazon Forecast 的現有客戶可以繼續正常使用服務。[進一步了解」](https://aws.amazon.com/blogs/machine-learning/transition-your-amazon-forecast-usage-to-amazon-sagemaker-canvas/)

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 假設分析
<a name="what-if"></a>

 假設分析是一種工具，可協助調查和說明不同案例如何影響 Amazon Forecast 建立的基準預測。基準預測是 Amazon Forecast 根據您提供的原始相關時間序列建立的預測。

假設分析會根據您選擇修改相關時間序列的方式，建立一系列假設預測。這些假設預測會與基準預測進行比較和形成對比，以協助您了解特定變更如何影響您的模型。

建立修改後相關時間序列的方法有兩種。您可以在 Amazon S3 路徑中提供修改過的相關時間序列，或指定一組轉換至現有的相關時間序列。當您指定一組轉換時，會建立原始相關時間序列的副本，以包含這些變更。

轉換可讓您建立相關時間序列的子集，並修改相關時間序列的特定屬性。如需詳細資訊，請參閱 [替換資料集](replacement-series.md) 和 [轉換函數](data-transformations.md)。

**Topics**
+ [建立假設分析](#how-what-if-works)
+ [轉換函數](data-transformations.md)
+ [替換資料集](replacement-series.md)

## 建立假設分析
<a name="how-what-if-works"></a>

假設分析會探索基準相關時間序列的變更如何影響預測。您只能從使用 AutoPredictor 的預測建立假設分析。建立假設分析之後，您會建立一或多個假設預測。比較假設預測和基準預測，然後匯出一或多個假設預測。

**注意**  
您的資料必須是逗號分隔值 (CSV) 格式，才能建立假設分析。

**Topics**
+ [建立假設分析](#create-analysis)
+ [建立假設預測](#create-forecast)
+ [比較您的假設預測](#compare-forecasts)
+ [匯出假設預測](#export-forecasts)
+ [查詢您的假設預測](#query-wi-forecasts)

### 建立假設分析
<a name="create-analysis"></a>

您可以使用預測主控台或預測軟體開發套件 (SDK) 建立假設分析。

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

若要建立假設分析，請完成下列步驟：

1. 建立使用 AutoPredictor 訓練的預測。

1. 開啟資料集群組儀表板，其中包含您感興趣的預測。

1. 選擇**探索假設分析**。

1. 在 Insights 頁面的**假設分析**索引標籤上，選擇**建立**。

1. 在**假設分析名稱欄位中提供唯一的名稱**，然後選擇此分析的基準預測。

1. 在**項目選取**區域中，選取您是否要自動包含分析中的所有項目，或指定要包含檔案的項目。

   如果您選擇**使用 檔案選取項目**，則必須提供資料集，其中僅包含要在假設預測中修改的項目。如需詳細資訊，請參閱[指定時間序列](forecast-explainability.md#forecast-explainability-time-series)。

1. 選擇**建立假設分析**。假設分析頁面頂端的橫幅會顯示假設分析建立任務的狀態。

------
#### [ SDK ]

使用 [CreateWhatIfAnalysis](API_CreateWhatIfAnalysis.md)操作，提供 WhatIfAnalysisName 的唯一名稱，並提供 ForecastArn 基準預測的預測 ARN。以下範例顯示使用「item\_id」和「store\_location」維度組合的時間序列結構描述。如需詳細資訊，請參閱[指定時間序列](forecast-explainability.md#forecast-explainability-time-series)。

```
{
  "ForecastArn": "arn:aws:forecast:region:acctNumber:forecast/baselineForecast",
  "WhatIfAnalysisName": "unique_name",
  "TimeSeriesSelector": {
    "TimeSeriesIdentifiers": {
      "DataSource": {
        "S3Config": {
          "Path": "s3://bucket/example-path",
          "RoleArn": "arn:aws:iam::000000000000:role/ExampleRole"
        }
      },
      "Schema": {
        "Attributes": [
          {
            "AttributeName": "item_id",
            "AttributeType": "string"
          }
          { 
            "AttributeName": "store_location",
            "AttributeType": "string"
          }
        ]
      }
    }
  }
}
```

------

### 建立假設預測
<a name="create-forecast"></a>

您可以使用預測主控台或預測軟體開發套件 (SDK) 建立假設預測。

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

若要建立假設預測，請完成下列步驟：

1. 在 Insights 頁面的**假設分析**索引標籤上，選擇您感興趣的假設分析。

1. 在**假設預測**區段中，選擇**建立**。

1. 在建立假設預測頁面上，提供唯一的**假設預測名稱**，然後選擇**使用轉換函數**或**定義替代資料集的假設預測**。如需詳細資訊，請參閱 [替換資料集](replacement-series.md) 和 [轉換函數](data-transformations.md)。

   1. 如果您選擇**使用轉換函數**，則必須使用**轉換函數建置器**來選取和修改包含在假設預測中的資料列。所有轉換都會按照指定的順序套用。條件會依指定的順序套用，並與 AND 操作聯結。只有在符合所有條件時，才會套用轉換。

   1. 如果您選擇**使用替換資料集定義假設預測**，則必須提供替換資料集，其中僅包含您要變更的預測資料列。

1. 選擇 **Create** (建立)。

------
#### [ SDK - Transformation Function ]

使用 [CreateWhatIfForecast](API_CreateWhatIfForecast.md)操作，提供 WhatIfAnalysisName 的唯一名稱，並提供 ForecastArn 的預測 ARN。以下範例顯示當 "store\_location" 不是 "tacoma" 時，轉換為 "price" 的結構描述。

```
{
  "WhatIfAnalysisArn": "arn:aws:forecast:us-west-2:666488130463:what-if-analysis/jan2020forecast/PromotionAnalysis_01G8MB3PZM89J9V1VEXCC0BS63",
  "WhatIfForecastName": "unique_name",
  "TimeSeriesTransformations": [
    {
      "Action": {
        "AttributeName": "price",
        "Operation": "MULTIPLY",
        "Value": 0.85
      },
      "TimeSeriesConditions": [
        {
          "AttributeName": "store_location",
          "AttributeValue": "tacoma",
          "Condition": "NOT_EQUALS"
        }
      ]
    }
  ]
}
```

在此範例中， `jan2020forecast` 是基準預測，而 `PromotionAnalysis_01G8MB3PZM89J9V1VEXCC0BS63`是假設分析名稱。

您也可以使用 [TimeSeriesReplacementsDataSource](API_TimeSeriesReplacementsDataSource.md)操作指定替換資料集。

------
#### [ SDK - Replacement Dataset ]

使用 [CreateWhatIfForecast](API_CreateWhatIfForecast.md)操作，提供 WhatIfAnalysisName 的唯一名稱，並提供 ForecastArn 的預測 ARN。以下範例顯示替代資料來源的結構描述。

```
{
  "WhatIfAnalysisArn": "arn:aws:forecast:us-west-2:666488130463:what-if-analysis/jan2020forecast/PromotionAnalysis_01G8MB3PZM89J9V1VEXCC0BS63",
  "WhatIfForecastName": "unique_name",
  "TimeSeriesReplacementsDataSource": {
    "S3config": {
      "Path" : "s3://{{bucket-name}}/replacementDatasource.csv",
      "RoleArn": "arn:aws:iam::{{acct-id}}:role/{{Role}}"
    },
    "Schema": {
      Attributes" : [
        {
          "AttributeName": "item_id",
          "AttributeType": "string"
        },
        {
          "AttributeName": "timestamp",
          "AttributeType": "timestamp"
        },
        {
          "AttributeName": "price",
          "AttributeType": "float"
        },
        {
          "AttributeName": "stock_count",
          "AttributeType": "integer"
        },
      ]
    }
  }
}
```

您也可以使用 [TimeSeriesTransformation](API_TimeSeriesTransformation.md)操作指定相關時間序列的變更。

------

### 比較您的假設預測
<a name="compare-forecasts"></a>

若要比較假設預測，請完成預測主控台中的下列步驟：

1. 在 Insights 頁面的**假設分析**索引標籤上，選擇您感興趣的假設分析。

1. 在**比較假設預測**區段中，指定要分析的項目、一或多個**假設預測**，以及至少一個**預測類型**。  
![](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/compareWhatIfForecasts.png)

   在此範例中，在 、 `priceCut10pct`和 預測類型中比較兩個假設`p90`預測 `priceIncrease20pct``p50``p10`和 `item_105`。圖形可讓您查看這些預測與基準時間序列的比較。

1. 將滑鼠暫留在圖表上，以調查假設預測與基準預測的比較。

### 匯出假設預測
<a name="export-forecasts"></a>

您可以使用預測主控台或預測軟體開發套件 (SDK) 匯出假設預測。

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

若要匯出假設預測，請完成下列步驟：

1. 在 Insights 頁面的**假設分析**索引標籤上，選擇您感興趣的假設分析。

1. 在**假設預測匯出**區段中，選擇**建立匯出**。

1. 在建立假設預測匯出頁面上，提供唯一的**假設預測匯出名稱**，指定要包含**的假設預測**，選擇**匯出位置**，並提供 **IAM 角色**。

1. 選擇**建立匯出**。

------
#### [ SDK ]

使用 [CreateWhatIfForecastExport](API_CreateWhatIfForecastExport.md)操作，將「目的地」設定為指向將包含匯出的 Amazon S3 儲存貯體。指定要匯出的假設預測，並提供匯出的唯一名稱。

```
{
  "WhatIfForecastArns": [ "arn:aws:forecast:region:acctNumber:what-if-forecast/id1" , "arn:aws:forecast:region:acctNumber:what-if-forecast/id2" ],
  "WhatIfForecastExportName": "unique_export_name",
  "Destination": {
    "S3Config": {
      "Path": "s3://bucket/example-path",
      "RoleArn": "arn:aws:iam::000000000000:role/ExampleRole"
    }
  },
}
```

------

### 查詢您的假設預測
<a name="query-wi-forecasts"></a>

您可以使用 [QueryWhatIfForecast](API_forecastquery_QueryWhatIfForecast.md)操作查詢假設預測。根據預設，會傳回預測的完整範圍。您可以在完整預測中請求特定的日期範圍。

當您查詢假設預測時，您必須指定篩選條件。篩選條件是索引鍵/值組。索引鍵是來自建立預測的資料集之一的結構描述屬性名稱 (包括預測維度)。值是所指定索引鍵的有效值。您可以指定多個索引鍵/值組。傳回的假設預測只會包含符合所有條件的項目。

例如，使用此程式碼來取得 的假設預測`product_42`。

```
{
          "Filters": { 
          "item_id" : "product_42"
          },
          "WhatIfForecastArn": "arn:aws:forecast:region:acctNumber:what-if-forecast/id1"
}
```