geomorphR/geomorph

Calculate repeatability

PhilGossieaux opened this issue · 4 comments

Hello everyone,

I would like to evaluate my landmarks repeatability but I am not sure that I am doing it correctly. I am trying to follow the method detailed here https://www.r-bloggers.com/tips-tricks-8-examining-replicate-error/ but I want to make sure that I am doing it properly.

In my study, I want to digitize each individual (ind) twice, thus I will have 2 sets of landmarks (rep) per individual.

I should first perform a gpa and a Procrustes ANOVA. Is it correct that my ANOVA formula is written as:
procD.lm(shape ~ ind+ind:rep, data=gdf)
or should it be
procD.lm(shape ~ ind*rep, data=gdf)?

Then, once I have the ANOVA table, is it right that the formula I am supposed to use is this one (with n the number of replicates):
((MS(ind) – MS(ind:rep))/n ) / (MS(ind)+MS(ind:rep)))?
Since the denominator is supposed to be the total MS, shouldn't I also include the MS of the residuals?

The data set mosquito has a slightly different structure since they have 2 replicates of each side of each individual. I have only 2 levels in my data (ind and rep) and there is 3 in the mosquito data (ind, side and rep) but for the sake of the example, I would like to use this data and only use 2 levels of data hierarchy (ind and rep).

data(mosquito)
Y.gpa <- gpagen(mosquito$wingshape)
gdf <- geomorph.data.frame(wingshape = Y.gpa$coords, ind=mosquito$ind, rep=mosquito$replicate)

anova.table <- procD.lm(wingshape ~ ind+ind:rep, data=gdf)

I obtain:
MS(ind) = 0.0116542
MS(ind:rep) = 0.0046112
MS(residuals) = 0.0039679

Then to calculate repeatability here, should I use (assuming here incorrectly that I have 2 replicates):
((0.0116542 - 0.0046112)/2)/(0.0116542+0.0046112)

The result would be 0.2165025.

I feel that there is something incorrect in the way I estimate repeatability. What I am doing wrong?

Thanks a lot.

Phil

Thanks a lot Dean. So according to the formula provided in the article, I should use
R = [MS(among individuals)-MS(within individuals)/n] / [MS(within individuals)+(MS(among individuals)-MS(within individuals)/n)]

Does it seem correct to you if my ANOVA formula is
procD.lm(shape ~ ind+ind:rep)

And then I ignore the residuals and use
R = [MS(ind)-MS(ind:rep)/n] / [MS(ind)+(MS(ind)-MS(ind:rep)/n)]

Does this make sense?

Thanks a lot!

Phil

Thanks a lot for your answer Dean, I will look into it.

Cheers

Phil