AcreMaker
PLSなどで、分散0の説明変数を取り除く
PLSなどの統計解析手法は、多重共線性を考慮しなくてよいので、説明変数の取捨選択をしなくてよいのが強みです。(取捨選択した方が結果が改善される場合もありますが)

しかしRでPLSを行う時には、分散0のデータ(例えば全てのサンプルにおいてデータの値が1の説明変数)はあらかじめ取り除く必要があります。

そこで簡単にそのようなデータを取り除けないかな?と考えたら、意外と1行で取り除くことができました。

piyo <- hoge[,apply(hoge,2,var) != 0]
piyo_pls <- plsr(y ~ ., 10, data = piyo, validation = "CV")


データhogeに縦方向にサンプル、横方向に説明変数として、データが入ってる場合、apply(hoge,2,var)で説明変数ごとの分散を求めています。

そしてapply(hoge,2,var)!=0で分散が0でないものを選択します。その後、そのデータに対してPLSやPCAを行えばOKです。

データhogeに横方向にサンプル、縦方向に説明変数と逆に入ってる場合は、apply(hoge,1,var)とすれば同じことができます。

公開日:4月22日