Rを解剖してみる

t検定の検定表が欲しかったので,Rのソースを眺めていたメモ.ベースはR-2.3.1

  • 2項検定,t検定やwilcoxon検定など検定のソースは,src/library/stats/R/ 以下の *.RというRスクリプト
    • t.test.R => t-検定
    • wilcox.test.R => wilcoxon 検定
  • 検定結果を表示する部分は,src/library/stats/R/htest.R
    • 例えば,t検定からは,次のように呼ばれている

rval <- list(statistic = tstat, parameter = df, p.value = pval,
conf.int=cint, estimate=estimate, null.value = mu,
alternative=alternative,
method=method, data.name=dname)
class(rval) <- "htest"

  • t検定(t.test.R)で分割表は次のようにptという関数で引かれている

pval <- pt(tstat, df)

    • ptの本体は,src/nmath/pt.c.
      • pt.c からは,理論分布のベータ関数(関数名pbeta)を呼び,計算.
      • 一部,数値が大きい場合などは,正規分布などに帰着.
    • ベータ関数pbetaは src/nmath/pbeta.c に定義.更に src/nmath/toms708.c 内の bratio を呼び出して,数値計算をしている.
      • toms708.c は変更するな!と書いて有る.goto文だらけだ・・・.