主効果でなく交絡がみえる実験

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