Это не проблема с GLM напрямую, но с базовым макросом @formula
из StatsModels.jl - насколько я знаю, в настоящее время нет синтаксиса для генерации полиномов вплоть до заданного порядка.
Однако вы можете применять функции Julia по столбцам внутри макроса формулы, поэтому, возможно, проще всего набрать его в ограниченном порядке, например
using GLM, DataFrames
y = [0.1*x^2 - 0.5*x for x ∈ 1:100]
x = collect(1:100)
df = (y = y, x = x)
fit(LinearModel, @formula(y ~ x + x^2), df)
Обратите внимание, что для этого не требуетсяx в виде столбца в кадре данных - @formula
может генерировать необходимые регрессоры на лету в матрице модели.
Вы также можете генерировать формулы программно, как описано в документации здесь - проблема в том, что это еще не работает для передачи функций Джулии, как показано выше в макросе @formula
. Я считаю, что работа над этим продолжается, так что следите за обновлениями.