自由度 df のカイ二乗分布において,上側確率が p に対するパーセント点を与える関数です。
# カイ二乗分布のパーセント点を求める。
function pxx(p0, idf, df9, temp, u, xl, xm, xr, ok)
{
ok = 0
xl = 0
xr = 10
while (xr < 1e30) {
temp = xxp(xr, idf)
if (temp == p0) {
return xr
}
else if (temp < p0) {
ok = 1
break
}
xl = xr
xr *= 10
}
if (ok == 0) {
printf "pxx(1): 近似計算を行いました。" > "/dev/stderr"
u = pxg(p0)
df9 = 2/(9*idf)
temp = 1-df9+u*sqrt(df9)
return idf*temp^3
}
else {
do {
xm = (xl+xr)*0.5
temp = xxp(xm, idf)
if (temp > p0) {
xl = xm
}
else {
xr = xm
}
} while (abs(xr-xl)/xm > 1e-10)
return xm
}
}