I have compared two regression models using ANCOVA by following this tutorial but using my own data. Here is a snippet of my data:

             X         MC         CC         RC           FM      AT HS
1     0.874375         NA         NA         NA           NA    grab  1
2     0.451250 0.41948802 0.44885230 0.45113473  0.408781437 release  1
3     0.099375         NA         NA         NA           NA    grab  1
4     0.608125 0.50268263 0.52253593 0.51664870           NA release  1
5     0.151875 0.29038872 0.30763473 0.30972255           NA    grab  2
6     0.948750 0.68792116 0.69742615 0.68139072           NA release  2
7     0.452500 0.42250699 0.45583832 0.47252445           NA    grab  2
8     0.894375 0.62101946 0.62549900 0.62338872           NA release  2

MC, CC, RC and FM are four variables that can model X. There are two categorical variables each with two levels: Action Type (AT) and Hand Side (HS). Hand side 1 means right and 2 is left hand.

I want to know if hand side is a covariate in any of the models. Consider the case for RC, for this model I perform ANCOVA using the following R command:

 aov(X ~ RC * HS, data = X.models)

here are the results:

             Df Sum Sq Mean Sq   F value    Pr(>F)    
RC            1 58.427  58.427 10148.368 < 2.2e-16 ***
HS            1 10.732  10.732  1864.025 < 2.2e-16 ***
RC:HS         1  0.069   0.069    11.927 0.0005803 ***
Residuals   859  4.946   0.006   

My understanding is that there is significant interaction between HS and RC, and therefore the difference between the slops of the two models is significant. However, in this case the difference between the intercepts is much larger and more interesting. Is there a complementary measurement that would represent the effect size of the interaction? My current solution is to report the difference in slope and intercept alongside the ANCOVA P value, but I am not sure if that is the best way to do it.

  • $\begingroup$ Can you provide a little more information about your situation & setup? What are RC & HS, for example? $\endgroup$ Apr 8, 2012 at 17:49
  • $\begingroup$ I have edited the question and added information about the nature of my data. Let me know if you need any other information. Thanks! $\endgroup$
    – Aras
    Apr 8, 2012 at 19:32

1 Answer 1


So HS is a grouping variable. I would recode it as 0/1, with 0 for whichever side you consider the default (or just flip a coin), for better interpretability of your model, but it doesn't actually influence anything. Since you have an interaction, it is best not to interpret the main effects, for example, the coefficient for HS does not give the separation between the two lines (i.e., the relationship between RC, whatever that is, and the response variable for right vs. left), except exactly where RC=0. I do not know whether that fact is meaningful, but it typically isn't. More important is to look at the simple effects, that is, the two slopes. If you coded 0/1, then the slope for the first side is $\beta_{RC}$, and the slope for the other side is $\beta_{RC}+\beta_{RC:HS}$. As you can see, the difference between the slopes is simply $\beta_{RC:HS}$, and the 95% confidence interval for $\beta_{RC:HS}$ is the 95% CI for the difference. With other codings, this could be more complicated. As for a measure of effect size, if the numbers for RC are intrinsically meaningful, I would just go with them. You could also use partial $\eta^2$, which is $SS_{RC:HS}/(SS_{RC:HS}+SS_{err})$. If you did want to talk about the intercepts for some reason, then for the first side, it would be $\beta_{int}$, and for the other: $\beta_{int}+\beta_{HS}$, but even here, I would just write out the entire regression equation for each side--I really don't see what only the intercepts in isolation is going to do for you. Lastly, remember that all of this is predicated on having recoded your HS as 0/1 for simplicity and refit the model.

  • $\begingroup$ Thanks for your response. I have already included the regression lines in the repost, and they make the most sense to me as well, so I will just refer to those. But just so I know how to see $\eta^2$ can you tell me if it will be available from my aov object or do I need to manually calculate it using the formula you provided? $\endgroup$
    – Aras
    Apr 9, 2012 at 5:38
  • $\begingroup$ I'm not aware of it being available within an aov object. I don't doubt that someone has coded it up in some package, but I don't know which & it would be just as fast to do it yourself as to try to figure out where it might exist elsewhere. On a different note, remember that this is partial $\eta^2$, not $\eta^2$, which would be $SS_{RC:HS}/SS_{tot}$ instead. $\endgroup$ Apr 9, 2012 at 13:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.