連続変数( "relative_frequency_total")をバイナリ値( "topicality")にマップしようとしています。特定のしきい値を超えるすべての値を1つにマップする必要があり、すべてを他の値以下にマップする必要があります。結果の変数を可能な限り予測し続けたいので、最初に連続変数の各十分位数を取得し、その十分位数をカットオフポイントとして使用してrelative_frequency_totalをマッピングし、結果のバイナリ変数をロジスティック回帰モデルにフィードし、そのモデルのR2を覚えておいてください。 、 このような:
quant_eval = data.frame("quantile" = numeric(100), "R2" = numeric(100))
counter = 1
for(q in seq(1,11,by=1)){
dom$topicality[dom$ranked_frequency_total > quantile(dom$ranked_frequency_total)[q]] <- "topical"
dom$topicality[dom$ranked_frequency_total <= quantile(dom$ranked_frequency_total)[q]] <- "non-topical"
tmp.lrm <- lrm(DOM ~ as.factor(topicality), data=dom)
quant_eval[counter,"quantile"] = q
quant_eval[counter,"R2"] = tmp.lrm$stats["R2"]
counter = counter+1
}
quant_eval
ここに私の質問があります:
(1)これは分位数1〜4でうまく機能しますが、5番目に、「トピック性のカテゴリレベルが2未満です」というエラーメッセージが表示されます。どういう意味ですか?
(2)私を本当に混乱させているのは、このエラーメッセージが分位数を試す順序に依存しているように見えることです。たとえば、ループなしで分位1または10を試してみると、すべて問題ありません。分位数5を単独で試行すると、エラーメッセージが表示され、その後1と10を再試行すると、エラーメッセージも表示されます。lrm()はどういうわけか私が最後にしたことを覚えていますか、それともこれはなぜですか?また、ranked_frequency_totalのマッピングに同じ列を何度も再利用していることが原因かもしれないと思いましたが、列の名前をeaに変更してみました
元のデータフレームのdomはかなり巨大ですが、私にとっては、エラーメッセージは次の抜粋で繰り返すことができます。
DOM relative_frequency_total
1 DAT 0.0203549061
2 DAT 0.0203549061
3 NOM 0.0005219207
4 NOM 0.0005219207
5 NOM 0.0005219207
6 NOM 0.0005219207
7 NOM 0.0015657620
8 NOM 0.0015657620
9 NOM 0.0015657620
10 NOM 0.0005219207
11 NOM 0.0005219207
12 NOM 0.0010438413
13 NOM 0.0010438413
14 NOM 0.0041753653
15 NOM 0.0005219207
16 NOM 0.0005219207
17 NOM 0.0041753653
18 NOM 0.0005219207
19 NOM 0.0010438413
20 NOM 0.0020876827