Web教材一覧統計・確率

基本統計量の例題集

参照:JavaScriptの計算プログラム

基本統計量(順列・組合せ、平均、分散、標準偏差、共分散、相関係数など)の簡単な数値例題を示します。
それとともに、私自作の関数の紹介をします。上掲「参照」も表示しながら学習してください。


順列・組合せの数

問1 順列の数 nPr
   A~Eの5人が競争したとき、誰が1位と2位となるかの場合の数を求めよ。

数え上げ 次の20個
  1位 2位  1位 2位  1位 2位  1位 2位  1位 2位
  * A  B   B * A   C * A   D * A   E * A
  * A  C   B  C   C  B   D  B   E  B
  * A  D   B  D   C  D   D  C   E  C
  * A  E   B  E   C  E   D  E   E  D

公式: nPr = n(n-1)(n-2)…(n-r+1)
      = 5 * 4 = 20

関数(順列の数 nPr の値)
  nPr = statNPR(n, r) = statNPR(5, 2) = 20

問2 問1において、Aが1位あるいは2位に入る確率を求めよ。

数え上げ
 Aが1・2位になるのは、問1の * 印 → 8通り
 8/20=0.4

論理的検討
 Aが1位の場合の数=B~Dの4人から1人が2位になる場合の数= 4P1 = 4
 Aが2位の場合の数=B~Dの4人から1人が1位になる場合の数= 4P1 = 4
 一般化すれば 2 * n-1Pr-1 

問3 組合せの数 nCr
   A~Eの5人から2人を選んだとき、その組合せの数を求めよ。

数え上げ 次の10通り
  A-B
  A-C   B-C
  A-D   B-D   C-D
  A-E   B-E   C-E   D-E

公式: nCr = n(n-1)(n-2)…(n-r+1) / r(r-1)(r-2)…1
      = (5 * 4) / (2 * 1) = 10

関数(順列の数 nPr の値)
  nCr = statNCR(n, r) = statNCR(5, 2) = 10

問4 次のような道路網があり、AからBを経由してCへ行くときの経路数を求めよ。

A→Bの経路
  右と上が合計4+3=7回のうち上が3回 → 7個から3個を取り出す組合せの数
  4+3C3 = (7 * 6 * 5) / (3 * 2 * 1) = 35
B→Cの経路
  5+4C4 = (9 * 8 * 7 * 6) / (4 * 3 * 2 * 1) = 126
A→Cの経路
  35 * 126 = 4410 通り

基本統計量

問1 1変数
   次の配列xの不偏分散と標準偏差を求めよ
   x = [ 1, 2, 3, 4, 5 ]

次の順序で計算できる
  基本量   値   計算式
    標本数     = 5   n
    合計       = 15  Σx
    平均       = 3   μ = Σx/n
    平方和     = 55  Σx2
    偏差平方和 = 10  Σ(x-μ)2
    不偏分散   = 2.5  σ2 = 偏差平方和/(n-1)
    標準偏差   = 1.58 σ = √不偏分散

関数(基本統計量(1変数))多くの基本量が得られる
    x = [ 1, 2, 3, 4, 5 ];
  rtn = statBasic(x):
    rtn["標本数"]   = 5
    rtn["最小値"]   = 1
    rtn["最小値位置"] = 0
    rtn["最大値"]   = 5
    rtn["最大値位置"] = 4
    rtn["範囲"]    = 4
    rtn["合計"]    = 15
    rtn["平均"]    = 3
    rtn["平方和"]   = 55
    rtn["偏差平方和"] = 10
    rtn["不偏分散"]  = 2.5
    rtn["標準偏差"]  = 1.58
    rtn["変動係数"]  = 0.527

問2 2変数
   次の配列xとyがあるとき、回帰式 y = a + bx の a と b、および相関係数 r を求めよ
   x = [ 1, 2, 3, 4, 5 ]
   y = [12, 20, 35, 43, 50 ]

次の順序で計算できる
  基本量    値     計算式
    標本数       = 5     n
    合計X     = 15    Σ(x)
    合計Y     = 160   Σ(y)
    平均X    = 3     μx = Σ(x)/n
    平均Y    = 32    μy = Σ(y)/n
    偏差平方和X = 10    Sxx = Σ(x-μx)2
    偏差平方和Y = 998   Syy = Σ(y-μy)2
    偏差積和   = 99    Sxy = Σ(x-μx)(y-μy)
    回帰係数X  = 9.9    Bx = Sxy/Sxx               y = a + bx のb
    回帰係数Y  = 0.099  By = Sxy/Syy
    寄与率    = 0.98   r2 = Bx・By
    相関係数   = 0.991  r = √(r2)
    Y定数項     = 2.3      Σ(y) - Σ(x)*回帰係数X/n   y = a + bx の a
 → 回帰式:y = Y定数項 + 回帰係数X * x = 2.3 + 9.9 x

関数(基本統計量(2変数))多くの基本量が得られる
    x = [1, 2, 3, 4, 5];
    y = [12, 20, 35, 43, 50];
    rtn = statBasic2(x, y);
   rtn["標本数"]    = 5
   rtn[合計X"]    = 15
   rtn[合計Y"]    = 160
   rtn[平均X"]    = 3.0
   rtn[平均Y"]    = 32.0
   rtn[平方和X"]   = 55
   rtn[平方和Y"]   = 6118
   rtn[積和"]     = 579
   rtn[偏差平方和X"] = 10
   rtn[偏差平方和Y"] = 998
   rtn[偏差積和"]   = 99
   rtn[共分散"]    = 24.75
   rtn[回帰係数X"]  = 9.900
   rtn[回帰係数Y"]  = 0.099
   rtn[寄与率"]    = 0.98
   rtn[相関係数"]   = 0.991
   rtn[勾配"]     = 9.900
   rtn[Y定数項"]   = 2.30
   rtn[X定数項"]   = -0.17

問3 多変数
   次の配列から、共分散配列と相関配列を作成せよ。
   x[0] = [ 1, 2, 3, 4, 5 ]
   x[1] = [12, 20, 35, 43, 50 ]
   x[2] = [ 4. 5, 3, 1, 2 ]

基本統計量
  系列数=3 標本数 n =5
  項目            x[0]  x[1]   x[2]
  合計 ∑x[i]          15     160    15
  平均 μ = ∑x[i]/n   3      32     3

統計行列 以下は対象行列なので、対角要素を含む右上要素を計算すればよい

 積和 ∑x[i]x[j]
          x[0]  x[1]   x[2]
      x[0]  55     579     37
      x[1] 579    6118    396
      x[2]  37     396     55

  偏差積和 = 積和[i][j] - 標本数 * 平均[i]*平均[j]
          x[0]  x[1]   x[2]
      x[0]  10      99     -8
      x[1]  99    998    -84
      x[2]  -8     -84    10

  共分散 = 偏差積和[i][j] / (標本数-1)
          x[0]  x[1]   x[2]
      x[0]  2.5   24.7    -2
      x[1] 24.7  249.5   -21
      x[2] -2    -21     2.5

  相関係数 = 共分散[i][j] / √(共分散[i][i]*共分散[j][j]), i=j のとき1
          x[0]  x[1]   x[2]
      x[0]  1     0.99   -0.8
      x[1]  0.99 1     -0.84
      x[2] -0.8  -0.84    1

関数(共分散行列・相関行列)
   x = [ [ 1, 2, 3, 4, 5 ],
         [12, 20, 35, 43, 50 ],
         [ 4. 5, 3, 1, 2 ] ];
      rtn = statCovcor(x)

  rtn["共分散行列"]
           [*][0] [*][1]  [*][2]
      [0][*]  2.5    24.7    -2
      [1][*] 24.7   249.5   -21
      [2][*] -2     -21     2.5
 rtn["相関行列"]
           [*][0] [*][1]  [*][2]
      [0][*]  1      0.99   -0.8
      [1][*]  0.99  1     -0.84
      [2][*] -0.8   -0.84    1