3

データセットに(Rを使用して)ガンタイル回帰を適用しています。さまざまな分位点回帰直線(taus <-c(0.05,0.25,0.75,0.95))を使用して、優れた散布図画像を簡単に作成できます。

これらの分位数のそれぞれについて(各回帰直線の統計的有意性を確認するために)p値を生成したい場合に問題が発生します。分位数の中央値(tau = 0.5)の場合、これは問題ありませんが、たとえばtau = 0.25の場合、次のエラーメッセージが表示されます。

>QRmodel<-rq(y~x,tau=0.25,model=T)
>summary(QRmodel,se="nid")
Error in summary.rq(QRmodel, se = "nid") : tau - h < 0:  error in summary.rq

これの理由は何でしょうか?

また、分位点回帰モデルの結果に関するp値と係数に言及することをお勧めしますか、それともプロット画像だけを表示し、その画像に基づいて結果を議論するだけで十分でしょうか?

よろしく、欲求不満の人

4

2 に答える 2

8

この種のデバッグ状況で何が起こっているかを知る良い方法は、エラーをスローしているコードの関連部分を見つけることです。コンソールで「summary.rq」と入力すると、summary.rq 関数のコードが表示されます。それをスキャンすると、次のコードで始まる「nid」メソッドを使用して se を計算するセクションが見つかります。

else if (se == "nid") {
    h <- bandwidth.rq(tau, n, hs = hs)
    if (tau + h > 1) 
        stop("tau + h > 1:  error in summary.rq")
    if (tau - h < 0) 
        stop("tau - h < 0:  error in summary.rq")
    bhi <- rq.fit.fnb(x, y, tau = tau + h)$coef
    blo <- rq.fit.fnb(x, y, tau = tau - h)$coef

ここで何が起こっているかというと、se を計算するために、関数は最初に帯域幅 h を計算する必要があり、quantreg モデルは tau +/- h に対して再適合されます。タウが 0 または 1 に近い場合、帯域幅「h」を加算または減算すると、タウが 0 未満または 1 を超える可能性があり、これは良くないため、関数は停止します。

いくつかのオプションがあります。

1.) 別の se メソッドを試す (ブートストラップ?)

2.) 帯域幅によってタウが範囲外に押し出される場合に max(tau,0) または min(tau,1) のいずれかを使用するように、summary.rq コードを自分で変更します。(これが悪い考えである深刻な理論的理由がある可能性があります。自分が何をしているのかを理解していない限り、お勧めできません。)

3.) これらの se の計算の背後にある理論を読んでみると、それらがうまく機能するかどうかをよりよく理解できるようになります。これにより、tau の値が 0 または 1 に近いエラーが発生する理由が明らかになる可能性があります。

于 2011-06-03T17:14:51.360 に答える
0

試すsummary(QRmodel,se="boot")

ヘルプsummary.rqもご覧ください!

于 2015-01-27T11:18:03.487 に答える