作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
BigQuery 有一些统计聚合函数,例如 STDDEV(X) 和 CORR(X, Y),但它不提供直接执行线性回归的函数。
如何使用确实存在的函数计算线性回归?
最佳答案
编者编辑:请看next answer ,现在 BigQuery 原生支持线性回归。 --Fh
以下查询使用数值稳定且易于修改以适用于任何输入表的计算执行线性回归。它使用内置函数 CORR 生成最适合模型 Y = SLOPE * X + INTERCEPT 和 Pearson 相关系数的斜率和截距。
例如,我们使用公共(public)出生数据集将出生体重计算为怀孕持续时间的线性函数,按州分割。你可以写得更紧凑,但是我们使用了几层子查询来突出这些部分是如何组合在一起的。要将其应用于另一个数据集,您只需替换最里面的查询。
SELECT Bucket,
SLOPE,
(SUM_OF_Y - SLOPE * SUM_OF_X) / N AS INTERCEPT,
CORRELATION
FROM (
SELECT Bucket,
N,
SUM_OF_X,
SUM_OF_Y,
CORRELATION * STDDEV_OF_Y / STDDEV_OF_X AS SLOPE,
CORRELATION
FROM (
SELECT Bucket,
COUNT(*) AS N,
SUM(X) AS SUM_OF_X,
SUM(Y) AS SUM_OF_Y,
STDDEV_POP(X) AS STDDEV_OF_X,
STDDEV_POP(Y) AS STDDEV_OF_Y,
CORR(X,Y) AS CORRELATION
FROM (SELECT state AS Bucket,
gestation_weeks AS X,
weight_pounds AS Y
FROM [publicdata.samples.natality])
WHERE Bucket IS NOT NULL AND
X IS NOT NULL AND
Y IS NOT NULL
GROUP BY Bucket));
关于google-bigquery - 如何在 BigQuery 中执行线性回归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39462362/
我是一名优秀的程序员,十分优秀!