エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
対数尤度比(G検定の統計量)のrubyワンライナ - 中野智文
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
対数尤度比(G検定の統計量)のrubyワンライナ - 中野智文
背景 対数尤度比(G検定の検定統計量)のワンライナーが欲しいので作った。 入力 以下の様な2×2の分割... 背景 対数尤度比(G検定の検定統計量)のワンライナーが欲しいので作った。 入力 以下の様な2×2の分割表を想定。 入力フォーマット 下記のようなtsv id⇔a⇔b⇔c⇔d ※ここで⇔は、tabを表す。 idは任意の文字列、a,b,c,dは整数。 出力フォーマット 下記のようなtsv id⇔a⇔b⇔c⇔d⇔g ここでgはG検定の検定統計量。ただし、a*d-b*cが負の時、gは負となる。 そのワンライナー ruby -ane 'a,b,c,d=$F[1..4].map(&:to_i); n=a+b+c+d; g=[[a,a+c,a+b],[b,b+a,b+d],[c,c+a,c+d],[d,d+c,d+b]].reduce(0.0){|s,(x,x1,x2)| (x.zero?) ? s : s+x*-Math.log(x1.to_f*x2/x/n)}; g=-g if a*d-b*c<0;