2017-04-12 11 views
1

私は線形回帰モデルに適合したい実験的な設計をしています。model.matrixの要素の一部のコントラストを設定する

ここ設計data.frameだ:

design.df <- data.frame(batch=rep(c(1:3,1:3),4), 
         species=rep(c(rep("mouse",3),rep("rat",3)),4), 
         sex=rep(c(rep("M",12),rep("F",12))), 
         stringsAsFactors = F) 

design.df$speciesdesign.df$sex両方factorsある:

design.df$species <- factor(design.df$species,levels=c("mouse","rat")) 
design.df$sex <- factor(design.df$sex,levels=c("F","M")) 

design.df$sexのものがcontr.sumでなければならないのに対し、design.df$speciesのコントラスト符号化contr.treatmentなければなりません。

contrasts.list <- list(batch=NA,species="contr.treatment",sex="contr.sum") 

design.mat <- model.matrix(as.formula(paste0("~",paste(model.factors,collapse="+"))),contrasts=contrasts.list,data=design.df) 

もちろん、それは私が手にエラーに応じて動作しません:

Error in `contrasts<-`(`*tmp*`, value = contrasts.arg[[nn]]) : 
    contrasts apply only to factors 

だから私の質問はどのように私はこれが仕事ができるかもしれないと思ったmodel.matrixとしてそれにそれを設定するには

私はmodel.matrixdesign.dfからcontrasts.listに指定しますか?

答えて

1

どこでも定義されていない変数model.factorsを使用しています。目標が何であるか分かりません。あなただけの共変量として、すべてのこれらの値を望んでいた場合、あなたのcontrasts.listが唯一の要因変数の値を持っている必要があり

contrasts.list <- list(species="contr.treatment", sex="contr.sum") 
design.mat <- model.matrix(~., contrasts=contrasts.list, data=design.df) 

注を行うことができます。 batchは含まないでください。

関連する問題