Next: , Previous:   [Contents][Index]

45 descriptive


45.1 Introduction to descriptive

パッケージdescriptiveは記述統計計算とグラフ作成を行うための関数一式を含みます。 ソースコードと一緒にMaximaツリーに3つのデータセットがあります: pidigits.data, wind.data, biomed.data

パッケージdescriptiveの関数の参考文献として、 どんな統計マニュアルでも使うことができます。

コメント、バグ、提案は、 ’mario AT edu DOT xunta DOT es’にコンタクトしてください。

以下は、 descriptiveの中の記述関数が 引数やリスト、行列の性質に依存して如何に機能するかを示す 簡単な例です。

(%i1) load ("descriptive")$
(%i2) /* univariate sample */   mean ([a, b, c]);
                            c + b + a
(%o2)                       ---------
                                3
(%i3) matrix ([a, b], [c, d], [e, f]);
                            [ a  b ]
                            [      ]
(%o3)                       [ c  d ]
                            [      ]
                            [ e  f ]
(%i4) /* multivariate sample */ mean (%);
                      e + c + a  f + d + b
(%o4)                [---------, ---------]
                          3          3

多変数標本では、平均は列それぞれに関して計算されることに注意してください。

異なるサイズかもしれない複数の標本の場合、 Maxima関数mapが標本それぞれに対して望みの結果を得るのに使うことができます。

(%i1) load ("descriptive")$
(%i2) map (mean, [[a, b, c], [d, e]]);
                        c + b + a  e + d
(%o2)                  [---------, -----]
                            3        2

この場合、サイズ3と2の2つの標本がリストに格納されました。

1変数標本は以下のようにリストに格納されなければいけません。

(%i1) s1 : [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
(%o1)           [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

多変数標本は以下のように行列に格納されなければいけません。

(%i1) s2 : matrix ([13.17, 9.29], [14.71, 16.88], [18.50, 16.88],
             [10.58, 6.63], [13.33, 13.25], [13.21,  8.12]);
                        [ 13.17  9.29  ]
                        [              ]
                        [ 14.71  16.88 ]
                        [              ]
                        [ 18.5   16.88 ]
(%o1)                   [              ]
                        [ 10.58  6.63  ]
                        [              ]
                        [ 13.33  13.25 ]
                        [              ]
                        [ 13.21  8.12  ]

この場合、 列の数は確率変数次元に等しく、行の数はサプルのサイズです。

データは手で入力することができますが、 大きな標本は普通プレインテキストファイルの中に格納されています。 例えば、ファイルpidigits.dataは 数%piの最初の100桁を含みます:

      3
      1
      4
      1
      5
      9
      2
      6
      5
      3 ...

Maximaでこれらの桁をロードするためには、

(%i1) s1 : read_list (file_search ("pidigits.data"))$
(%i2) length (s1);
(%o2)                          100

他方、ファイルwind.dataは アイルランド共和国の5つの気象台の毎日の平均風速を含みます。 (これは12の気象台で取得されたデータセットの一部です。 元のファイルはStatLib Data Repositoryから無料でダウンロードでき、 その分析はHaslett, J., Raftery, A. E. (1989) Space-time Modelling with Long-memory Dependence: Assessing Ireland’s Wind Power Resource, with Discussion. Applied Statistics 38, 1-50 で議論されてます。) 以下ではデータをロードします:

(%i1) s2 : read_matrix (file_search ("wind.data"))$
(%i2) length (s2);
(%o2)                          100
(%i3) s2 [%]; /* last record */
(%o3)            [3.58, 6.0, 4.58, 7.62, 11.25]

いくつかの標本は数値でないデータを含みます。 例えば、ファイルbiomed.data (StatLib Data Repositoryからダウンロードされた別のもっと大きなものの一部)は、 異なる年齢の、2つのグループABの患者から測定された4つの血圧を含みます。

(%i1) s3 : read_matrix (file_search ("biomed.data"))$
(%i2) length (s3);
(%o2)                          100
(%i3) s3 [1]; /* first record */
(%o3)            [A, 30, 167.0, 89.0, 25.6, 364]

最初の個人はグループAに属し、30歳で、血圧は167.0, 89.0, 25.6 and 364でした。

カテゴリデータを扱う時には気をつけなければいけません。 次の例では、シンボルaが以前のある時点で値に割り当てられ、 その後、カテゴリ値aを持つ標本が取られます。

(%i1) a : 1$
(%i2) matrix ([a, 3], [b, 5]);
                            [ 1  3 ]
(%o2)                       [      ]
                            [ b  5 ]

45.2 Functions and Variables for data manipulation

関数: continuous_freq (list)
関数: continuous_freq (list, m)

continuous_freqの引数は数のリストでなければいけません。 範囲を区間に分割し、それらの中に値がいくつあるか数えます。 二番目の引数はオプションで、 欲しいクラス数(デフォルトが10)か、 クラス境界と欲しいクラスを含むリストか 境界だけ含むリストのいずれかです。 引数 listは(2個か3個の)実数のリストでなければいけません。 もしサンプル値がすべて等しいなら、この関数は振幅2の1クラスだけ返します。

例:

オプション引数は欲しいクラス数を示します。 出力の最初のリストは区間境界を含み、二番目は対応する個数を含みます: 区間[0, 1.8]すなわち0か1である桁が16あり、 (1.8, 3.6]すなわち2か3である桁が24あり、など。

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) continuous_freq (s1, 5);
(%o3) [[0, 1.8, 3.6, 5.4, 7.2, 9.0], [16, 24, 18, 17, 25]]

オプション引数は、境界-2と12を持つクラスを7個欲しいことを示します。

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) continuous_freq (s1, [-2,12,7]);
(%o3) [[- 2, 0, 2, 4, 6, 8, 10, 12], [8, 20, 22, 17, 20, 13, 0]]

オプション引数は、境界-2と12を持つクラスをデフォルト個欲しいことを示します:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) continuous_freq (s1, [-2,12]);
                3  4  11  18     32  39  46  53
(%o3)  [[- 2, - -, -, --, --, 5, --, --, --, --, 12], 
                5  5  5   5      5   5   5   5
               [0, 8, 20, 12, 18, 9, 8, 25, 0, 0]]
関数: discrete_freq (list)

数値的、記述的両方の離散標本の中の絶対頻度を数えます。 唯一の引数はリストです。

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) discrete_freq (s1);
(%o3) [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 
                             [8, 8, 12, 12, 10, 8, 9, 8, 12, 13]]

最初のリストは標本値を与え、二番目はそれらの絶対頻度を与えます。 コマンド? col? transposeは最後の入力を理解するのを助けるはずです。

関数: subsample (data_matrix, predicate_function)
関数: subsample (data_matrix, predicate_function, col_num1, col_num2, ...)

これはMaxima submatrix関数の変形の一種です。 最初の引数はデータ行列であり、二番目は述語関数であり、 オプションの付加引数は返す列の番号です。 その振る舞いは例を使ってよりよく理解されます。

以下は最初の測候所での風速が18より大きかった多変量レコードです。 ラムダ式の中でi番目の成分はv[i]として参照されることを参考にしてください。

(%i1) load ("descriptive")$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) subsample (s2, lambda([v], v[1] > 18));
              [ 19.38  15.37  15.12  23.09  25.25 ]
              [                                   ]
              [ 18.29  18.66  19.08  26.08  27.63 ]
(%o3)         [                                   ]
              [ 20.25  21.46  19.95  27.71  23.38 ]
              [                                   ]
              [ 18.79  18.96  14.46  26.38  21.84 ]

以下の例では、測候所番号1で16以上で、かつ、測候所番号4で25ノットより小さな風速 のレコードの一番目、二番目、五番目の成分だけをリクエストします。 標本は、測候所1, 2, 5からのデータだけを含みます。 この場合、述語関数は通常のMaxima関数として定義されます。

(%i1) load ("descriptive")$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) g(x):= x[1] >= 16 and x[4] < 25$
(%i4) subsample (s2, g, 1, 2, 5);
                     [ 19.38  15.37  25.25 ]
                     [                     ]
                     [ 17.33  14.67  19.58 ]
(%o4)                [                     ]
                     [ 16.92  13.21  21.21 ]
                     [                     ]
                     [ 17.25  18.46  23.87 ]

以下はbiomed.dataのカテゴリ変数の例です。 38歳より年上のグループBの患者に対応するレコードが欲しいです。

(%i1) load ("descriptive")$
(%i2) s3 : read_matrix (file_search ("biomed.data"))$
(%i3) h(u):= u[1] = B and u[2] > 38 $
(%i4) subsample (s3, h);
                [ B  39  28.0  102.3  17.1  146 ]
                [                               ]
                [ B  39  21.0  92.4   10.3  197 ]
                [                               ]
                [ B  39  23.0  111.5  10.0  133 ]
                [                               ]
                [ B  39  26.0  92.6   12.3  196 ]
(%o4)           [                               ]
                [ B  39  25.0  98.7   10.0  174 ]
                [                               ]
                [ B  39  21.0  93.2   5.9   181 ]
                [                               ]
                [ B  39  18.0  95.0   11.3  66  ]
                [                               ]
                [ B  39  39.0  88.5   7.6   168 ]

統計解析には血圧だけを使うかもしれません。

(%i1) load ("descriptive")$
(%i2) s3 : read_matrix (file_search ("biomed.data"))$
(%i3) subsample (s3, lambda([v], v[1] = B and v[2] > 38),
                 3, 4, 5, 6);
                   [ 28.0  102.3  17.1  146 ]
                   [                        ]
                   [ 21.0  92.4   10.3  197 ]
                   [                        ]
                   [ 23.0  111.5  10.0  133 ]
                   [                        ]
                   [ 26.0  92.6   12.3  196 ]
(%o3)              [                        ]
                   [ 25.0  98.7   10.0  174 ]
                   [                        ]
                   [ 21.0  93.2   5.9   181 ]
                   [                        ]
                   [ 18.0  95.0   11.3  66  ]
                   [                        ]
                   [ 39.0  88.5   7.6   168 ]

いかはs3の多変量平均です。

(%i1) load ("descriptive")$
(%i2) s3 : read_matrix (file_search ("biomed.data"))$
(%i3) mean (s3);
       65 B + 35 A  317          6 NA + 8144.999999999999
(%o3) [-----------, ---, 87.178, ------------------------, 
           100      10                     100
                                                    3 NA + 19587
                                            18.123, ------------]
                                                        100

ここで、一番目の成分は、ABはカテゴリなので意味がなく、 二番目の成分は個々人の平均の歳の有理表現であり、 四番目と最後の値はある奇妙な振る舞いを示しています。 これは、 This is because symbol シンボルNAnon availableデータを示すようにここで使われているからで、 二つの平均は無意味です。 情報のある種の喪失を意味しますが、 可能な解はNAシンボルを持つ行を行列から取り除くことです。

(%i1) load ("descriptive")$
(%i2) s3 : read_matrix (file_search ("biomed.data"))$
(%i3) g(v):= v[4] # NA and v[6] # NA $
(%i4) mean (subsample (s3, g, 3, 4, 5, 6));
(%o4) [79.4923076923077, 86.2032967032967, 16.93186813186813, 
                                                            2514
                                                            ----]
                                                             13

45.3 Functions and Variables for descriptive statistics

関数: mean (list)
関数: mean (matrix)

これは標本平均です。以下のように定義されます。

                       n
                     ====
             _   1   \
             x = -    >    x
                 n   /      i
                     ====
                     i = 1

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) mean (s1);
                               471
(%o3)                          ---
                               100
(%i4) %, numer;
(%o4)                         4.71
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) mean (s2);
(%o6)     [9.9485, 10.1607, 10.8685, 15.7166, 14.8441]
関数: var (list)
関数: var (matrix)

これは標本分散です。以下のように定義されます。

                     n
                   ====
           2   1   \          _ 2
          s  = -    >    (x - x)
               n   /       i
                   ====
                   i = 1

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) var (s1), numer;
(%o3)                   8.425899999999999

関数var1も参照してください。

関数: var1 (list)
関数: var1 (matrix)

これは標本分散です。以下のように定義されます。

                     n
                   ====
               1   \          _ 2
              ---   >    (x - x)
              n-1  /       i
                   ====
                   i = 1

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) var1 (s1), numer;
(%o3)                    8.5110101010101
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) var1 (s2);
(%o5) [17.39586540404041, 15.13912778787879, 15.63204924242424, 
                            32.50152569696971, 24.66977392929294]

関数varも参照してください。

関数: std (list)
関数: std (matrix)

これは分母nの分散である関数varの平方根です。

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) std (s1), numer;
(%o3)                   2.902740084816414
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) std (s2);
(%o5) [4.149928523480858, 3.871399812729241, 3.933920277534866, 
                            5.672434260526957, 4.941970881136392]

関数varstd1も参照してください。

関数: std1 (list)
関数: std1 (matrix)

これは分母n-1の分散である関数var1の平方根です。

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) std1 (s1), numer;
(%o3)                   2.917363553109228
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) std1 (s2);
(%o5) [4.170835096721089, 3.89090320978032, 3.953738641137555, 
                            5.701010936401517, 4.966867617451963]

See also functions var1 and std.

関数: noncentral_moment (list, k)
関数: noncentral_moment (matrix, k)

次数kの非中心モーメントです。以下のように定義されます。

                       n
                     ====
                 1   \      k
                 -    >    x
                 n   /      i
                     ====
                     i = 1

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) noncentral_moment (s1, 1), numer; /* the mean */
(%o3)                         4.71
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) noncentral_moment (s2, 5);
(%o6) [319793.8724761505, 320532.1923892463,
      391249.5621381556, 2502278.205988911, 1691881.797742255]

関数central_momentも参照してください。

関数: central_moment (list, k)
関数: central_moment (matrix, k)

次数kの中心モーメントです。以下のように定義されます。

                    n
                  ====
              1   \          _ k
              -    >    (x - x)
              n   /       i
                  ====
                  i = 1

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) central_moment (s1, 2), numer; /* the variance */
(%o3)                   8.425899999999999
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) central_moment (s2, 3);
(%o6) [11.29584771375004, 16.97988248298583, 5.626661952750102,
                             37.5986572057918, 25.85981904394192]

関数noncentral_momentmeanも参照してください。

関数: cv (list)
関数: cv (matrix)

変動係数は標本標準偏差(std)を平均meanで割った商です。

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) cv (s1), numer;
(%o3)                   .6193977819764815
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) cv (s2);
(%o5) [.4192426091090204, .3829365309260502, 0.363779605385983, 
                            .3627381836021478, .3346021393989506]

関数stdmeanも参照してください。

関数: smin (list)
関数: smin (matrix)

これは標本listの最小値です。 引数が行列の時、 sminは 統計変数に関連付けられた列の最小値を含むリストを返します。

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) smin (s1);
(%o3)                           0
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) smin (s2);
(%o5)             [0.58, 0.5, 2.67, 5.25, 5.17]

See also function smax.

関数: smax (list)
関数: smax (matrix)

これは標本listの最大値です。 引数が行列の時、 smaxは 統計変数に関連付けられた列の最大値を含むリストを返します。

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) smax (s1);
(%o3)                           9
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) smax (s2);
(%o5)          [20.25, 21.46, 20.04, 29.63, 27.63]

関数sminも参照してください。

関数: range (list)
関数: range (matrix)

範囲は極値の差です。

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) range (s1);
(%o3)                           9
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) range (s2);
(%o5)          [19.67, 20.96, 17.37, 24.38, 22.46]
関数: quantile (list, p)
関数: quantile (matrix, p)

これは標本listp分位数です。p[0, 1]の範囲の数です。 標本分位数にはいくつかの定義がありますが (Hyndman, R. J., Fan, Y. (1996) Sample quantiles in statistical packages. American Statistician, 50, 361-365)、 パッケージdescriptiveでは線形内挿に基づいたものが実装されています。

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) /* 1st and 3rd quartiles */
         [quantile (s1, 1/4), quantile (s1, 3/4)], numer;
(%o3)                      [2.0, 7.25]
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) quantile (s2, 1/4);
(%o5)    [7.2575, 7.477500000000001, 7.82, 11.28, 11.48]
関数: median (list)
関数: median (matrix)

一旦標本が順に並べられると、 もし標本サイズが奇数ならメジアンは中央値であり、 そうでなければ2つの中央値の平均です。

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) median (s1);
                                9
(%o3)                           -
                                2
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) median (s2);
(%o5)         [10.06, 9.855, 10.73, 15.48, 14.105]

メジアンは1/2分位数です。

関数quantileも参照してください。

関数: qrange (list)
関数: qrange (matrix)

四分位範囲は 三番目と一番目の分位数の差 quantile(list,3/4) - quantile(list,1/4) です。

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) qrange (s1);
                               21
(%o3)                          --
                               4
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) qrange (s2);
(%o5) [5.385, 5.572499999999998, 6.022500000000001, 
                            8.729999999999999, 6.649999999999999]

関数quantileも参照してください。

関数: mean_deviation (list)
関数: mean_deviation (matrix)

平均偏差です。以下のように定義されます。

                     n
                   ====
               1   \          _
               -    >    |x - x|
               n   /       i
                   ====
                   i = 1

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) mean_deviation (s1);
                               51
(%o3)                          --
                               20
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) mean_deviation (s2);
(%o5) [3.287959999999999, 3.075342, 3.23907, 4.715664000000001, 
                                               4.028546000000002]

関数meanも参照してください。

関数: median_deviation (list)
関数: median_deviation (matrix)

メジアン偏差です。以下のように定義されます。

                 n
               ====
           1   \
           -    >    |x - med|
           n   /       i
               ====
               i = 1

ここでmedlistのメジアンです。

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) median_deviation (s1);
                                5
(%o3)                           -
                                2
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) median_deviation (s2);
(%o5)           [2.75, 2.755, 3.08, 4.315, 3.31]

関数meanも参照してください。

関数: harmonic_mean (list)
関数: harmonic_mean (matrix)

調和平均です。以下のように定義されます。

                  n
               --------
                n
               ====
               \     1
                >    --
               /     x
               ====   i
               i = 1

例:

(%i1) load ("descriptive")$
(%i2) y : [5, 7, 2, 5, 9, 5, 6, 4, 9, 2, 4, 2, 5]$
(%i3) harmonic_mean (y), numer;
(%o3)                   3.901858027632205
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) harmonic_mean (s2);
(%o5) [6.948015590052786, 7.391967752360356, 9.055658197151745, 
                            13.44199028193692, 13.01439145898509]

関数meangeometric_meanも参照してください。

関数: geometric_mean (list)
関数: geometric_mean (matrix)

幾何平均です。以下のように定義されます。

                 /  n      \ 1/n
                 | /===\   |
                 |  ! !    |
                 |  ! !  x |
                 |  ! !   i|
                 | i = 1   |
                 \         /

例:

(%i1) load ("descriptive")$
(%i2) y : [5, 7, 2, 5, 9, 5, 6, 4, 9, 2, 4, 2, 5]$
(%i3) geometric_mean (y), numer;
(%o3)                   4.454845412337012
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) geometric_mean (s2);
(%o5) [8.82476274347979, 9.22652604739361, 10.0442675714889, 
                            14.61274126349021, 13.96184163444275]

関数meanharmonic_meanも参照してください。

関数: kurtosis (list)
関数: kurtosis (matrix)

尖度係数です。以下のように定義されます。

                    n
                  ====
            1     \          _ 4
           ----    >    (x - x)  - 3
              4   /       i
           n s    ====
                  i = 1

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) kurtosis (s1), numer;
(%o3)                  - 1.273247946514421
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) kurtosis (s2);
(%o5) [- .2715445622195385, 0.119998784429451, 
     - .4275233490482861, - .6405361979019522, - .4952382132352935]

関数mean, var, skewnessも参照してください。

関数: skewness (list)
関数: skewness (matrix)

歪度係数です。以下のように定義されます。

                    n
                  ====
            1     \          _ 3
           ----    >    (x - x)
              3   /       i
           n s    ====
                  i = 1

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) skewness (s1), numer;
(%o3)                  .009196180476450424
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) skewness (s2);
(%o5) [.1580509020000978, .2926379232061854, .09242174416107717, 
                            .2059984348148687, .2142520248890831]

関数mean, var, kurtosisも参照してください。

関数: pearson_skewness (list)
関数: pearson_skewness (matrix)

Pearsonの歪度係数です。以下のように定義されます。

                _
             3 (x - med)
             -----------
                  s

ここで medlistのメジアンです。

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) pearson_skewness (s1), numer;
(%o3)                   .2159484029093895
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) pearson_skewness (s2);
(%o5) [- .08019976629211892, .2357036272952649, 
         .1050904062491204, .1245042340592368, .4464181795804519]

関数mean, var, medianも参照してください。

関数: quartile_skewness (list)
関数: quartile_skewness (matrix)

分位歪度係数です。以下のように定義されます。

               c    - 2 c    + c
                3/4      1/2    1/4
               --------------------
                   c    - c
                    3/4    1/4

ここでc_pは標本listp分位数です。

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) quartile_skewness (s1), numer;
(%o3)                  .04761904761904762
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) quartile_skewness (s2);
(%o5) [- 0.0408542246982353, .1467025572005382, 
       0.0336239103362392, .03780068728522298, .2105263157894735]

関数quantileも参照してください。

関数: cov (matrix)

多変量標本の共分散行列です。以下のように定義されます。

              n
             ====
          1  \           _        _
      S = -   >    (X  - X) (X  - X)'
          n  /       j        j
             ====
             j = 1

ここでX_jは標本行列のj番目の行です。

例:

(%i1) load ("descriptive")$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) fpprintprec : 7$  /* change precision for pretty output */
(%i4) cov (s2);
      [ 17.22191  13.61811  14.37217  19.39624  15.42162 ]
      [                                                  ]
      [ 13.61811  14.98774  13.30448  15.15834  14.9711  ]
      [                                                  ]
(%o4) [ 14.37217  13.30448  15.47573  17.32544  16.18171 ]
      [                                                  ]
      [ 19.39624  15.15834  17.32544  32.17651  20.44685 ]
      [                                                  ]
      [ 15.42162  14.9711   16.18171  20.44685  24.42308 ]

関数cov1も参照してください。

関数: cov1 (matrix)

多変量標本の共分散行列です。以下のように定義されます。

              n
             ====
         1   \           _        _
   S  = ---   >    (X  - X) (X  - X)'
    1   n-1  /       j        j
             ====
             j = 1

ここでX_jは標本行列のj番目の行です。

例:

(%i1) load ("descriptive")$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) fpprintprec : 7$ /* change precision for pretty output */
(%i4) cov1 (s2);
      [ 17.39587  13.75567  14.51734  19.59216  15.5774  ]
      [                                                  ]
      [ 13.75567  15.13913  13.43887  15.31145  15.12232 ]
      [                                                  ]
(%o4) [ 14.51734  13.43887  15.63205  17.50044  16.34516 ]
      [                                                  ]
      [ 19.59216  15.31145  17.50044  32.50153  20.65338 ]
      [                                                  ]
      [ 15.5774   15.12232  16.34516  20.65338  24.66977 ]

関数covも参照してください。

関数: global_variances (matrix)
関数: global_variances (matrix, logical_value)

関数global_variancesは大域分散尺度のリストを返します:

  • total variance: trace(S_1),
  • mean variance: trace(S_1)/p,
  • generalized variance: determinant(S_1),
  • generalized standard deviation: sqrt(determinant(S_1)),
  • efective variance determinant(S_1)^(1/p), (以下の文献で定義されています: Peña, D. (2002) Análisis de datos multivariantes; McGraw-Hill, Madrid.)
  • efective standard deviation: determinant(S_1)^(1/(2*p)).

ここでpは多変量確率変数の次元であり、 S_1cov1が返す共分散行列です。

例:

(%i1) load ("descriptive")$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) global_variances (s2);
(%o3) [105.338342060606, 21.06766841212119, 12874.34690469686, 
         113.4651792608501, 6.636590811800795, 2.576158149609762]

関数global_variancesはオプションの論理引数を取ります: global_variances(x,true)は、 Maximaにxがデータ行列であることを伝え、global_variances(x)と同様に作られます。 一方、global_variances(x,false)xがデータ行列ではなく、共分散行列であることを意味し、再計算は避けられます。

(%i1) load ("descriptive")$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) s : cov1 (s2)$
(%i4) global_variances (s, false);
(%o4) [105.338342060606, 21.06766841212119, 12874.34690469686, 
         113.4651792608501, 6.636590811800795, 2.576158149609762]

covcov1も参照してください。

関数: cor (matrix)
関数: cor (matrix, logical_value)

多変量標本の相関行列です。

例:

(%i1) load ("descriptive")$
(%i2) fpprintprec : 7 $
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) cor (s2);
      [   1.0     .8476339  .8803515  .8239624  .7519506 ]
      [                                                  ]
      [ .8476339    1.0     .8735834  .6902622  0.782502 ]
      [                                                  ]
(%o4) [ .8803515  .8735834    1.0     .7764065  .8323358 ]
      [                                                  ]
      [ .8239624  .6902622  .7764065    1.0     .7293848 ]
      [                                                  ]
      [ .7519506  0.782502  .8323358  .7293848    1.0    ]

関数corはオプションの論理引数を取ります: cor(x,true)は、 Maximaにxがデータ行列であることを伝え、cor(x)と同様に作られます。 一方、cor(x,false)xがデータ行列ではなく、共分散行列であることを意味し、再計算は避けられます。

(%i1) load ("descriptive")$
(%i2) fpprintprec : 7 $
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) s : cov1 (s2)$
(%i5) cor (s, false); /* this is faster */
      [   1.0     .8476339  .8803515  .8239624  .7519506 ]
      [                                                  ]
      [ .8476339    1.0     .8735834  .6902622  0.782502 ]
      [                                                  ]
(%o5) [ .8803515  .8735834    1.0     .7764065  .8323358 ]
      [                                                  ]
      [ .8239624  .6902622  .7764065    1.0     .7293848 ]
      [                                                  ]
      [ .7519506  0.782502  .8323358  .7293848    1.0    ]

covcov1も参照してください。

関数: list_correlations (matrix)
関数: list_correlations (matrix, logical_value)

関数list_correlationsは相関尺度のリストを返します:

  • precision matrix: 共分散行列S_1の逆行列,
           -1     ij
          S   = (s  )             
           1         i,j = 1,2,...,p
    
  • multiple correlation vector: (R_1^2, R_2^2, ..., R_p^2),
           2          1
          R  = 1 - -------
           i        ii
                   s   s
                        ii
    

    変数の残りが独立変数として使われるとき これらはX_i上の線形多変量回帰モデルの適合度の指標です。

  • partial correlation matrix: (i, j)成分が以下の行列
                             ij
                            s
          r        = - ------------
           ij.rest     / ii  jj\ 1/2
                       |s   s  |
                       \       /
    

例:

(%i1) load ("descriptive")$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) z : list_correlations (s2)$
(%i4) fpprintprec : 5$ /* for pretty output */
(%i5) z[1];  /* precision matrix */
      [  .38486   - .13856   - .15626   - .10239    .031179  ]
      [                                                      ]
      [ - .13856   .34107    - .15233    .038447   - .052842 ]
      [                                                      ]
(%o5) [ - .15626  - .15233    .47296    - .024816  - .10054  ]
      [                                                      ]
      [ - .10239   .038447   - .024816   .10937    - .034033 ]
      [                                                      ]
      [ .031179   - .052842  - .10054   - .034033   .14834   ]
(%i6) z[2];  /* multiple correlation vector */
(%o6)      [.85063, .80634, .86474, .71867, .72675]
(%i7) z[3];  /* partial correlation matrix */
      [  - 1.0     .38244   .36627   .49908   - .13049 ]
      [                                                ]
      [  .38244    - 1.0    .37927  - .19907   .23492  ]
      [                                                ]
(%o7) [  .36627    .37927   - 1.0    .10911    .37956  ]
      [                                                ]
      [  .49908   - .19907  .10911   - 1.0     .26719  ]
      [                                                ]
      [ - .13049   .23492   .37956   .26719    - 1.0   ]

関数list_correlationsもオプションの論理引数を取ります: list_correlations(x,true)は、 Maximaにxがデータ行列であることを伝え、 list_correlations(x)と同様に作られます。 一方、list_correlations(x,false)xがデータ行列ではなく、共分散行列であることを意味し、再計算は避けられます。

covcov1も参照してください。


45.4 Functions and Variables for statistical graphs

関数: barsplot (data1, data2, …, option_1, option_2, …)
関数: barsplot_description (…)

1変量、多変量どちらの標本でも離散統計変数の棒グラフをプロットします

dataは1標本を意味する結果のリストかもしれませんし、 それぞれサイズmn個の標本を意味するmn列の行列かもしれません。

利用可能なオプションは以下のものです:

  • drawパッケージで定義されたもの。
  • box_width (デフォルト, 3/4): 長方形の相対幅。 値は範囲[0,1]内でなければいけません。
  • grouping (デフォルト, clustered): 複数の標本をいかに表示するか示します。 有効な値: clusteredstacked
  • groups_gap (デフォルト, 1): 棒の2つの隣り合うグループの隙間を表す正の整数。
  • bars_colors (デフォルト, []): 複数の標本のための色のリスト。 指定された色よりもたくさん標本がある時は、 追加で必要な色はランダムに選ばれます。 更に詳しくはcolorを参照してください。
  • frequency (デフォルト, absolute): 縦座標のスケールを示します。 可能な値: absolute, relative, percent
  • ordering (デフォルト, orderlessp): 可能な値はorderlesspordergreatpです。 統計的結果がどちら向きにx軸に並んでいるかを示します。
  • sample_keys (デフォルト, []): 凡例に使われる文字列のリスト。 リストの長さが0か標本の長さ以外なら、 エラーメッセージを返します。
  • start_at (デフォルト, 0): x軸上のどこからプロットされるか示します。
  • barsplotが内部で割り当てる xticsを除くすべてのグローバル drawオプション もしこのオプションに自分の値を設定し、複雑なシーンを構築したいなら、 barsplot_descriptionを使用してください。 以下の例を参照してください。
  • 以下のローカル drawオプション: key, color, fill_color, fill_density, line_widthbarsも参照してください。

関数barsplot_descriptionは 他のグラフィックオブジェクトと一緒に複雑なシーンを生成するために グラフィックオブジェクトを生成します。 wxMaximaとiMaximaインターフェイスで埋め込みヒストグラムを生成するための 関数wxbarsplotもあります。

例:

行列形式での1変量標本。絶対頻度。

(%i1) load ("descriptive")$
(%i2) m : read_matrix (file_search ("biomed.data"))$
(%i3) barsplot(
        col(m,2),
        title        = "Ages",
        xlabel       = "years",
        box_width    = 1/2,
        fill_density = 3/4)$

異なるサイズの2つの標本。 相対頻度とユーザー宣言の色を使って。

(%i1) load ("descriptive")$
(%i2) l1:makelist(random(10),k,1,50)$
(%i3) l2:makelist(random(10),k,1,100)$
(%i4) barsplot(
        l1,l2,
        box_width    = 1,
        fill_density = 1,
        bars_colors  = [black, grey],
        frequencies = relative,
        sample_keys = ["A", "B"])$

サイズが等しい4つの非数標本。

(%i1) load ("descriptive")$
(%i2) barsplot(
        makelist([Yes, No, Maybe][random(3)+1],k,1,50),
        makelist([Yes, No, Maybe][random(3)+1],k,1,50),
        makelist([Yes, No, Maybe][random(3)+1],k,1,50),
        makelist([Yes, No, Maybe][random(3)+1],k,1,50),
        title  = "Asking for something to four groups",
        ylabel = "# of individuals",
        groups_gap   = 3,
        fill_density = 0.5,
        ordering     = ordergreatp)$

スタックバー。

(%i1) load ("descriptive")$
(%i2) barsplot(
        makelist([Yes, No, Maybe][random(3)+1],k,1,50),
        makelist([Yes, No, Maybe][random(3)+1],k,1,50),
        makelist([Yes, No, Maybe][random(3)+1],k,1,50),
        makelist([Yes, No, Maybe][random(3)+1],k,1,50),
        title  = "Asking for something to four groups",
        ylabel = "# of individuals",
        grouping     = stacked,
        fill_density = 0.5,
        ordering     = ordergreatp)$

複数プロット文脈でのbarsplot

(%i1) load ("descriptive")$
(%i2) l1:makelist(random(10),k,1,50)$
(%i3) l2:makelist(random(10),k,1,100)$
(%i4) bp1 : 
        barsplot_description(
         l1,
         box_width = 1,
         fill_density = 0.5,
         bars_colors = [blue],
         frequency = relative)$
(%i5) bp2 : 
        barsplot_description(
         l2,
         box_width = 1,
         fill_density = 0.5,
         bars_colors = [red],
         frequency = relative)$
(%i6) draw(gr2d(bp1), gr2d(bp2))$

棒グラフ関連オプションについては、パッケージdrawbarsを参照してください。 関数histogrampiechartも参照してください。

関数: boxplot (data)
関数: boxplot (data, option_1, option_2, …)
関数: boxplot_description ( …)

この関数は箱ひげ図をプロットします。 引数dataはリストだったり行列だったりします。 箱ひげ図は主に異なる標本の比較に使われるので、リストはあまり興味深くありません。 行列の場合には多変量統計変数の複数成分おw比較することが可能です。 しかし、できる限り異なる標本サイズの標本のリストも許すようにしています。 実際、これは、パッケージdescriptiveの中で この種のデータ構造を許容する唯一の関数です

利用可能なオプションは以下のものです:

  • box_width (デフォルト, 3/4): 箱の相対幅。 この値は範囲[0,1]内でなければいけません。
  • box_orientation (デフォルト, vertical): 可能な値: verticalhorizontal
  • boxplotが内部で割り当てる points_joined, point_size, point_type, xtics, ytics, xrange, yrangeを除く すべての drawオプション。 もしこのオプションに自分の値を設定し、複雑なシーンを構築したいなら、 boxplot_descriptionを使用してください。
  • 以下のローカル drawオプション: key, color, line_width

関数boxplot_descriptionは 他のグラフィックオブジェクトと一緒に複雑なシーンを生成するために グラフィックオブジェクトを生成します。 wxMaximaとiMaximaインターフェイスで埋め込みヒストグラムを生成するための 関数wxbarsplotもあります。

例:

多変量標本の箱ひげ図。

(%i1) load ("descriptive")$
(%i2) s2 : read_matrix(file_search("wind.data"))$
(%i3) boxplot(s2,
        box_width  = 0.2,
        title      = "Windspeed in knots",
        xlabel     = "Stations",
        color      = red,
        line_width = 2)$

異なるサイズの3つの標本の箱ひげ図。

(%i1) load ("descriptive")$
(%i2) A :
       [[6, 4, 6, 2, 4, 8, 6, 4, 6, 4, 3, 2],
        [8, 10, 7, 9, 12, 8, 10],
        [16, 13, 17, 12, 11, 18, 13, 18, 14, 12]]$
(%i3) boxplot (A, box_orientation = horizontal)$
関数: histogram (list)
関数: histogram (list, option_1, option_2, …)
関数: histogram (one_column_matrix)
関数: histogram (one_column_matrix, option_1, option_2, …)
関数: histogram (one_row_matrix)
関数: histogram (one_row_matrix, option_1, option_2, …)
関数: histogram_description (…)

この関数は一連の標本からヒストグラムをプロットします。 標本データは数のリストか一次元行列に保存しなければいけません。

利用可能なオプションは以下のものです:

  • nclasses (デフォルト, 10): ヒストグラムのクラス数、もしくは クラスの境界と数か境界だけを含むリスト。
  • frequency (デフォルト, absolute): 縦座標のスケールを示します。 可能な値: absolute, relative, percent
  • htics (デフォルト, auto): ヒストグラムチックのフォーマット。 可能な値: auto, endpoints, intervals, かラベルのリスト。
  • histogramが内部で割り当てるxrange, yrange, xticsを除く すべてのグローバル drawオプション。 もしこれらのオプションに自分の値を設定したいなら、 histogram_descriptionを利用してください。 以下の例を参照してください。
  • 以下のローカル drawオプション: key, color, fill_color, fill_densityline_width. barsも参照してください。

関数 histogram_descriptionは他のグラフィックオブジェクトと一緒に 複雑なシーンを生成するのに適したグラフィックオブジェクトを生成します。 wxMaximaと iMaximaインターフェイスで埋め込みヒストグラムを生成する 関数wxhistogramもあります。

例:

8クラスを持つ簡単なヒストグラム。

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) histogram (
           s1,
           nclasses     = 8,
           title        = "pi digits",
           xlabel       = "digits",
           ylabel       = "Absolute frequency",
           fill_color   = grey,
           fill_density = 0.6)$

ヒストグラムの境界を-2と12に、クラス数を3に設定します。 また予め定義されたチックを導入します:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) histogram (
           s1,
           nclasses     = [-2,12,3],
           htics        = ["A", "B", "C"],
           terminal     = png,
           fill_color   = "#23afa0",
           fill_density = 0.6)$

xrangeを設定しシーンの中に明示的な曲線を足すのに histogram_descriptionを利用します:

(%i1) load ("descriptive")$
(%i2) ( load("distrib"),
        m: 14, s: 2,
        s2: random_normal(m, s, 1000) ) $
(%i3) draw2d(
        grid   = true,
        xrange = [5, 25],
        histogram_description(
          s2,
          nclasses     = 9,
          frequency    = relative,
          fill_density = 0.5),
        explicit(pdf_normal(x,m,s), x, m - 3*s, m + 3* s))$
関数: piechart (list)
関数: piechart (list, option_1, option_2, …)
関数: piechart (one_column_matrix)
関数: piechart (one_column_matrix, option_1, option_2, …)
関数: piechart (one_row_matrix)
関数: piechart (one_row_matrix, option_1, option_2, …)
関数: piechart_description (…)

barsplotに似ていますが、長方形の代わりに扇をプロットします。

利用可能なオプションは以下のものです:

  • sector_colors (デフォルト, []): セクタの色のリスト。 指定した色よりも多くセクタがあるときは、必要な色の超過分がランダムに選ばれます。 それらについて更に知るには colorを参照してください。
  • pie_center (デフォルト, [0,0]): 円グラフの中心。
  • pie_radius (デフォルト, 1): 円グラフの半径。
  • piechartが内部で割り当てるkeyを除いたすべてのグローバル drawオプション。 もしこのオプションに自分の値を設定し、複雑なシーンを構築したいなら、 piechart_descriptionを利用してください。
  • 以下のローカル drawオプション: key, color, fill_display, line_widthellipseも参照してください。

関数 piechart_descriptionは他のグラフィックオブジェクトと一緒に 複雑なシーンを生成するのに適したグラフィックオブジェクトを生成します。 wxMaximaと iMaximaインターフェイスで埋め込みヒストグラムを生成する 関数wxhistogramもあります。

例:

(%i1) load ("descriptive")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) piechart(
        s1,
        xrange = [-1.1, 1.3],
        yrange = [-1.1, 1.1],
        title  = "Digit frequencies in pi")$

関数barsplotも参照してください。

関数: scatterplot (list)
関数: scatterplot (list, option_1, option_2, …)
関数: scatterplot (matrix)
関数: scatterplot (matrix, option_1, option_2, …)
関数: scatterplot_description (…)

1変量(list)や多変量(matrix)の標本の散布図をプロットします。

利用可能なオプションは histogramが許すものと同じです。

関数 scatterplot_descriptionは他のグラフィックオブジェクトと一緒に 複雑なシーンを生成するのに適したグラフィックオブジェクトを生成します。 wxMaximaと iMaximaインターフェイスで埋め込みヒストグラムを生成する 関数wxscatterplotもあります。

例:

シミュレーティッドGauss標本の1変量散布図。

(%i1) load ("descriptive")$
(%i2) load ("distrib")$
(%i3) scatterplot(
        random_normal(0,1,200),
        xaxis      = true,
        point_size = 2,
        dimensions = [600,150])$

二次元散布図。

(%i1) load ("descriptive")$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) scatterplot(
       submatrix(s2, 1,2,3),
       title      = "Data from stations #4 and #5",
       point_type = diamant,
       point_size = 2,
       color      = blue)$

3次元散布図。

(%i1) load ("descriptive")$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) scatterplot(submatrix (s2, 1,2), nclasses=4)$

5つのクラスのヒストグラムと5次元散布図。

(%i1) load ("descriptive")$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) scatterplot(
        s2,
        nclasses     = 5,
        frequency    = relative,
        fill_color   = blue,
        fill_density = 0.3,
        xtics        = 5)$

2次元か3次元で孤立点か線で結んだ点をプロットすることについては、 pointsを参照してください。 histogramも参照してください。

関数: starplot (data1, data2, …, option_1, option_2, …)
関数: starplot_description (…)

1変量、多変量どちらの標本でも離散統計変数のスターダイアグラムをプロットします

dataは1標本を意味する結果のリストかもしれませんし、 それぞれサイズmn個の標本を意味するmn列の行列かもしれません。

利用可能なオプションは以下のものです:

  • stars_colors (デフォルト, []): 多変量標本の色のリスト。 指定した色よりも多くセクタがあるときは、必要な色の超過分がランダムに選ばれます。 それらについて更に知るには colorを参照してください。
  • frequency (デフォルト, absolute): 半径のスケールを示します。 可能な値: absolute, relative, percent
  • ordering (デフォルト, orderlessp): 可能な値はorderlesspordergreatpです。 統計的結果がどちら向きにx軸に並んでいるかを示します。
  • sample_keys (デフォルト, []): 凡例に使われる文字列のリスト。 リストの長さが0か標本の長さ以外なら、 エラーメッセージを返します。
  • star_center (デフォルト, [0,0]): ダイアグラムの中心。
  • star_radius (デフォルト, 1): ダイアグラムの半径。
  • starplotが内部で割り当てるpoints_joined, point_type, keyを除いたすべてのグローバル drawオプション。 もしこのオプションに自分の値を設定し、複雑なシーンを構築したいなら、 starplot_descriptionを利用してください。
  • 以下のローカル drawオプション: line_width

関数 starplot_descriptionは他のグラフィックオブジェクトと一緒に 複雑なシーンを生成するのに適したグラフィックオブジェクトを生成します。 wxMaximaと iMaximaインターフェイスで埋め込みヒストグラムを生成する 関数wxstarplotもあります。

例:

絶対頻度に基づいたプロット。 ユーザーが定義した位置と半径。

(%i1) load ("descriptive")$
(%i2) l1: makelist(random(10),k,1,50)$
(%i3) l2: makelist(random(10),k,1,200)$
(%i4) starplot(
        l1, l2,
        stars_colors = [blue,red],
        sample_keys = ["1st sample", "2nd sample"],
        star_center = [1,2],
        star_radius = 4,
        proportional_axes = xy,
        line_width = 2 ) $ 
関数: stemplot (data)
関数: stemplot (data, option)

幹葉図をプロットします。

固有の利用可能なオプションは:

  • leaf_unit (デフォルト, 1): 葉の単位を示します; 10のべきでなければいけません。

例:

(%i1) load ("descriptive")$
(%i2) load("distrib")$
(%i3) stemplot(
        random_normal(15, 6, 100),
        leaf_unit = 0.1);
-5|4
 0|37
 1|7
 3|6
 4|4
 5|4
 6|57
 7|0149
 8|3
 9|1334588
10|07888
11|01144467789
12|12566889
13|24778
14|047
15|223458
16|4
17|11557
18|000247
19|4467799
20|00
21|1
22|2335
23|01457
24|12356
25|455
27|79
key: 6|3 =  6.3
(%o3)                  done

Next: , Previous:   [Contents][Index]