Which model of lm/lme to believe? I have a data set of height values for several individuals of several species in 2 different conditions. Not all the species are found in the 2 conditions.
I want to compare height values between conditions, and the effect of species does not import.
I did thus two models:
summary(lm(value~species+cond+species*cond,data=height))
summary(lme(value~cond,random=~1|species,data=height,method="REML"))

From the lm model, the condition outside is not significant (pv=0.3), whereas from the second model this condition is very significant (pv<0.001).
Why is there these big difference?
Which model must I believe?
Thanks for your time.
 A: As you know, the mixed effects models account for clustering due to unmeasured sources of heterogeneity in the data. You can control for any number of clusters of any size under the somewhat mild assumption that there is an unmeasured "intercept" for each species that has, on average, a normal distribution. This is something that should be verified by looking at ICCs or species level averages and error bars.
An alternative to handling this with "random effects" is to use a "fixed effect" and separately estimate the average height for each species directly. This makes no assumption about that distribution. It can be advantageous if you have fewer species and several observations for each observation.
Nonetheless, I am assuming that species is a multilevel factor with, say, at least 10 levels.
In the first model, you control for the interaction between species and condition, which means that you effectively estimate 9 or more interaction terms as well as 9 or more fixed effects (representing the species average height not having the condition). The one model term in the lm model called "condition" then actually only becomes the condition value for the one species that was determined to be the referent species. Based on how R codes factors, it's probably the first alphabetically.. say armadillo.
If you actually want to test if cond led to a difference in the model, you could do a number of things. The easiest is to fit the correct model:
summary(lm(value~species + cond,data=height))

Or test the factorial model:
mod.full <- lm(values ~ species * cond, data=height) # no need to specify MEs
mod.red <- lm(values ~ species, data=height)
library(lmtest)
lrtest(mod.full, mod.red)

