1

私はRが初めてです。quantreg単純なエラーである可能性があることを理解しようとしています。quantreg ヘルプ ファイル (および他の多くのオンライン ソース) で提供されているサンプル コードに多かれ少なかれ正確に従っていますが、サンプル データ セットではなく、私のデータ セットを使用しています。次のコードを実行します。

library(quantreg)
rq.xy.1 <- rq(y~-1+x1+x2+d1,tau=1:99/100,data=xy.df,na.action=na.omit,model=TRUE)
s2 <- summary(rq.xy.1,se="boot")
plot.summary.rqs(s2)

最初の行は正常に実行されます。最終行 (を使用plot.summary.rqs) で、エラー メッセージが表示されます。

`rownames <-`(`*tmp*`, value = c("x1", "x2", "d1")) のエラー: 'dimnames' [1] の長さが配列の範囲と等しくありません

エラーの原因は特定できませんでした。これが私がこれまでに理解したことです:

  • 信頼区間なしで問題なく図を作成できます。つまり、plot.rqs(rq.xy.1)説明変数ごとに (分位数にわたる) 係数のプロットを実行して返すことができます。しかし、私は信頼バンドが欲しいです。
  • Objectrq.xy.1は class のオブジェクトですrqs( の出力はclassのrqオブジェクトであるか、これは です)。rqrqsrq.processrqs
  • Objects2は class のオブジェクトですsummary.rqs
  • つまりs2、リストです (RStudio の [環境] ペインに表示されるのはこれだと思います)。これが重要かどうかはわかりません。私はそれをスキャンして、呼び出されたものの長さの有用な指標があるかどうかを確認しましdimnamesたが、明らかに有用と思われるものは何も見ませんでした
  • (別のオンライン ヘルプ スレッドを読んだことに基づいて)電話traceback()をかけましたが、有用と思われるものは何も生成されませんでした。
  • 私は( r の線形回帰の要約で「 'dimnames' [1]の長さは配列の範囲と等しくない」というエラーをmodel.matrix(y~-1+x1+x2+d1, data=xy.df読んだことに基づいて)試しましたが、それでも手がかりは得られませんでした。ではなく、エラーがスローされているためだと思います。エラーの原因を明らかにするために使用できる場合は、方法がわかりません。ここでアドバイスをいただければ幸いです。plot.summary.rqssummarymodel.matrix

この時点で、私はかなり立ち往生しています。多くのソースを検索しましたが、このエラーを理解できません。ご協力いただきありがとうございます。

この行の下の元の質問を編集します。

編集 1. 私のデータのサブセット (問題を再現するための最小限のもの) は次のとおりです: https://www.dropbox.com/s/9mges3kuro6ty5s/tmp_data?dl=0

編集2.データのいくつかのサブセットを使用して、問題をさらに調査しました。ここに役立つ情報があります。私のデータフレームには、基本的に 4 種類の行があります。簡単に参照できるように、大文字でラベルを付けます。

  • A: y、x1、x2 はすべて NA です。d1=0
  • B: y、x1、x2 はすべて NA です。d1=1
  • C: y、x1、x2 はすべて数値 (連続) です。d1=1
  • D: y、x1、x2 はすべて数値 (連続) です。d1=0

上記の質問で指摘したエラーを生成するには、タイプ D の行が 1 つ以上存在するだけで十分なようです。(また、すべての行がタイプ D の場合、計画行列が特異であるため、rq() は失敗します。) これは興味深いことです。quantreg は、説明変数の 1 つが 0/1 の場合に正常に動作するはずです (実際、rq() は正常に動作します)。説明変数の 1 つがダミー (変動あり) の場合にエラーをスローする plot.summary.rqs() についてはどうですか?

編集3.問題を解決する方法を見つけ、それらのサブセットを再度調査しました。エラーの理由はまだわかりませんが、推定式に定数を含めることで問題を回避できます。

library(quantreg)
rq.xy.1 <- rq(y~x1+x2+d1,tau=1:99/100,data=xy.df,na.action=na.omit,model=TRUE)
s2 <- summary(rq.xy.1,se="boot")
plot.summary.rqs(s2)

私が評価しようとしている関係についてさらに考えてみると、定数を含めることが計量経済的にも正しいアプローチであることがわかりました。したがって、この問題は解決したと思います(とにかく今のところ)。

Jimbou さん、助けてくれてありがとう - 前述のように、私は R にまったく慣れていないので、最小限のデータセットを提供する方法を見つけようとしたことが、データのサブセットで問題を再現しようとするきっかけになりました。もし私がそれを試みていなかったら、上記の編集 2 で観察したことはなかっただろうし、おそらくこの幸せな結論に達しなかったでしょう.

4

0 に答える 0