JMP与R中含嵌套效应线性模型的Type3平方和差异问题
含嵌套效应的线性模型:JMP与R的Type 3平方和差异
要拟合的线性模型:
- R写法:
Y ~ G + C + G*C + C%in%L - JMP等价写法:
G + C + G*C + L[C]
已知JMP默认输出Type 3平方和,仅含固定效应或简单交叉效应时,通过设置合适对比(如contr.sum)可使R与JMP结果完全一致。但模型包含嵌套效应时,C项的平方和出现无法通过调整对比消除的差异,推测二者对嵌套效应的处理逻辑存在不同。
模拟代码(R)
# library('data.table') set.seed(18) TEST=data.table( L= c( rep( LETTERS[seq( from = 1, to = 3 )],3), rep( LETTERS[seq( from = 4, to = 6 )],3),rep( LETTERS[seq( from = 7, to = 9 )],3)), G= rep(sort(rep(LETTERS[seq( from = 1, to = 3 )],3)),3), C=sort(rep(LETTERS[seq( from = 10, to = 12)],9)), Y= rnorm(27) ) set.seed(18) # 加入非正交数据部分 TEST_add=data.table( L= sort(rep( LETTERS[seq( from = 10, to = 14 )],2)), G= rep(LETTERS[seq( from = 1, to = 2 )],5), C = rep("L",10), Y= rnorm(10) ) TEST=rbind(TEST_add,TEST) TEST$L = as.factor(TEST$L) TEST$G = as.factor(TEST$G) TEST$C = as.factor(TEST$C) model <- lm(Y~ G +C+ C*G + C%in% L, data = TEST ,contrasts=list(G="contr.sum",C="contr.sum", L="contr.sum")) drop1(model,.~.,test="F",all.cols = FALSE)
R输出结果
Df Sum of Sq RSS AIC F value Pr(>F) <none> 24.196 24.285 G 2 0.2945 24.491 20.733 0.1035 0.9023 C 2 0.4707 24.667 20.998 0.1653 0.8490 G:C 4 5.9115 30.108 24.373 1.0383 0.4163 C:L 11 21.7349 45.931 26.000 1.3882 0.2631
JMP输出结果
Source DF Sum of Squares C 2 0.876575 G 2 0.294510 L[C] 11 21.734947 G*C 4 5.911491
核心差异
仅C项平方和存在不一致:
- JMP中C项平方和:0.876575
- R中C项平方和:0.4707
内容的提问来源于stack exchange,提问作者Johanna
相关产品推荐
相关产品推荐

