Как сложить результаты ols в таблицу в dolphindb?

#regression #dolphindb

Вопрос:

Мне нужно запустить регрессию с группой by в dolphindb. Результат регрессии каждой группы представляет собой вектор, и я хотел бы сложить все результаты в виде таблицы с каждой оценкой коэффициента в виде столбца.

 t=table(1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 as id, rand(1.0, 15) as y, 1..15 as x1, 3 2 9 5 0 6 7 8 9 10 3 5 0 8 0 as x2) select ols(y, (x1, x2)) from t group by id  

Я получил следующее сообщение об ошибке:

 select ols(y, x1, x2) as ols_y from t group by id =gt; The column 'ols(y, x1, x2)' must use aggregate function.  

Кто-нибудь знает лучший способ сложить результаты, чем использовать цикл a-for?

Ответ №1:

Поскольку результатом ols является вектор для каждой группы, вы можете указать результат в виде составного столбца в dolphindb следующим образом:

 t=table(1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 as id, rand(1.0, 15) as y, 1..15 as x1, 3 2 9 5 0 6 7 8 9 10 3 5 0 8 0 as x2) select ols(y, (x1, x2)) as `intercept`x1`x2 from t group by id