timeseries
構文
1result = timeseries resultSet generate (measure1 as fmeasure1 [, measure2 as fmeasure2...]) with (parameters);measure1、measure2 は、将来の値の予測の対象である基準です。基準はグループ化クエリや単純な値クエリから予測できます。予測値と元の値が一緒に射影されます。前の foreach ステートメントからの列も射影されます。
-
length (必須) 予測するポイント数。たとえば、length が 6 で dateCols 種別の文字列が Y-M の場合、timeseries は 6 か月のデータを予測します。
-
dateCols (省略可能) データのグループ化で使用する日付項目と、日付列種別の文字列。例: dateCols=(CloseDate_Year, CloseDate_Month, "Y-M")。日付列は自動的に射影されます。有効な値は、次のとおりです。
- YearField, MonthField, "Y-M"
- YearField, "Y"
-
ignoreLast (省略可能) true の場合、timeseries は最後の期間を計算で使用しません。デフォルトは false です。
最後の期間に不完全なデータが含まれる場合、売上予測の精度を高めるには、このパラメータを true に設定します。たとえば、まだ四半期の途中の場合、このパラメータを true に設定すると、timeseries の売上予測はより正確になります。
-
order (省略可能) データの並び替えで使用する項目を指定します。dateCols を使用しない場合は必須です。この項目は昇順で並び替えられます。
たとえば、データに日付列がなく、「Week (週)」という基準列があるとします。order='Week' を使用します。
-
partition (省略可能) このパラメータを使用して、日付以外の列のデータをパーティションに分けます。列はディメンションである必要があります各パーティションで最も正確なアルゴリズムが使用されるように、売上予測はパーティションごとに個別に実行されます。たとえば、あるパーティションのデータに季節変動があり、別のパーティションのデータにはない場合があります。��ーティション列は自動的に射影されます。
たとえば、原料の売上データに販売日付、原料の種別、販売重量が含まれるとします。原料の種別ごとに将来の販売重量を予測するには、partition='Type' を使用します。
-
predictionInterval (省略可能) 各データポイントで表示する不確実性、つまり信頼区間を指定します。使用できる値は 80 と 95 です。信頼区間の上限と下限は column_name_low_95 および column_name_high_95 という名前の列で射影されます。
-
model (省略可能) 使用する予測モデルを指定します。指定しない場合、timeseries は予測をモデルごとに 1 回ずつ計算し、誤差が最も小さい結果を選択します。
有効な値は、次のとおりです。- None では、timeseries は、データに最も適したアルゴリズムを選択します
- Additive では、指数平滑モデルまたはホルトウィンターズモデルと加法コンポーネントが使用されます
- Multiplicative では、指数平滑モデルまたはホルトウィンターズモデルと乗法コンポーネントが使用されます
-
seasonality (省略可能) 季節性を指定します。有効な値は、次のとおりです。
- 0 季節性なし
- 4 dateCols によってデータが四半期でグループ化される場合、年間の季節性
- 12 dateCols によってデータが月でグループ化される場合、年間の季節性
使用方法
ヒント
- 現在、月、四半期、または年の途中ですか? timeseries で現在の期間の不完全なデータを使用しないように、ignoreLast を true に設定することを考慮してください。これにより、予測がより正確になります。
- timeseries がデータを返しませんか? 適切な予測を実行するだけの十分なデータポイントがない場合、timeseries は null を返します。データカテゴリの数を増やしてください。
- timeseries がエラーを返しますか? 日付または時間のギャップが存在する可能性があります。優れた売上予測アルゴリズムのすべてがそうであるように、timeseries には、各パーティション内を含め、ギャップのない連続する一連の日付が必要です。データに日付のギャップがあると思われる場合は、まず fill を使用してください。
例
あなたは小売店チェーンを経営しており、市の旅行者数が売り上げに影響しているとします。翌年に市を訪れる旅行者の数を予測してみましょう。
1q = load "TouristData";
2q = group q by ('Visit_Year', 'Visit_Month');
3q = foreach q generate 'Visit_Year', 'Visit_Month', sum('NumTourist') as 'sum_NumTourist';
4q = timeseries q generate 'sum_NumTourist' as Tourists with (length=12, dateCols=('Visit_Year','Visit_Month', "Y-M"));
5q = foreach q generate 'Visit_Year' + "~~~" + 'Visit_Month' as 'Visit_Year~~~Visit_Month', Tourists;時系列グラフを使用し、予測線を設定して、計算された将来のデータを表示します。結果のグラフには、可能性のある将来の旅行者数が表示されます。

例
95% の精度で翌年の市の旅行者数を予測するとします。predictionInterval=95 を使用して、旅行者数に 95% の信頼区間を設定します。上限と下限は Tourists_high_95 および Tourists_low_95 の項目で射影されます。
1q = load "TouristData";
2q = group q by ('Visit_Year', 'Visit_Month');
3q = foreach q generate 'Visit_Year', 'Visit_Month', sum('NumTourist') as 'sum_NumTourist';
4q = timeseries q generate 'sum_NumTourist' as Tourists with (length=12, predictionInterval=95, dateCols=('Visit_Year','Visit_Month', "Y-M"));
5q = foreach q generate 'Visit_Year' + "~~~" + 'Visit_Month' as 'Visit_Year~~~Visit_Month', Tourists, Tourists_high_95, Tourists_low_95;例
取引先の種別ごとに収益を予測するとします。取引先収益に年間の季節性があることはわかっています。日付を四半期別にグループ化するため、dateCols=('Date_Sold_Year','Date_Sold_Quarter', "Y-Q") および seasonality = 4 を指定します。翌年の予測値を表示するには、length=4 を使用して 4 つの四半期を指定します。
1q = load "Account";
2q = group q by ('Date_Sold_Year', 'Date_Sold_Quarter', 'Type');
3q = foreach q generate 'Date_Sold_Year', 'Date_Sold_Quarter', 'Type', sum('Amount') as 'sum_Amount';
4q = timeseries q generate 'sum_Amount' as Amount with (partition='Type',length=4, dateCols=('Date_Sold_Year','Date_Sold_Quarter', "Y-Q"), seasonality = 4);
5q = foreach q generate 'Date_Sold_Year' + "~~~" + 'Date_Sold_Quarter' as 'Date_Sold_Year~~~Date_Sold_Quarter','Type', Amount ;時系列グラフを使用し、予測線を設定して、計算された将来のデータを表示します。結果のグラフには、四半期の季節変動を考慮した、可能性のある収益合計が取引先ごとに表示されます。
