SAS与R中广义线性模型最小二乘均值结果差异排查求助
SAS与R计算GLM最小二乘均值结果不一致的原因排查
我尝试将一段计算广义线性模型最小二乘均值的SAS代码转换为R代码,但始终得不到一致结果。我从未使用过SAS,仅对R略有了解。
SAS代码
proc glm data=data; class x y; model w= z x v z*x z*v x*v z*x*v; lsmeans x;
对应的R代码
m1 <- lm(w ~ z + x + v + z*x + z*v + x*v + z*x*v, data = data) summary(m1) lsm <- lsmeans(m1, ~x) s <- summary(lsm) class(s) s[c("lsmean")]
测试结果显示:8个x对应的(SAS最小二乘均值 - R最小二乘均值)差值在0.03至0.09之间。我还测试了更简单的模型组合:
SAS: z x, R: z+x-> 差值在小数点后第7位(几乎完全一致)SAS: z x v, R: z+x+v-> 所有x的差值均为0.064SAS: z x v z*x, R: z+x+v+z*x-> 所有x的差值均为0.064SAS: z x v z*x z*v, R: z+x+v+z*x+z*v-> 所有x的差值均为0.063
我想知道这些差异是由小数舍入导致的,还是SAS和R的底层模型计算逻辑存在差异?
内容的提问来源于stack exchange,提问作者Naev47
相关产品推荐
相关产品推荐

