I have dataframe (df) with categoricals factors and i make schema fs = apply_schema(someterm, StatsModels.schema(df))
(where someterm is InteractionTerm
). Then I want to get a vector of levels and then get a submatrix of the model matrix for each level.
From one side I can get mx = modelcols(fs, df)
and then get view(mx, :, levelrange)
, but how to get column range for each level? Or how to get a map of the model matrix column to levels? Or there is no such functionality in StatsModels?
1 Like
Mmm… really no way to get Term for specific model matrix column?
this can be helfull:
function lcontrast(mm::ModelMatrix, i::Int)
n = mm.assign[end]
if i > n || n < 1 error("Factor number out of range 1-$(n)") end
inds = findall(x -> x==i, lmm.mm.assign)
mx = zeros(length(inds), size(lmm.mm.m, 2))
for i = 1:length(inds)
mx[i, inds[i]] = 1
end
mx
end