ジョン・フォックスの著書「応用回帰のRコンパニオン」は、を使用した応用回帰モデリングに関する優れたリソースR
です。パッケージcar
私はこの回答で全体の使用に付随するパッケージです。本には、追加の章を含むWebサイトもあります。
応答の変換(別名従属変数、結果)
R
lm
boxCox
car
λfamily="yjPower"
boxCox(my.regression.model, family="yjPower", plotit = TRUE)
これにより、次のようなプロットが生成されます。
λλ
ここで従属変数を変換するにyjPower
は、car
パッケージの関数を使用します。
depvar.transformed <- yjPower(my.dependent.variable, lambda)
lambda
λboxCox
重要:従属変数を単にログ変換するのではなく、GLMをログリンクに適合させることを検討する必要があります。詳細情報を提供するリファレンスをいくつか紹介します:first、second、third。でこれを行うにはR
、次を使用しますglm
。
glm.mod <- glm(y~x1+x2, family=gaussian(link="log"))
どこy
が従属変数でx1
、x2
などが独立変数です。
予測変数の変換
変換厳密に正の予測因子は、従属変数の変換の後、最大尤度により推定することができます。これを行うにboxTidwell
は、car
パッケージの関数を使用します(元の論文については、こちらを参照してください)。次のように使用しますboxTidwell(y~x1+x2, other.x=~x3+x4)
。ここで重要なことは、オプションが変換されないother.x
回帰の条件を示すことです。これはすべてカテゴリー変数です。この関数は、次の形式の出力を生成します。
boxTidwell(prestige ~ income + education, other.x=~ type + poly(women, 2), data=Prestige)
Score Statistic p-value MLE of lambda
income -4.482406 0.0000074 -0.3476283
education 0.216991 0.8282154 1.2538274
income
λincome
所得N E W= 1 / 収入O l d−−−−−−−−√
独立変数の変換に関するサイト上の別の非常に興味深い投稿はこれです。
変換の欠点
対数変換された従属変数および/または独立変数は比較的簡単に解釈できますが、他のより複雑な変換の解釈は直感的ではありません(少なくとも私にとって)。たとえば、従属変数が変換された後、回帰係数をどのように解釈しますか1 / Y√λλ
非線形関係のモデリング
非線形関係に適合する非常に柔軟な2つの方法は、分数多項式とスプラインです。:これらの3つの論文は、両方の方法に非常に良い入門提供まず、第二と第三の。分数多項式とについての本もありR
ます。R
パッケージには、mfp
多変量小数多項式を実装しています。この表示は、分数多項式に関して有益な場合があります。フィットスプラインには、関数を使用することができますgam
(一般化加法モデルを参照してくださいここで優れた導入のためR
)から、パッケージmgcv
または機能ns
(自然な3次スプライン)およびbs
(キュービックBスプライン)パッケージからsplines
(これらの関数の使用例についてはこちらをご覧ください)。を使用gam
すると、s()
関数を使用してスプラインを使用して近似する予測子を指定できます。
my.gam <- gam(y~s(x1) + x2, family=gaussian())
ここでx1
は、スプラインを使用x2
して、通常の線形回帰のように線形にフィットします。内部でgam
は、のように分布族とリンク関数を指定できますglm
。したがって、モデルを対数リンク関数に適合させるには、次のようにオプションfamily=gaussian(link="log")
を指定できます。gam
glm
。
サイトからこの投稿をご覧ください。