4

私の元の観察は次のようになります。

名前 検体
ばね 0.1
冬 0.4

p 値を計算するために、ブートストラップ シミュレーションを行いました。

名前 検体
春 0.001
冬 0
春 0
冬 0.2
スプリング 0.03
冬 0
スプリング 0.01
冬 0.02
ばね 0.1
冬 0.5
春 0
冬 0.04
ばね 0.2
冬 0
春 0
冬 0.06
春 0
冬 0
.....

ここで、経験的な p 値を計算したいと思います: 元のデータでは冬の分析物 = 0.4 - ブートストラップされたデータで冬の分析物が >=0.4 (たとえば 1 回) であり、ブートストラップが行われた場合 (たとえば 100 回)、経験的な p 値冬の分析対象物は次のように計算されます。

1/100 = 0.01

(データが元のデータと同じかそれ以上だった回数を観測の総数で割った数) 春の検体の p 値は次のとおりです。

2/100 = 0.02

これらのp値をawkで計算したい。春の私の解決策は次のとおりです。

awk -v VAR="spring" '($1==VAR && $2>=0.1) {n++} END {print VAR,"p-value=",n/100}'

spring p-value= 0.02 私が必要とする助けは、元のファイル (春と冬の名前とその分析物、観察、および観察の数を含む) を awk に渡し、それらを割り当てることです。

4

2 に答える 2

2

これは私にとってはうまくいきます(GNU awk 3.1.6):

FNR == NR {
     a[$1] = $2
     next
}

$2 > a[$1] {
    b[$1]++
    }

{
    c[$1]++
}

END {
    for (i in a) print i, "p-value=",b[i]/c[i]
    }

..出力は次のとおりです。

winter p-value= 0.111111
spring p-value= 0.111111
于 2013-06-17T20:55:43.943 に答える