データフレームtrain
(21 個の予測子、1 つの応答、1012 個の観測値) があり、応答は予測子の非線形関数であると思われます。したがって、すべての予測変数に対して応答の多変量多項式回帰を実行し、最も重要な項を理解しようとします。標準の多変量多項式回帰の共線性の問題を回避するために、多変量直交多項式を で使用したいと思いpolym()
ます。しかし、私は非常に多くの予測因子を持っており、それらの名前は単純な規則に従っていません。たとえば、train
私は 、および という名前の予測子を持っていますがX2
、X3
およびではありX5
ません。応答はです。式の書き方はありますかX1
X4
X14
lm
すべての予測子の名前を明示的に記述する必要はありませんか? 書き込み
OrthoModel=lm(X14~polym(.,2),data=train)
エラーを返します
Error in polym(., 2) : object '.' not found
編集: 私が当てはめたかったモデルには約 35 億の用語が含まれているため、役に立ちません。主効果、交互作用、および 2 次項のみで項を当てはめたほうがよい -> 231 項。標準 (非直交) 2 次多項式の式を書きました。
`as.formula(paste(" X14 ~ (", paste0(names(Xtrain), collapse="+"), ")^2", collapse=""))`
ここで、応答列を削除することXtrain
によって取得されます。ただし、直交基底で多項式を表現しようとすると、テキストの解析エラーが発生します。train
X14
as.formula(
paste(" X14 ~ (", paste0(names(Xtrain), collapse="+"), ")^2", "+",
paste( "poly(", paste0(names(Xtrain), ", degree=2)",
collapse="+"),
collapse="")
)
)