I have just looked into Julia and it seems very interesting.
I am one of those that have been involved in the discussion about sum of squares types.
These discussions have been about categorical explanatory variables. The functions in R (anova and car::Anova) can also take continuous variables as input. Then, the discussions about sum of squares are even more important because it is unlogic that Celsius and Fahrenheit give different results.
Mixing categorical and continuous variables are common when running designed experiments. Second order terms of continuous variables are used when doing response surface modelling. The theory for type II sums of squares extends naturally to polynomial terms. Then A is said to be contained in A^2 similarly to how A is contained in AB. In https://doi.org/10.1080/02664760701594246, we call this Type II* sums of squares.
A problem with the model formula in R and Julia (?) is that second order terms must be defined as new variables instead of having a possibility within the “formula language”.
In R you can, however, write something like “lm(y ~ A + I(A^2))”. I don’t know whether there exists a similar possibility in Julia. So in R it is possible to recognize A as being contained in I(A^2), but this is not the case in the function car::Anova. Celsius and Fahrenheit will give different results.
The function ffmanova::ffmanova can see that A is contained in I(A^2) and the problems are avoided. To see examples run the r code in this message: [R-pkgs] MANOVA for collinear responses with rotation testing (ffmanova) + Synthetic data (RegSDC)
It would have been very nice if Type II* sums of squares could be implemented in Julia.
The r package ffmanova is translated to R from Matlab. Maybe someday I, or someone else, can translate it to Julia