I have a dataset that different people recorded. Each recorder must have used their own way of recording the variable CO, so I want to check whether there is a significant difference between the different recorders. This way, I can check if I can trust the data or not. The CO measurements were all taken at 31 different points (not duplicates). Any idea about a test and code I can use for that? Thanks a lot!
Values below.
CO (%) | Recorder (Initial) |
1.56 | J |
0.52 | J |
1.56 | J |
1.56 | J |
3.12 | J |
8.32 | J |
4.68 | J |
9.36 | J |
56.16 | J |
73.32 | J |
1.04 | K |
2.6 | J |
8.32 | J |
5.2 | J |
4.16 | J |
2.08 | A |
2.6 | J |
6.76 | J |
15.6 | J |
0.52 | J |
7.28 | J |
7.8 | K |
3.64 | J |
22.36 | J |
17.68 | K |
0.52 | K |
4.16 | J |
3.12 | J |
3.12 | J |
2.08 | J |
13.52 | J |
I think @Ksharp had it right the first time - PROC GLM or NPAR1WAY. No need for a mixed model here. There are 31 experimental units (the measurements) where each received one of three treatments (J, K or A). This code tests for differences between recorders using PROC GLM:
proc glm data=yourdata;
class recorder;
model value=recorder;
means recorder/lsd lines hovtest; /* you may want to substitute tukey for lsd */
lsmeans recorder/pdiff;
run;
quit;
And this for the nonparametric analysis:
proc npar1way data=yourdata;
class recorder;
var value;
run;
This gives several different approaches, but the easiest to consider is the Kruskal-Wallis test. The global test is not significant, so no post hoc pairwise analysis is done.
Now for the caveats: Of the 31 observations, 26 are for recorder J, 4 are for recorder K and 1 is for recorder A. This imbalance makes comparisons difficult, especially with recorder A. Variability is essentially set by recorder J. None of the tests for difference are significant but this does NOT mean the recorders are equivalent. It may just mean that there is insufficient data to detect a real difference.
SteveDenham
I think @Ksharp had it right the first time - PROC GLM or NPAR1WAY. No need for a mixed model here. There are 31 experimental units (the measurements) where each received one of three treatments (J, K or A). This code tests for differences between recorders using PROC GLM:
proc glm data=yourdata;
class recorder;
model value=recorder;
means recorder/lsd lines hovtest; /* you may want to substitute tukey for lsd */
lsmeans recorder/pdiff;
run;
quit;
And this for the nonparametric analysis:
proc npar1way data=yourdata;
class recorder;
var value;
run;
This gives several different approaches, but the easiest to consider is the Kruskal-Wallis test. The global test is not significant, so no post hoc pairwise analysis is done.
Now for the caveats: Of the 31 observations, 26 are for recorder J, 4 are for recorder K and 1 is for recorder A. This imbalance makes comparisons difficult, especially with recorder A. Variability is essentially set by recorder J. None of the tests for difference are significant but this does NOT mean the recorders are equivalent. It may just mean that there is insufficient data to detect a real difference.
SteveDenham
Thank you so much for this well-thought answer. I appreciate it!
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.