Chapter 19 確率分布

Rcpp は R にある主要な全ての確率分布関数を提供します。R と同じく各確率分布のそれぞれについて d p q r の文字から始まる4つの関数が定義されています。

確率分布 XXX に関する4つの関数

  • dXXX: 確率密度関数
  • pXXX: 累積分布関数
  • qXXX: 分位関数
  • rXXX: 乱数生成関数

19.1 確率分布関数の基本構造

Rcpp では、同じ名前の確率分布関数が R::Rcpp:: の2つの名前空間で定義されています。これらの違いは、Rcpp:: 名前空間で定義されている確率分布関数はベクトルを返すのに対して、R:: 名前空間の関数はスカラーを返すということです。通常は Rcpp:: 名前空間の関数を使えば良いですが、スカラー値が欲しい場合は R:: 名前空間の関数のほうが速度が速いためそちらを用いたほうが良いでしょう。

下に Rcpp:: 名前空間で定義されている確率分布関数の基本構造を示します。基本的には Rcpp:: 名前空間で定義されている確率分布関数は R にある確率分布関数と同じ機能を持っています。実際にはソースコード中に Rcpp:: 名前空間の確率分布関数の定義はそのまま書かれてはいない(マクロを使って記述されているため)のですが、ユーザーにとってはこのような形式の関数が定義されていると考えて差し支えありません。

次に R:: 名前空間で定義されている確率分布関数の基本構造を示します。これは double を受け取り double を返すという点以外は Rcpp:: 名前空間で定義されている確率分布関数と基本的には同じ機能を持っています。しかし、引数のデフォルト値は与えられていないのでユーザーが明示的に与える必要があります。

下に確率分布関数の引数の説明を示します。

引数 説明
x, q 確率変数の値(のベクトル)
p 分位数を求めたい確率値(のベクトル)
n 発生させたい乱数の個数
par 分布パラメータの値(実際には確率分布によって分布パラメータの数は異なる)
lower true : 確率変数の値が x 以下の領域の確率を算出する、false : x より大の領域の確率を算出する
log true : 確率を対数変換した値を算出する

##確率分布関数の一覧

以下では Rcpp が提供する確率分布関数の一覧を示します。ここでは確率分布の分布パラメータの名前は R の確率分布関数と一致させているので、詳しくは R のヘルプを参照してください。

19.1.7 ベータ分布

形状パラメータ shape1, shape2 を持つベータ分布の情報を与えます。これは R のベータ分布関数において非心パラメータ ncp の値に 0 を設定した場合に相当します。

19.1.9 カイ2乗分布

自由度 df のカイ2乗分布の情報を与えます。これは R のカイ2乗分布関数において非心パラメータ ncp の値に 0 を設定した場合に相当します。

19.1.11 t分布

自由度 df の t 分布の情報を与えます。これは R の t 分布関数において非心パラメータ ncp の値に 0 を設定した場合に相当します。

19.1.13 F分布

自由度 df1, df2 のF分布の情報を与えます。これは R のF分布関数において非心パラメータ ncp の値に 0 を設定した場合に相当します。

19.2 離散分布

19.2.6 超幾何分布

母集団に含まれる成功数 m、母集団に含まれる失敗数 n、母集団からサンプリングする標本の数 k の超幾何分布の情報を与えます。

19.2.7 ウィルコクソン順位和検定統計量の分布

標本数がそれぞれ m、n である2つの標本に対してウィルコクソン順位和検定(マン・ホイットニーのU検定)を行ったときの検定統計量の分布の情報を与えます。

19.2.8 ウィルコクソン符号順位検定統計量の分布

n 個の標本への各2回の観察に対してウィルコクソン符号順位検定を行ったときの検定統計量の分布の情報を与えます。