パッケージを見始めましたpls
& で個別の係数を抽出する方法がわかりませんgroup/factor
。グループごとに個別のモデルを実行したり、X ~ group
相互作用の項を検討したりできますが、それは私が求めているものではありません。
次の構文を使用しています。
model1 <- plsr(outcome ~ pred * group, data =plsDATA,2)
私は以下を使用してみました:
model2 <- plsr(outcome ~ embed(pred:as.factor(group)), data=plsDATA,2)
しかし、これにより次のエラーが発生します。
model.frame.default(formula = results ~ embed(pred:as.factor(group)) のエラー: 変数の長さが異なります ('embed(pred:as.factor(group))' で見つかりました) さらに: 警告メッセージ: 1: pred:as.factor(group) 内: 数値式には 640 個の要素があります: 最初に使用されるもののみ 2: pred:as.factor(group) 内: 数値式には 32 個の要素があります: 最初に使用されるもののみ
次のコマンドを実行すると互換性のある寸法が得られるため、可変長エラーが発生する理由がわかりません。
dim(group)
[1] 32 1
dim(outcome)
[1] 32 1
dim(pred)
[1] 32 20
コードは以下のとおりです。
library(pls) #Dummy Data
setwd("/Users/John/Documents")
Data <- read.csv("SamplePLS.csv") #Define each of the inputs pred is X, group is the factor & outcome is Y
pred <- as.matrix(Data[,3:22])
group <- as.matrix(Data[,1])
outcome <- as.matrix(Data[,2]) #now combine the matrices into a single dataframe
plsDATA <- data.frame(SampN=c(1:nrow(Data)))
plsDATA$pred <- pred
plsDATA$group <- group
plsDATA$outcome <-outcome #define the model - ask for two components
model1 <- plsr(outcome ~ pred * group, data=plsDATA,2)#Get coefficients from this object