分位点回帰の行列の特異性の原因


8

quantregパッケージを使用して、Rで分位点回帰を実行しています。データセットには、0.12から330までの範囲の12,328の観測が含まれています。データのタイムポイントは正確に連続的ではありません。すべてのデータは、73から397までの数十のビンの1つに分類されます。

lm()関数を使用してこのデータに線形回帰を実行すると、最大4の多項式でこれを行うことができました。

lm(Y~poly(X,3,raw=TRUE),data=mydata)

ただし、パッケージquantregとrq()コマンドでは、多項式を使用できません。単純な回帰は問題なく機能します。

rq(Y~X,data=mydata,tau=.15)

しかし、私が多項式に入るとすぐに、サイコロはありません。これを入力すると:

rq(Y~poly(X,2,raw=TRUE),data=mydata,tau=.15)

次のエラーメッセージが表示されます。

Error in rq.fit.br(x, y, tau = tau, ...) : Singular design matrix

私は特異行列について読みましたが、これには2つの理由があると思います。(1)各軸に1つの変数しかない、または(2)データがビニングされている、またはY変数が本当に連続的ではない。

このエラーが発生する理由を誰かに教えてもらえますか?

PS-これはグラフがどのように見えるかです:

ここに画像の説明を入力してください


これについて何か答えはありましたか?このように見えるのは、大きな違いによるものです。値の繰り返し[ stat.ethz.ch/pipermail/r-help//2013-April/351935.html]
Mohit Verma

回答:


7

単数形として出現する理由は、データがビニングされている2番目の理由だと思います。観測値を複製すると(単一のx値の場合、複数の応答)、特異性の可能性が高くなります。

似たような構造のデータセットで、あなたと同じエラーメッセージが表示されました。x値ごとに複数の観測値があり、その一部は同一でした。データを「ジッタリング」し、rnorm()を使用して応答値に非常に少量のランダムノイズを追加することで回避しました。これは、各x値に複数の観測値があったにもかかわらず、同一の繰り返しがなく、rq()関数が機能することを意味しました。追加するノイズが小さい限り、rqからの係数とSEの推定値に大きな影響はありません。


1

rnorm()Jack Ballardによって提案されたものに代わるものはjitter()、基本パッケージから使用することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.