#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