BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
dsuchoff
Calcite | Level 5

Greetings all,

 I believe this should be an easy question to answer - I keep going back and forth on how to analyze data for a full factorial rcbd. This is an agricultural study, we have genotype and irrigation as our two experimental factors. The experimental unit is an individual potted plant. We took photosynthetic readings from two leaves per plant. Leaves are subsamples but should I add them into my analysis to take into account variability among leaves? I always took readings from the upper most fully formed leaves, the first leaf being closest to the apex, second leaf right under that one.

So, the code I have would be either:

 

PROC GLIMMIX data=data nobound;

class genotype irrigation block leaf;

model response = genotype|irrigation/ddfm=kr;

random block leaf(genotype*irrigation*block);

run;

 

OR

 

PROC GLIMMIX data=data nobound;

class genotype irrigation block leaf;

model response = genotype|irrigation/ddfm=kr;

random block;

run;

 

Many thanks in advance.

 

David

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
sld
Rhodochrosite | Level 12 sld
Rhodochrosite | Level 12

Based on your description, I'll assume that you have blocks. Within each block you have pots, one pot for each genotype x irrigation combination. Within each pot, you have two leaves on which you obtain measurements.

 

Here is an approach modified from your code that uses leaf-level observations:

 

 

proc glimmix data=data nobound;
  class genotype irrigation block;
  model response = genotype|irrigation/ddfm=kr;
  random block genotype*irrigation*block; /* or random intercept genotype*irrigation / subject=block; */
  run;

 

 

This model estimates three variances: among blocks, among pots (==genotype*irrigation*block), and among leaves (residual).

 

If you have no need for an estimate of variance among leaves, you could compute the mean over the two leaf responses to obtain a single value for each pot (so now you have pot-level observations) and use this simpler model:

 

 

proc glimmix data=data_MEANS nobound;
  class genotype irrigation block;
  model response_MEAN = genotype|irrigation/ddfm=kr;
  random block;
  run;

 

 

These two models will produce the same tests for genotype|irrigation if each pot has data for two leaves; if some pots are missing data for a leaf, the results will not be identical but are similar if data are missing at random.

 

 

 

View solution in original post

2 REPLIES 2
sld
Rhodochrosite | Level 12 sld
Rhodochrosite | Level 12

Based on your description, I'll assume that you have blocks. Within each block you have pots, one pot for each genotype x irrigation combination. Within each pot, you have two leaves on which you obtain measurements.

 

Here is an approach modified from your code that uses leaf-level observations:

 

 

proc glimmix data=data nobound;
  class genotype irrigation block;
  model response = genotype|irrigation/ddfm=kr;
  random block genotype*irrigation*block; /* or random intercept genotype*irrigation / subject=block; */
  run;

 

 

This model estimates three variances: among blocks, among pots (==genotype*irrigation*block), and among leaves (residual).

 

If you have no need for an estimate of variance among leaves, you could compute the mean over the two leaf responses to obtain a single value for each pot (so now you have pot-level observations) and use this simpler model:

 

 

proc glimmix data=data_MEANS nobound;
  class genotype irrigation block;
  model response_MEAN = genotype|irrigation/ddfm=kr;
  random block;
  run;

 

 

These two models will produce the same tests for genotype|irrigation if each pot has data for two leaves; if some pots are missing data for a leaf, the results will not be identical but are similar if data are missing at random.

 

 

 

dsuchoff
Calcite | Level 5
Excellent! Thank you kindly.

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 2 replies
  • 4471 views
  • 0 likes
  • 2 in conversation