回帰モデルで「ネストされた」変数をどのように処理しますか?


11

変数と変数responseについて条件付きで記述したい変数があり、ネストされた変数が説明変数の特定の値の意味のある変数としてのみ発生する統計的な問題について考えます。説明変数が意味のあるネストされた変数を許可しない場合、後者は通常、データセットのようにコーディングされるか、値でコーディングされている場合、その値は意味のある解釈のない単なるプレースホルダーです。explanatorynestedNA

この状況は、モノの存在を示す説明変数と、そのモノの特性を説明する1つ以上のネストされた変数がある場合に必ず発生します。統計的な問題におけるこの種の状況のいくつかの例は次のとおりです。

  • 説明変数は、調査の参加者がであるかどうかの指標でmarriedあり、ネストされた変数は一部ですcharacteristic of the spouse(例:教育、年齢など)。

  • 説明変数はpresence of an itemスペース内ののインジケーターであり、ネストされた変数はいくつかのcharacteristic of the itemサイズ(たとえば、サイズ、距離など)です。

  • 説明変数はの発生のインジケーターでeventあり、ネストされた変数はいくつかの説明ですcharacteristic of the event(たとえば、期間、大きさなど)。

このような状況では、応答変数と他の変数との関係を記述する回帰型モデル(GLM、GLMMなどを含む広い意味で)を構築することがよくあります。このタイプのモデルでネストされた変数の処理方法は明らかではありません。

質問:nestedこのタイプのモデルで変数をどのように処理しますか?


注:この質問は、回帰のネストされた変数に関するCV.SEで繰り返し発生する質問に対する一般化された回答を提供することを目的としています(たとえば、ここここここ、およびここを参照)。この質問は、この問題の一般化されたコンテキストに依存しない例を示すことを目的としています。


1
私はこれをコメントとして残しましたが、十分な評判がありません。R-glm()またはlm()でこのソリューションを使用する際に問題があります。私はモデルを使用しています:y〜x1 + x1:x2残念ながら、欠落データをNAとしてエンコードすると、デフォルトのna.actionはNAの行を削除し、x1を1レベルだけにします-モデルは次のようになります:y〜x2 glmへの引数を使用する場合:na.action = na.passエラーが発生する:エラーin glm.fit(x = c(1、1、1、1、1、1、1、1、1、1、1 1 、1、1、1、1、1 、: 'x'のNA / NaN / Inf代わりに欠落している変数を0としてエンコードすると、ネストされたモデル:y〜x1 + x1:x2は正確な
Adam Waring

回答:


9

ネストされた変数の無意味な値はモデルに影響を与えはなりませんこのタイプのデータ分析 の重要な目的nested、元のexplanatory変数が意味のある変数としてそれを認めない場合、変数がモデルに影響を与えてはならないということです。つまり、モデルは、ネストされた変数の無意味な値無視する形式でなければなりません。これは、ネストされた変数を持つ有効なモデルの重要な要件です。これにより、モデルの出力が任意のコーディング選択の影響を受けないことが保証されます。


ネストされた変数を使用したモデリング:この要件は、nested変数を主効果として含めずに、元の変数との相互作用としてのみモデルに配置することによって達成されexplanatoryます。(より具体的には、ネストされた変数は、それが意味のある変数であることを示す説明変数の論理ステートメントと相互作用する必要があります。)これは、主効果用語のない相互作用として用語を含めることはできないという一般的な規則の例外です。 。

変数が値のセットに含まれているnested場合にのみ変数が意味を持つという一般的なケースを考えexplanatoryますA。その場合は、次のようなモデルフォームを使用します。

response ~ 1 + explanatory + (explanatory %in% A):nested + ...

explanatory変数がインジケーター変数(意味のあるネストされた変数を生成する1の値を持つ)である一般的なケースでは、このモデル形式はこれを単純化します:

response ~ 1 + explanatory + explanatory:nested + ...

これらのモデルステートメントには、変数の主効果項ないことに注意してくださいnested。これは仕様によるものです---ネストされた変数は、説明変数に条件がない場合は意味のある変数ではないため、主効果項を持つべきではありません。このタイプのモデル形式を使用すると、説明変数の効果の推定値とネストされた変数の効果の別の推定値が得られます。


データ内のネストされた変数のコーディング:回帰の変数をリストするデータフレームを処理する場合、説明変数から意味を持たない場合とnested同様NAに、変数の値をコーディングすることをお勧めします。これは、ここには意味のある変数がないことを読者に伝えます。一部のアナリストは、これらの変数をゼロなどの他の値でコーディングしますが、意味のある量と間違われる可能性があるため、これは一般に悪い習慣です。

数学的には、実数にゼロを掛けるとゼロになります。ただし、コーディングするR場合は、プログラムがの代わりに乗算0:NAするため、ここで注意する必要NAがあり0ます。つまりNA、モデルフィッティングの目的で値をゼロに再コード化するか、これらの値がゼロに設定されるようにモデルの設計行列を作成する必要がある場合があります。


ベース変数がネストされた変数の関数であるケース:ネストされた変数を含む回帰分析で時々発生する1つの状況は、ネストされた変数が十分な量の詳細を持ち、それが発生した最初の説明変数を完全に決定する場合です- -つまり、元の説明変数はネストされた変数の関数です。この例は、この質問で発生します。分析者は、DrugA薬物が服用されたかどうかの指標変数DrugA_Concと、薬物の濃度のネストされた変数を持っています。この例では、後者の変数はゼロの濃度値を許可します。これは、服用されていない薬物DrugAと同等であり、したがってと同等DrugA_Conc != 0です。

これらのタイプの場合、説明変数とネストされた変数の間の交互作用項は、ネストされた変数と機能的に同等であるため、モデルから最初の説明変数を完全に削除し、単にネストされた変数自体。ネストされた変数の値が最初の説明変数の値を決定するため、これはこの場合は正当です。上記のように、ネストされた変数NAの条件を適用できない場合のように、ネストされた変数をコード化することが適切であることがよくあります。インジケーターである説明変数から条件が発生し、インジケーターがネストされた変数の使用に対応する場合、イベントnested != NAは次と同等です。explanatory。このような場合、ネストされた変数を再コード化して、モデルで初期の説明変数がまったく必要ないようにすることができます。

この状況を見るときは注意が必要であることに注意してください。標識変数である初期説明変数を使用している場合でも、説明変数とネストされた変数をマージしないことは、解釈の目的で役立つ場合があります。また、説明変数がインジケータ変数でない場合、通常、ネストされた変数に含まれていない情報が含まれているため、削除できません。


XX

特定のソフトウェアを指定していないため(ただし、の構文を使用していますR)、NA値が受け入れられない理由がわかりません。ではR、あなた確かに持つことができNA、データフレーム内の値を。
ベン-モニカを

X(XX)1

2
この回答で使用されているモデルでは、NA値は変数のデータフレームで発生しますが、ネストされた変数は相互作用を介してモデルに入るだけなので、それらは設計行列には表示されません
ベン-2018年

それが私の元の質問です:設計行列はどのように見えますか?実際、私はSASでそれをしたいのですが、欠損値を設計マトリックスに含めることはできません。
user158565 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.