f<-function(v){ 5*v[1]+4*v[2]+1000*v[1]*v[2]*v[2]*v[2]+rnorm(1,mean=0,sd=1); } L8<-function(x=1.0,fun=f,v1,v2){ mat<-cbind(v1,v2) e1<-c(1,1,1,1,1,1,1) e2<-c(1,1,1,2,2,2,2) e3<-c(1,2,2,1,1,2,2) e4<-c(1,2,2,2,2,1,1) e5<-c(2,1,2,1,2,1,2) e6<-c(2,1,2,2,1,2,1) e7<-c(2,2,1,1,2,2,1) e8<-c(2,2,1,2,1,1,2) e<-cbind(e1,e2,e3,e4,e5,e6,e7,e8) out<-NULL for(i in 1:length(e[1,])){ q1<-which(e[,i]==1) q2<-which(e[,i]==2) v<-NULL v[q1]<-mat[q1,1] v[q2]<-mat[q2,2] out[i]<-f(v) } out } v1=rep(1,8) v2=rep(3,8) q<-L8(fun=f,v1=v1,v2=v2) a<-c(1,1,1,1,2,2,2,2) b<-c(1,1,2,2,1,1,2,2) c<-c(1,1,2,2,2,2,1,1) d<-data.frame(A=a,B=b,C=c,y=q[[1]][[1]]) ans<-aov(d$y~d$A+d$B+d$C) ans2<-anova(ans) print(ans2)
Cは本来有意でないが、こうらくのせいで有意にみえる。
v1は水準1、v2は水準2 L8は実験関数。
Analysis of Variance Table
Response: d$y
Df Sum Sq Mean Sq F value Pr(>F)
d$A 1 1569254161 1569254161 1300039056 < 2.2e-16 ***
d$B 1 5409768781 5409768781 4481690012 < 2.2e-16 ***
d$C 1 1351986945 1351986945 1120045353 < 2.2e-16 ***
Residuals 4 5 1
- -
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> q_effect
[1] -7.229609e-02 2.801802e+04 2.801795e+04 4.101802e+04 1.501803e+04
[6] 1.501798e+04 4.101792e+04 3.000000e+00