Error in mer_finalize(ans) : Downdated X'X is not positive definite.
このエラーの考えられる原因は、明らかにランクの不足です。ランクの不備とは何ですか、どのように対処すればよいですか?
caret
は、findLinearCombos
どの変数が問題のある変数であるかを示す関数があります。
Error in mer_finalize(ans) : Downdated X'X is not positive definite.
このエラーの考えられる原因は、明らかにランクの不足です。ランクの不備とは何ですか、どのように対処すればよいですか?
caret
は、findLinearCombos
どの変数が問題のある変数であるかを示す関数があります。
回答:
このコンテキストでのランクの不足は、希望するモデルを推定するためにデータに含まれる情報が不十分であると言います。それは多くの起源に由来します。ここでは、明示的なロジスティック回帰ではなく、かなり一般的なコンテキストでのモデリングについて説明しますが、すべてが特定のコンテキストに適用されます。
不足は単にデータが少なすぎることに起因する場合があります。一般に、n個未満のデータポイントでn個のパラメーターを一意に推定することはできません。それは、プロセスにノイズがあるかのように、あなたが必要とするすべてがnポイントであるという意味ではありません、あなたはかなり悪い結果を得るでしょう。アルゴリズムがエラーを最小限に抑えて、すべてのデータを表すソリューションを選択するのに役立つデータが必要です。これが最小二乗ツールを使用する理由です。どのくらいのデータが必要ですか?私はいつも過去の人生でその質問をされましたが、答えはあなたが持っている以上のものでした。:)
必要以上のデータがある場合もありますが、一部の(多すぎる)ポイントが複製されます。レプリケーションは、ノイズを減らすのに役立つという意味で優れていますが、数値ランクを上げるのには役立ちません。したがって、データポイントが2つしかないとします。ポイントを介して一意の2次モデルを推定することはできません。各ポイントの100万回の複製では、まだ実質的に1組のポイントにすぎないものを介して、直線以上に適合させることはできません。基本的に、レプリケーションは情報コンテンツを追加しません。既に情報がある場所でノイズを減らすだけです。
情報が間違った場所にある場合があります。たとえば、すべてのポイントが2次元の直線上にある場合、2次元の2次モデルを近似することはできません。つまり、平面内の線x = yに沿ってのみ点が散在しており、表面z(x、y)のモデルを近似するとします。無数のポイント(複製でさえない)であっても、定数モデル以上のものをインテリジェントに推定するのに十分な情報があります。驚くべきことに、これはサンプルデータで見た共通の問題です。ユーザーは、なぜ良いモデルを構築できないのだろうと考えています。問題は、サンプリングしたデータそのものに組み込まれています。
時にはそれは単にモデルの選択です。これは「十分なデータ」ではなく、反対側から見ることができます。複雑なモデルを推定したいが、そのためのデータが不十分である。
上記のすべての場合の答えは、現在不足しているプロセスに関する情報を提供する場所からインテリジェントにサンプリングされたより多くのデータを取得することです。実験の設計は開始するのに適した場所です。
ただし、少なくとも数値的には、良いデータでさえ不適切な場合があります。(なぜ良いデータに悪いことが起こるのですか?)ここでの問題はモデルに関連している可能性があります。それは、貧弱なユニットの選択に他ならないかもしれません。問題を解決するために行われたコンピュータープログラミングに起因する場合があります。(うーん!どこから始めますか?)
まず、単位とスケーリングについて説明します。ある変数が別の変数よりも桁違いに大きい問題を解決しようとするとします。たとえば、身長と靴のサイズに関連する問題があるとします。身長をナノメートルで測定します。したがって、私の身長は約17.8億(1.78e9)ナノメートルになります。もちろん、靴のサイズをキロパーセクで測定することを選択するので、9.14e-21キロパーセクです。回帰モデリングを行う場合、線形回帰はすべて線形代数に関するものであり、変数の線形結合を伴います。ここでの問題は、これらの数値が桁違いに大きく異なることです(同じ単位でさえありません)。コンピュータープログラムが桁違いに異なる数値を加算または減算しようとすると、数学が失敗します(倍精度の場合)数、
トリックは通常、共通のユニットを使用することですが、変数が非常に多くの桁で変化する場合、それが問題になることさえあります。より重要なのは、数値を同じ大きさにすることです。
次に、大きな数字とそれらの数字の小さな変動に問題があるかもしれません。したがって、入力がすべて区間[1,2]にあるデータを使用して、適度に高次の多項式モデルを構築しようとするとします。1または2のオーダーの数値の平方、立方体などは、倍精度演算で作業するときに問題を引き起こしません。または、すべての番号に1e12を追加します。理論的には、数学はこれを可能にします。それは、x軸上で構築した多項式モデルをシフトするだけです。形状はまったく同じですが、1e12で右に翻訳されます。実際には、ランク代数の問題により線形代数は悲惨に失敗します。データを変換する以外は何もしていませんが、突然、特異な行列が表示されるようになります。
通常、行われるコメントは、「データの中心化とスケーリング」を提案するものです。これは事実上、データをシフトおよびスケーリングして、平均がゼロに近く、標準偏差が約1になるようにすることを意味します。
ランク不足のその他の理由が存在します。場合によっては、モデルに直接組み込まれます。たとえば、関数の導関数を提供すると、関数自体を一意に推論できますか?もちろんそうではありませんが、積分には積分定数、つまりある時点での関数の値の知識によって一般的に推測される未知のパラメーターが含まれます。実際、これはシステムの特異性が研究中のシステムの基本的な性質から導き出される推定問題でも生じることがあります。
線形システムのランク不足の多くの理由のうちのいくつかを確実に除外し、私は今あまりにも長い間悩んでいました。うまくいけば、私がカバーしたものを簡単な用語で説明し、問題を軽減する方法を説明できました。
行列のランクの定義については、線形代数に関する優れた教科書を参照するか、ウィキペディアのページをご覧ください。
行列あればフルランクであると言われている、その列は、互いの線形結合ではありません。その場合、行列は正定であり、これは逆持つことを意味します。
がフルランクでない場合、列の1つは他の列の線形結合であるという意味で、他の列によって完全に説明されます。簡単な例は、列が複製される場合です。これは、0-1変数があり、列が0または1のみで構成されている場合にも発生する可能性があります。その場合、行列ランクはより小さく、には逆行列がありません。
多くの回帰問題(ロジスティック回帰を含む)の解法には計算中間が含まれるため、モデルのパラメーターを推定することは不可能です。好奇心から、ここでこの用語が多重線形回帰の公式にどのように関係しているかを確認できます。
それは絶対的なランク不足のためでした。しかし、@ woodchipsで詳細に説明されているように、行列が「ほとんど」フルランクではない場合に問題が発生することがあります。この問題は通常、多重共線性と呼ばれます。この問題は、関連する投稿にそれに対処する方法の詳細を知ることができ、かなり一般的であるこことそこ。
user974の答えは、モデリングの観点からは素晴らしいです。gui11aumeの答えは、数学的な観点からは素晴らしいです。前者の答えを、混合モデリングの観点、具体的には一般化混合モデリング(GLMM)の観点から厳密に絞り込みたいと思います。ご覧のとおり、素晴らしいパッケージにあるR関数を参照しました。また、ロジスティック回帰モデルをフィッティングしていると言います。mer_finalize
lme4
このようなタイプの数値アルゴリズムでは、多くの問題が発生します。user974が示唆したように、固定効果のモデルマトリックスのマトリックス構造の問題は、確かに検討する価値があります。しかし、これは非常に簡単に評価でき、モデルの引数と引数model.matrix
を単純に計算し、関数を使用してその決定要因を取得します。ただし、ランダム効果は、解釈、数値推定ルーチン、および固定効果(通常「通常の」回帰モデルで回帰係数と考えるもの)の推論を大幅に複雑にします。formula=
data=
det
最も単純なケースでは、ランダムインターセプトモデルのみを近似するとします。次に、基本的に、クラスター内の反復測定で一定に保たれている数千の測定されていない不均一なソースがあると考えています。「グランド」インターセプトを推定しますが、クラスター固有のインターセプトに何らかの平均分布があると仮定して、不均一性を考慮します。切片は反復的に推定され、収束が達成されるまでモデル効果を更新するために使用されます(対数尤度、またはその近似値が最大化されます)。混合モデルは非常に簡単に想像できますが、数学的には尤度は非常に複雑で、特異点、極小点、境界点(オッズ比= 0または無限大)の問題が発生しやすくなります。混合モデルには、正規GLMのような2次尤度はありません。
残念ながら、VenerablesとRipleyは、あなたのような収束失敗の診断にあまり投資しませんでした。このようなメッセージにつながる無数のエラーを推測することさえ事実上不可能です。次に、以下で使用する診断のタイプを検討してください。
または、いくつかの異なるモデリングアプローチを検討できます。