Next: diag, Previous: contrib_ode [Contents][Index]
Next: Functions and Variables for data manipulation, Previous: descriptive, Up: descriptive [Contents][Index]
パッケージ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つのグループA
とB
の患者から測定された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 ]
Next: Functions and Variables for descriptive statistics, Previous: Introduction to descriptive, Up: descriptive [Contents][Index]
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]]
数値的、記述的両方の離散標本の中の絶対頻度を数えます。 唯一の引数はリストです。
(%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
は最後の入力を理解するのを助けるはずです。
これは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
ここで、一番目の成分は、A
とB
はカテゴリなので意味がなく、
二番目の成分は個々人の平均の歳の有理表現であり、
四番目と最後の値はある奇妙な振る舞いを示しています。
これは、
This is because symbol
シンボルNA
がnon 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
Next: Functions and Variables for statistical graphs, Previous: Functions and Variables for data manipulation, Up: descriptive [Contents][Index]
これは標本平均です。以下のように定義されます。
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]
これは標本分散です。以下のように定義されます。
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
も参照してください。
これは標本分散です。以下のように定義されます。
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
も参照してください。
これは分母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]
関数var
とstd1
も参照してください。
これは分母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
.
次数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
も参照してください。
次数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_moment
とmean
も参照してください。
変動係数は標本標準偏差(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]
関数std
とmean
も参照してください。
これは標本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
.
これは標本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
も参照してください。
範囲は極値の差です。
例:
(%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]
これは標本listのp分位数です。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]
一旦標本が順に並べられると、 もし標本サイズが奇数ならメジアンは中央値であり、 そうでなければ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
も参照してください。
四分位範囲は
三番目と一番目の分位数の差
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
も参照してください。
平均偏差です。以下のように定義されます。
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
も参照してください。
メジアン偏差です。以下のように定義されます。
n ==== 1 \ - > |x - med| n / i ==== i = 1
ここでmed
はlistのメジアンです。
例:
(%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
も参照してください。
調和平均です。以下のように定義されます。
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]
関数mean
とgeometric_mean
も参照してください。
幾何平均です。以下のように定義されます。
/ 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]
関数mean
とharmonic_mean
も参照してください。
尖度係数です。以下のように定義されます。
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
も参照してください。
歪度係数です。以下のように定義されます。
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の歪度係数です。以下のように定義されます。
_ 3 (x - med) ----------- s
ここで medはlistのメジアンです。
例:
(%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
も参照してください。
分位歪度係数です。以下のように定義されます。
c - 2 c + c 3/4 1/2 1/4 -------------------- c - c 3/4 1/4
ここでc_pは標本listのp分位数です。
例:
(%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
も参照してください。
多変量標本の共分散行列です。以下のように定義されます。
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
も参照してください。
多変量標本の共分散行列です。以下のように定義されます。
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
は大域分散尺度のリストを返します:
trace(S_1)
,
trace(S_1)/p
,
determinant(S_1)
,
sqrt(determinant(S_1))
,
determinant(S_1)^(1/p)
, (以下の文献で定義されています: Peña, D. (2002) Análisis de datos multivariantes; McGraw-Hill, Madrid.)
determinant(S_1)^(1/(2*p))
.
ここでpは多変量確率変数の次元であり、
S_1はcov1
が返す共分散行列です。
例:
(%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]
cov
とcov1
も参照してください。
多変量標本の相関行列です。
例:
(%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 ]
cov
とcov1
も参照してください。
関数list_correlations
は相関尺度のリストを返します:
-1 ij S = (s ) 1 i,j = 1,2,...,p
2 1 R = 1 - ------- i ii s s ii
変数の残りが独立変数として使われるとき これらはX_i上の線形多変量回帰モデルの適合度の指標です。
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
がデータ行列ではなく、共分散行列であることを意味し、再計算は避けられます。
cov
とcov1
も参照してください。
Previous: Functions and Variables for descriptive statistics, Up: descriptive [Contents][Index]
1変量、多変量どちらの標本でも離散統計変数の棒グラフをプロットします
dataは1標本を意味する結果のリストかもしれませんし、 それぞれサイズmのn個の標本を意味するm行n列の行列かもしれません。
利用可能なオプションは以下のものです:
draw
パッケージで定義されたもの。
3/4
): 長方形の相対幅。
値は範囲[0,1]
内でなければいけません。
clustered
):
複数の標本をいかに表示するか示します。
有効な値: clustered
と stacked
。
1
): 棒の2つの隣り合うグループの隙間を表す正の整数。
[]
): 複数の標本のための色のリスト。
指定された色よりもたくさん標本がある時は、
追加で必要な色はランダムに選ばれます。
更に詳しくはcolor
を参照してください。
absolute
): 縦座標のスケールを示します。
可能な値: absolute
, relative
, percent
。
orderlessp
): 可能な値はorderlessp
かordergreatp
です。
統計的結果がどちら向きにx軸に並んでいるかを示します。
[]
): 凡例に使われる文字列のリスト。
リストの長さが0か標本の長さ以外なら、
エラーメッセージを返します。
0
): x軸上のどこからプロットされるか示します。
barsplot
が内部で割り当てる
xtics
を除くすべてのグローバル draw
オプション
もしこのオプションに自分の値を設定し、複雑なシーンを構築したいなら、
barsplot_description
を使用してください。
以下の例を参照してください。
draw
オプション: key
, color
,
fill_color
, fill_density
, line_width
。
bars
も参照してください。
関数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))$
棒グラフ関連オプションについては、パッケージdraw
のbars
を参照してください。
関数histogram
とpiechart
も参照してください。
この関数は箱ひげ図をプロットします。
引数dataはリストだったり行列だったりします。
箱ひげ図は主に異なる標本の比較に使われるので、リストはあまり興味深くありません。
行列の場合には多変量統計変数の複数成分おw比較することが可能です。
しかし、できる限り異なる標本サイズの標本のリストも許すようにしています。
実際、これは、パッケージdescriptive
の中で
この種のデータ構造を許容する唯一の関数です
利用可能なオプションは以下のものです:
3/4
): 箱の相対幅。
この値は範囲[0,1]
内でなければいけません。
vertical
): 可能な値: vertical
と horizontal
。
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)$
この関数は一連の標本からヒストグラムをプロットします。 標本データは数のリストか一次元行列に保存しなければいけません。
利用可能なオプションは以下のものです:
10
): ヒストグラムのクラス数、もしくは
クラスの境界と数か境界だけを含むリスト。
absolute
): 縦座標のスケールを示します。
可能な値: absolute
, relative
, percent
。
auto
): ヒストグラムチックのフォーマット。
可能な値: auto
, endpoints
, intervals
, かラベルのリスト。
histogram
が内部で割り当てるxrange
, yrange
, xtics
を除く
すべてのグローバル draw
オプション。
もしこれらのオプションに自分の値を設定したいなら、
histogram_description
を利用してください。
以下の例を参照してください。
draw
オプション: key
, color
,
fill_color
, fill_density
と line_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))$
barsplot
に似ていますが、長方形の代わりに扇をプロットします。
利用可能なオプションは以下のものです:
[]
): セクタの色のリスト。
指定した色よりも多くセクタがあるときは、必要な色の超過分がランダムに選ばれます。
それらについて更に知るには color
を参照してください。
[0,0]
): 円グラフの中心。
1
): 円グラフの半径。
piechart
が内部で割り当てるkey
を除いたすべてのグローバル draw
オプション。
もしこのオプションに自分の値を設定し、複雑なシーンを構築したいなら、
piechart_description
を利用してください。
draw
オプション: key
, color
,
fill_display
, line_width
。
ellipse
も参照してください。
関数 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
も参照してください。
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
も参照してください。
1変量、多変量どちらの標本でも離散統計変数のスターダイアグラムをプロットします
dataは1標本を意味する結果のリストかもしれませんし、 それぞれサイズmのn個の標本を意味するm行n列の行列かもしれません。
利用可能なオプションは以下のものです:
[]
): 多変量標本の色のリスト。
指定した色よりも多くセクタがあるときは、必要な色の超過分がランダムに選ばれます。
それらについて更に知るには color
を参照してください。
absolute
): 半径のスケールを示します。
可能な値: absolute
, relative
, percent
。
orderlessp
): 可能な値はorderlessp
かordergreatp
です。
統計的結果がどちら向きにx軸に並んでいるかを示します。
[]
): 凡例に使われる文字列のリスト。
リストの長さが0か標本の長さ以外なら、
エラーメッセージを返します。
[0,0]
): ダイアグラムの中心。
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 ) $
幹葉図をプロットします。
固有の利用可能なオプションは:
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: diag, Previous: contrib_ode [Contents][Index]