Получите стандартные ошибки в BigQuery ML линейной регрессии - PullRequest
1 голос
/ 11 июля 2019

Я пытаюсь получить стандартные ошибки бета-версий в линейной регрессии в Bigquery ML, извините, если я пропустил что-то простое, но я не могу найти ответ на этот вопрос

#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 )

Но для многих ковариат это становится тяжелым делом.Есть ли прямой способ получить эту довольно простую статистику для доверительных интервалов?

...