0

帰属されたバイナリ変数を丸める信頼できる方法については、継続的な議論があります。それでも、Bernaards と同僚 (2007) によって開発されたいわゆる適応丸め手順は、現在最も広く受け入れられているソリューションです。

採用丸め手順には、二項分布への正規近似が含まれます。つまり、バイナリ変数の代入値には、以下の式によって導出されるしきい値に基づいて、0 または 1 のいずれかの値が割り当てられます。x は、代入されたバイナリ変数の平均です。

threshold <- mean(x) - qnorm(mean(x))*sqrt(mean(x)*(1-mean(x)))

私の知る限りでは、代入に関する主要な R パッケージ (Amelia やマウスなど) には、バイナリ変数の丸めに役立つ関数がまだ含まれていません。この欠点は、従属変数が 2 進数でコード化されていることを考えると、ロジスティック回帰分析で帰属値を使用しようとする研究者にとって特に困難です。

したがって、上記の Bernaards 式の R 関数を記述することは理にかなっています。

bernaards <- function(x)
{
mean(x) - qnorm(mean(x))*sqrt(mean(x)*(1-mean(x)))
}

この式を使用すると、たとえば平均が .623 の代入バイナリ変数のしきい値を計算するのがはるかに簡単になります。

bernaards(.623)
[1] 0.4711302

しきい値を計算した後、通常の次のステップは、変数 x の代入値を丸めることです。

私の質問は、上記の関数を拡張してそのタスクも含めるにはどうすればよいですか?

つまり、上記のすべてを R で 3 行のコードで実行できます。

threshold <- mean(x) - qnorm(mean(x))*sqrt(mean(x)*(1-mean(x)))
df$x[x > threshold] <- 1
df$x[x < threshold] <- 0

特に大規模なデータセットを扱う場合、各バイナリ変数に対して同じプロセスを繰り返すと時間がかかるため、関数に上記の再コーディング/丸めが含まれていると最適です。このような関数を使用すると、代入後に追加のコード行 (以下のように) を実行するだけで、分析を続行できます。

bernaards(dummy1, dummy2, dummy3)
4

0 に答える 0