Google BigQuery 中的时间序列投影
Time Series Projection in Google BigQuery
我一直在寻找一种在 BigQuery 中进行时间序列投影的好方法,并找到了这个方法,它可以很好地计算相关性和斜率:。但是延长时间线对你的选择没有帮助。
但是谁能提出一个完整的解决方案,我可以根据需要延长时间线 (x) 并使用单个查询获得 (Y) 的预测?
我们将不胜感激任何帮助。
基本思想是将模型规格左连接到生成的日期 table 并使用它:
WITH stats AS (
SELECT * FROM UNNEST([
STRUCT( 'a' AS model, 0.3 AS slope, 11 AS intercept ),
STRUCT( 'b', 0.2, 7)
])
)
SELECT
date,
model,
slope,
intercept,
UNIX_DATE(date) AS X,
slope * UNIX_DATE(date) + intercept AS Y
FROM
UNNEST(GENERATE_DATE_ARRAY(DATE('2018-05-01'),DATE('2018-07-01'))) AS date
LEFT JOIN stats ON TRUE
ORDER BY date ASC
我没有重复统计部分,因为它已经回答了,但我创建了一个虚拟 table 用两个模型代替它,模型当然也可以是一个桶,那么你有左加入作为关键。
我还假设您使用 unix 日期(自 1970-01-01 以来的天数)创建了带有日期的模型,否则您需要相应地进行修改。
我一直在寻找一种在 BigQuery 中进行时间序列投影的好方法,并找到了这个方法,它可以很好地计算相关性和斜率:
但是谁能提出一个完整的解决方案,我可以根据需要延长时间线 (x) 并使用单个查询获得 (Y) 的预测?
我们将不胜感激任何帮助。
基本思想是将模型规格左连接到生成的日期 table 并使用它:
WITH stats AS (
SELECT * FROM UNNEST([
STRUCT( 'a' AS model, 0.3 AS slope, 11 AS intercept ),
STRUCT( 'b', 0.2, 7)
])
)
SELECT
date,
model,
slope,
intercept,
UNIX_DATE(date) AS X,
slope * UNIX_DATE(date) + intercept AS Y
FROM
UNNEST(GENERATE_DATE_ARRAY(DATE('2018-05-01'),DATE('2018-07-01'))) AS date
LEFT JOIN stats ON TRUE
ORDER BY date ASC
我没有重复统计部分,因为它已经回答了,但我创建了一个虚拟 table 用两个模型代替它,模型当然也可以是一个桶,那么你有左加入作为关键。
我还假设您使用 unix 日期(自 1970-01-01 以来的天数)创建了带有日期的模型,否则您需要相应地进行修改。