I am trying to convert SAS to R for a mixed model of Repeated measures.The SAS code is as follows:
proc mixed data=pd method=reml ;
by set;
class id month arm;
model eff=base arm month arm*month/s;
repeated/subject=id type=un r;
lsmeans arm*month/pdiff cl;
In R, I have a data frame set up with month,id,arm as factors and eff,base as numeric. I need use the same method as above to generate the pvalues for each treatment arm (arm) and each month to see if their is a significant difference in the treatments during each given month.
My current attempt to replicate this in R is:
eff.lm<-lme(data = pd, fixed= eff~base + arm*month,
random= ~month|ID,
correlation= corSymm(form=~month|ID))
eff.ls<-lsmeans(object= eff.lm, spec = ~arm|month)
comp<-pairs(eff.ls)
pval<-summary(pairs(eff.ls))$p.value
However, this results in the following error following the call to lme():
Error in if (length(uCov) != maxCov){ :
missing value where TRUE/FALSE needed
In addition: Warning message:
In Ops.factor(unlist(covar),1):'-' not meaningful for factors
In response, I changed Month to Numeric and the model ran with no errors, but pairs function only generated pvalues at month 3.5 or the mean month, when I need pvalues for each individual month (1 to 6).
pd$month<-as.numeric(pd$month)
eff.lm<-lme(data = pd, fixed= eff~base + arm*month,
random= ~month|ID,
correlation= corSymm(form=~month|ID))
eff.ls<-lsmeans(object= eff.lm, spec = ~arm|month)
comp<-pairs(eff.ls)
pval<-summary(comp)$p.value
print(comp)
> month = 3.5:
contrast estimate SE df t.ratio p.value
1 - 2 -1.6817998 0.2415967 2015 -6.961 <.0001
1 - 3 -1.2286784 0.2415994 2015 -5.086 <.0001
1 - 4 -0.9165385 0.2416426 2015 -3.793 0.0029
1 - 5 -0.7736447 0.2416409 2015 -3.202 0.0234
1 - 6 -0.6709280 0.2416238 2015 -2.777 0.0809
1 - 7 -0.1179885 0.2416134 2015 -0.488 0.9990
2 - 3 0.4531214 0.2415986 2015 1.876 0.4969
2 - 4 0.7652613 0.2416463 2015 3.167 0.0262
2 - 5 0.9081551 0.2416446 2015 3.758 0.0033
2 - 6 1.0108718 0.2416266 2015 4.184 0.0006
2 - 7 1.5638113 0.2416156 2015 6.472 <.0001
3 - 4 0.3121399 0.2416678 2015 1.292 0.8560
3 - 5 0.4550337 0.2416657 2015 1.883 0.4919
3 - 6 0.5577504 0.2416437 2015 2.308 0.2404
3 - 7 1.1106899 0.2416296 2015 4.597 0.0001
4 - 5 0.1428938 0.2415966 2015 0.591 0.9971
4 - 6 0.2456105 0.2415991 2015 1.017 0.9503
4 - 7 0.7985500 0.2416039 2015 3.305 0.0168
5 - 6 0.1027167 0.2415987 2015 0.425 0.9995
5 - 7 0.6556562 0.2416032 2015 2.714 0.0953
6 - 7 0.5529395 0.2415979 2015 2.289 0.2499
P value adjustment: tukey method for comparing a family of 7 estimates
If anyone can offer suggestions on how to replicate the SAS code in R using with either the NLME package or the lme4 package, it would be appreciated.