Dear Daniel, Some responses below:
> To test for shape differences between temperature regimes while accounting > for variation among replicates, I used the following model: > > fit_nested <- lm.rrpp(shape_data ~ temperature / replica, data = gdf, type = > "II", iter = 999) > predict(fit = fit_nested, newdata = environment_replica_info) > summary(fit_nested, PC = TRUE) > > However, the results show that the effect of temperature (R² ≈ 3.5%) is > smaller than that of replica (R² ≈ 4.05%), and both are significant. I’m > wondering if my nesting specification is correct. Also, the predicted shapes > from predict() appear quite noisy. > First thing that jumps out is that there is an argument, SS.type, but not type, in lm.rrpp. You should check that type II SS was performed. The nesting looks potentially correct. However, I’m not sure you are accomplishing what you wish to accomplish with “accounting for variation among replicates”. Accounting for variation among replicates for estimating Sums of Squares and Cross-products? If this is what you wish to do, you might want to use lm.rrpp.ws (within-subject RRPP). > For comparison, I tried a simpler model: > > fit_env_only <- lm.rrpp(shape_data ~ temperature, data = gdf, type = "II", > iter = 999) > predict(fit_env_only, newdata = environment_info) > summary(fit_env_only, PC = TRUE) > > With only two temperature levels, PC1 explains 100% of the variation, which > makes me think that this analysis is not appropriate for just 2 levels. Two things. First, type II SS does not mean anything fi you have a single factor in your model. Second, if temperature is a factor with two levels, there is exactly 1 PC for the fitted values, not the data, which is what I think you meant to say. (There is one parameter in the model for the effect of temperature.). I’m not sure why your interpretation is that the analysis is not appropriate based on these results. > To test for differences in allometric slopes between temperature regimes, I > used: > > fit_nested_allometry <- lm.rrpp(shape_data ~ temperature*size, data = gdf, > type = "II", iter = 999) > anova(fit_nested_allometry) > > I interpret this as testing whether the slopes differ between temperatures. > Correct. > To extract the actual slopes per each group, I’ve been splitting the data by > temperature and running separate regressions within each treatment. > Well, then you are creating new models for different data sets. You cannot expect those slopes to be the same as in your model that contains a factor, a covariate, and their interaction. The pairwise function can be used to extract slopes, as well just obtaining them from the coefficients of the model fit. > Similarly, when I removed the allometric effects, I did this within each > treatment. > This would not make sense if the allometries (slope vectors) differ. If you conclude that allometries vary between temperature regimes, attempting to compare allometry-free means seems like a bad idea when you could interpret rather what the different allometries tell you about how shape changes with growth in different temperature regimes. > Lastly, I always corrected for allometry in symmetrical shape object for this > analysis. If I wanted to remove allometry in the fa.component, what would be > the best way to approach this? > Maybe somebody else has advice for why or how one would do this. I cannot think of a good reason to do it, as FA seems like a cross-sectional attribute to measure on organisms as they are at the time of measurement. I could see analyzing the amount or direction of asymmetry as organisms grow, but that would mean not removing size. hope this was helpful, Mike -- You received this message because you are subscribed to the Google Groups "Morphmet" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/morphmet2/F630717D-1812-45E3-BA34-4E9617B21B28%40gmail.com.
