If I change the invocation from
ts = apply_schema(f, s)
to
ts = apply_schema(f, s, RegressionModel)
(the last argument is the type that the modified handling of ^ applies to), things work as expected. The output is now
formula: a ~ :((a + b + c) ^ 2)
with terms Term[a, b, c]
schema: StatsModels.Schema with 3 entries:
b => b
a => a
c => c
apply_schema: a ~ 1 + a + b + c + a & b + a & c + b & c with coefficient names("a", ["(Intercept)", "a", "b", "c", "a & b", "a & c", "b & c"])
modelcols: the the result has size (3, 7) and type Matrix{Float64}
Model Matrix:
[1.0 1.0 0.0 0.5 0.0 0.5 0.0; 1.0 2.0 0.0 2.5 0.0 5.0 0.0; 1.0 3.0 1.0 20.0 3.0 60.0 20.0]