geomorphR / geomorph

Geomorph is a software package for performing all stages of geometric morphometric shape analysis of landmark points and curves in 2-and-3-dimensions as well as 3D surfaces in the R statistical computing environment. This repository is dedicated to providing stable and beta versions between CRAN uploads
76 stars 20 forks source link

Calculate repeatability #18

Closed PhilGossieaux closed 6 years ago

PhilGossieaux commented 6 years ago

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

deanadams commented 6 years ago

Phil,

Because each data design is slightly different, a far better approach is for you to first consult the primary literature on how one estimates measurement error, and then adapt those approaches and equations for your particular system.

A good reference is: Arnqvist and Martensson. 1998. Measurement error in geometric morphometics: empirical strategies to assess and reduce its impact on measures of shape. Acta Zoologica 44:73-96

Dean

Dr. Dean C. Adams Director of Graduate Education, EEB Program Professor Department of Ecology, Evolution, and Organismal Biology Iowa State University www.public.iastate.edu/~dcadams/http://www.public.iastate.edu/~dcadams/ phone: 515-294-3834

From: PhilGossieaux notifications@github.com Sent: Wednesday, August 1, 2018 4:04 PM To: geomorphR/geomorph geomorph@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [geomorphR/geomorph] Calculate repeatability (#18)

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

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/geomorphR/geomorph/issues/18, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AGSvqT6e91-1m9C0Si7iVL5wTXL-66Mwks5uMheygaJpZM4VrPSB.

PhilGossieaux commented 6 years ago

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

deanadams commented 6 years ago

Not quite. As stated just prior to their equations, for their design a one-way anova was used. The factorial approach is for other data designs.

This is why I mentioned matching the data design with the analysis is important:

Dean

Dr. Dean C. Adams Director of Graduate Education, EEB Program Professor Department of Ecology, Evolution, and Organismal Biology Iowa State University www.public.iastate.edu/~dcadams/http://www.public.iastate.edu/~dcadams/ phone: 515-294-3834

From: PhilGossieaux notifications@github.com Sent: Thursday, August 2, 2018 8:58 AM To: geomorphR/geomorph geomorph@noreply.github.com Cc: Adams, Dean [EEOBS] dcadams@iastate.edu; Comment comment@noreply.github.com Subject: Re: [geomorphR/geomorph] Calculate repeatability (#18)

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

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/geomorphR/geomorph/issues/18#issuecomment-409935619, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AGSvqUcrjUw_axjOHFNXXcMI0B_VncJ2ks5uMwWBgaJpZM4VrPSB.

PhilGossieaux commented 6 years ago

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

Cheers

Phil