在bigquery中,我试图在线性回归中得到betas的标准错误,如果我错过了一些基本的内容,很抱歉,但是我找不到这个问题的答案。
#standard sql
CREATE OR REPLACE MODEL `DATASET.test_lm`
OPTIONS(model_type='LINEAR_REG', input_label_cols= ["y"]) AS
select * from unnest(ARRAY<STRUCT<y INT64, x float64>> [(1,2.028373),
(2,2.347660),(3,3.429958),(4,5.250539),(5,5.976455)])您可以获得不受影响的权重。
select * from ml.weights(model `DATASET.test_ml`) 此外,您还可以像下面这样直接计算标准错误
with dat as (
select * from unnest(ARRAY<STRUCT<y INT64, x float64>> [(1,2.028373), (2,2.347660),(3,3.429958),(4,5.250539),(5,5.976455)])),
#get the residual standard error, using simple df-2
rse_dat as (
select sqrt(sum(e2)/((select count(1) from dat)-2)) as rse from (
select pow(y - predicted_y, 2) as e2 from ml.predict(model `DATASET.test_lm`,
(select * from dat)))),
#get the variance of x
xvar_dat as (
select sum(pow(x - (select avg(x) as xbar from dat),2)) as xvar from dat)
#calulate standard error
select sqrt((select pow(rse,2) from rse_dat)/(select xvar from xvar_dat) as beta_x_se )但对于许多协变量来说,这将是一个沉重的负担。有没有一种直接的方法来得到这个关于置信区间的基本统计数据?
发布于 2022-07-28 16:39:25
您现在可以使用ML.ADVANCED_WEIGHTS,这会产生标准错误。
https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-advanced-weights
https://stackoverflow.com/questions/56994867
复制相似问题