Next: , Previous: , Up: Top   [Contents][Index]

43 Пакет descriptive


Next: , Previous: , Up: Пакет descriptive   [Contents][Index]

43.1 Введение в пакет descriptive

Пакет descriptive содержит набор функций для выполнения вычислений и визуализации данных в рамках описательной статистики. Вместе с исходным кодом пакета Maxima включает также три набора данных: 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

Отметим, что для многомерной выборки среднее вычисляется для каждой колонки.

В случае нескольких выборок, возможно различного размера, для получения результата для каждой выборки можно использовать функцию map

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

В этом случае в списке находятся две выборки длины 3 и 2.

Одномерные выборки представляются списками

(%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 содержит первые 100 цифр числа %pi:

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

Для загрузки этих данных в Maxima следует делать так

(%i1) load ("numericalio")$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) length (s1);
(%o3)                          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) load ("numericalio")$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) length (s2);
(%o3)                          100
(%i4) s2 [%]; /* last record */
(%o4)            [3.58, 6.0, 4.58, 7.62, 11.25]

Некоторые выборки содержат нечисловые данные. Например, файл biomed.data (являющийся частью другого большого набора данных из StatLib Data Repository) содержит четыре измерения крови взятые от двух групп пациентов разного возраста A и B

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

Первый пациент принадлежит группе A, возраст 30 лет, и его/ее измерения крови есть 167.0, 89.0, 25.6 и 364.

При работе с категоризированными данными следует соблюдать осторожность. В следующем примере символу a присвоено значение до задания катигоризированной выборки

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

Next: , Previous: , Up: Пакет descriptive   [Contents][Index]

43.2 Функции и переменные для манипулирования данными

Функция: continuous_freq (list)
Функция: continuous_freq (list, m)

Аргумент continuous_freq должен быть списком чисел, которые группируются в интервалы и вычисляется число чисел в каждом из интервалов. Необязательный второй аргумент continuous_freq задает число интервалов, по умолчанию 10,

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

Первый список содержит границы интервалов, а второй содержит число чисел в соответствующем интервале: 16 цифр в интервале [0, 1.8], что есть 0 или 1, 24 цифры в интервале (1.8, 3.6], что есть 2 и 3, и т.д.

Функция: discrete_freq (list)

Вычисляет абсолютные частоты для дискретной выборки, как числовой так и категоризированной. Ее единственный аргумент является списком

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"));
(%o3) [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 
4, 6, 2, 6, 4, 3, 3, 8, 3, 2, 7, 9, 5, 0, 2, 8, 8, 4, 1, 9, 7, 
1, 6, 9, 3, 9, 9, 3, 7, 5, 1, 0, 5, 8, 2, 0, 9, 7, 4, 9, 4, 4, 
5, 9, 2, 3, 0, 7, 8, 1, 6, 4, 0, 6, 2, 8, 6, 2, 0, 8, 9, 9, 8, 
6, 2, 8, 0, 3, 4, 8, 2, 5, 3, 4, 2, 1, 1, 7, 0, 6, 7]
(%i4) discrete_freq (s1);
(%o4) [[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, logical_expression)
Функция: subsample (data_matrix, logical_expression, col_num1, col_num2, ...)

Является некоторым вариантом Maxima функции submatrix. Первый аргумент – имя матрицы данных, второй – экранированное логическое выражение, необязательные последующие аргументы – номера колонок, которые необходимо выбрать. Работу функции лучше всего проиллюстрировать на примерах

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

Это многомерная выборка в которой скорость ветра в первой метеорологической станции превышает 18. В экранированном логическом выражении i-й компонент данных обозначается %c[i]. Символ %c[i] используется внутри subsample, что вызывает проблемы если этот символ используется для обозначения категории в категоризированных данных. В следующем примере мы затребуем только первую, вторую и пятую компоненту записей, для которых скорость ветра больше или равна 16 на станции номер 1 и менее 25 узлов на станции номер 4

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) subsample (s2, '(%c[1] >= 16 and %c[4] < 25), 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. Мы выбираем записи, которые соответствуют пациентам в группе B старше 38 лет

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s3 : read_matrix (file_search ("biomed.data"))$
(%i4) subsample (s3, '(%c[1] = B and %c[2] > 38));
                [ 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) load ("numericalio")$
(%i3) s3 : read_matrix (file_search ("biomed.data"))$
(%i4) subsample (s3, '(%c[1] = B and %c[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 ]
(%o4)              [                        ]
                   [ 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) load ("numericalio")$
(%i3) s3 : read_matrix (file_search ("biomed.data"))$
(%i4) mean (s3);
       65 B + 35 A  317          6 NA + 8145.0
(%o4) [-----------, ---, 87.178, -------------, 18.123, 
           100      10                100
                                                    3 NA + 19587
                                                    ------------]
                                                        100

Здесь, первая компонента бессмыслена, т.к. A и B представляют категории, вторая компонента – средний возраст пациентов в форме рационального числа, а четвертая и последняя компоненты демонстрируют странное поведение. Это потому, что символ NA используется для случая, когда данные недоступны (non available), а следовательно эти два средних значения бессмысленны. Возможным решением является исключение из матрицы строк с символами NA, хотя это и приводит к некоторой потере данных

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

Next: , Previous: , Up: Пакет descriptive   [Contents][Index]

43.3 Функции и переменные для описательной статистики

Функция: mean (list)
Функция: mean (matrix)

Среднее значение выборки, определяемое как

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

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) mean (s1);
                               471
(%o4)                          ---
                               100
(%i5) %, numer;
(%o5)                         4.71
(%i6) s2 : read_matrix (file_search ("wind.data"))$
(%i7) mean (s2);
(%o7)     [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) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) var (s1), numer;
(%o4)                   8.425899999999999

См. также функцию var1.

Функция: var1 (list)
Функция: var1 (matrix)

Дисперсия выборки, определяемая как

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

Пример:

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

См. также функцию var.

Функция: std (list)
Функция: std (matrix)

Стандартное отклонение выборки, или квадратный корень функции var, дисперсии с знаменателем n.

Пример:

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

См. также функции var и std1.

Функция: std1 (list)
Функция: std1 (matrix)

Квадратный корень функции var1, дисперсии с знаменателем n-1.

Пример:

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

См. также функции var1 и std.

Функция: noncentral_moment (list, k)
Функция: noncentral_moment (matrix, k)

Нецентральный момент порядка k, определенный как

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

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) noncentral_moment (s1, 1), numer; /* the mean */
(%o4)                         4.71
(%i6) s2 : read_matrix (file_search ("wind.data"))$
(%i7) noncentral_moment (s2, 5);
(%o7) [319793.8724761506, 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) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) central_moment (s1, 2), numer; /* the variance */
(%o4)                   8.425899999999999
(%i6) s2 : read_matrix (file_search ("wind.data"))$
(%i7) central_moment (s2, 3);
(%o7) [11.29584771375004, 16.97988248298583, 5.626661952750102, 
                             37.5986572057918, 25.85981904394192]

См. также функции central_moment и mean.

Функция: cv (list)
Функция: cv (matrix)

Коэффициент дисперсии есть отношение стандартного отклонения std к среднему значению mean,

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

См. также функции std и mean.

Функция: mini (list)
Функция: mini (matrix)

Минимальное значение выборки list,

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

См. также функцию maxi.

Функция: maxi (list)
Функция: maxi (matrix)

Максимальное значение выборки list,

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

См. также функцию mini.

Функция: range (list)
Функция: range (matrix)

Разница между экстремальными значениями выборки.

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) range (s1);
(%o4)                           9
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) range (s2);
(%o6)          [19.67, 20.96, 17.37, 24.38, 22.46]
Функция: quantile (list, p)
Функция: quantile (matrix, p)

Есть p-квантиль выборки list, где p есть число в пределах [0, 1]. Хотя существует несколько определений квантили (Hyndman, R. J., Fan, Y. (1996) Sample quantiles in statistical packages. American Statistician, 50, 361-365), в пакете descriptive используется определение, основанное на линейной интерполяции.

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) /* 1st and 3rd quartiles */
         [quantile (s1, 1/4), quantile (s1, 3/4)], numer;
(%o4)                      [2.0, 7.25]
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) quantile (s2, 1/4);
(%o6)    [7.2575, 7.477500000000001, 7.82, 11.28, 11.48]
Функция: median (list)
Функция: median (matrix)

Когда выборка упорядочена, то, если размер выборки нечетен, что медиана есть центральное значение, иначе она есть среднее двух центральных значений.

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) median (s1);
                                9
(%o4)                           -
                                2
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) median (s2);
(%o6)         [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) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) qrange (s1);
                               21
(%o4)                          --
                               4
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) qrange (s2);
(%o6) [5.385, 5.572499999999998, 6.0225, 8.729999999999999, 
                                               6.650000000000002]

См. также функцию quantile.

Функция: mean_deviation (list)
Функция: mean_deviation (matrix)

Среднее отклонение, определяемое как

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

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) mean_deviation (s1);
                               51
(%o4)                          --
                               20
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) mean_deviation (s2);
(%o6) [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

где med есть медиана выборки list.

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) median_deviation (s1);
                                5
(%o4)                           -
                                2
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) median_deviation (s2);
(%o6)           [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) load ("numericalio")$
(%i3) y : [5, 7, 2, 5, 9, 5, 6, 4, 9, 2, 4, 2, 5]$
(%i4) harmonic_mean (y), numer;
(%o4)                   3.901858027632205
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) harmonic_mean (s2);
(%o6) [6.948015590052786, 7.391967752360356, 9.055658197151745, 
                            13.44199028193692, 13.01439145898509]

См. также функции mean и geometric_mean.

Функция: geometric_mean (list)
Функция: geometric_mean (matrix)

Геометрическое среднее, определенное как

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

Пример:

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

См. также функции mean и harmonic_mean.

Функция: kurtosis (list)
Функция: kurtosis (matrix)

Коэффициент куртозиса, определенный как

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

Пример:

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

См. также функции mean, var и skewness.

Функция: skewness (list)
Функция: skewness (matrix)

Коэффициент асимметрии, определенный как

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

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) skewness (s1), numer;
(%o4)                  .009196180476450306
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) skewness (s2);
(%o6) [.1580509020000979, .2926379232061854, .09242174416107717, 
                            .2059984348148687, .2142520248890832]

См. также функции mean, var и kurtosis.

Функция: pearson_skewness (list)
Функция: pearson_skewness (matrix)

Коэффициент асимметрии Парсона, определенные как

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

где med – медиана list.

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) pearson_skewness (s1), numer;
(%o4)                   .2159484029093895
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) pearson_skewness (s2);
(%o6) [- .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 есть p-квартиль выборки list.

Пример:

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

См. также функцию quantile.


Next: , Previous: , Up: Пакет descriptive   [Contents][Index]

43.4 Функции и переменные для многомерной описательной статистики

Функция: cov (matrix)

Матрица ковариации многомерной выборки, определенная как

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

где X_j есть j-й столбец матрицы выборки.

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) fpprintprec : 7$  /* change precision for pretty output */
(%i5) cov (s2);
      [ 17.22191  13.61811  14.37217  19.39624  15.42162 ]
      [                                                  ]
      [ 13.61811  14.98774  13.30448  15.15834  14.9711  ]
      [                                                  ]
(%o5) [ 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) load ("numericalio")$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) fpprintprec : 7$ /* change precision for pretty output */
(%i5) cov1 (s2);
      [ 17.39587  13.75567  14.51734  19.59216  15.5774  ]
      [                                                  ]
      [ 13.75567  15.13913  13.43887  15.31145  15.12232 ]
      [                                                  ]
(%o5) [ 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 возвращает список глобальных измерений дисперсии:

где p есть размерность многомерной случайной переменной а S_1 есть матрица ковариации, возвращаемая cov1.

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) global_variances (s2);
(%o4) [105.338342060606, 21.06766841212119, 12874.34690469686, 
         113.4651792608502, 6.636590811800794, 2.576158149609762]

Функция global_variances имеет необязательный логический аргумент: global_variances(x,true) сообщает Maxima, что x есть матрица данных, что дает результат идентичный global_variances(x). С другой стороны, global_variances(x,false) означает, что x не является матрицей данных а является матрицей ковариации, что позволяет избежать перевычисления

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) s : cov1 (s2)$
(%i5) global_variances (s, false);
(%o5) [105.338342060606, 21.06766841212119, 12874.34690469686, 
         113.4651792608502, 6.636590811800794, 2.576158149609762]

См. также cov и cov1.

Функция: cor (matrix)
Функция: cor (matrix, logical_value)

Матрица корреляции многомерной выборки.

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) fpprintprec:7$
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) cor (s2);
      [   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    ]

Функция cor имеет необязательный логический аргумент: cor(x,true) сообщает Maxima, что x есть матрица данных, что дает результат идентичный cor(x). С другой стороны, cor(x,false) означает, что x не является матрицей данных а является матрицей ковариации, что позволяет избежать перевычисления

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

См. также cov и cov1.

Функция: list_correlations (matrix)
Функция: list_correlations (matrix, logical_value)

Функция list_correlations возвращает список мер корреляции:

Пример:

(%i1) load ("descriptive")$
(%i2) load ("numericalio")$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) z : list_correlations (s2)$
(%i5) fpprintprec : 5$ /* for pretty output */
(%i6) z[1];  /* precision matrix */
      [  .38486   - .13856   - .15626   - .10239    .031179  ]
      [                                                      ]
      [ - .13856   .34107    - .15233    .038447   - .052842 ]
      [                                                      ]
(%o6) [ - .15626  - .15233    .47296    - .024816  - .10054  ]
      [                                                      ]
      [ - .10239   .038447   - .024816   .10937    - .034033 ]
      [                                                      ]
      [ .031179   - .052842  - .10054   - .034033   .14834   ]
(%i7) z[2];  /* multiple correlation vector */
(%o7)       [.85063, .80634, .86474, .71867, .72675]
(%i8) z[3];  /* partial correlation matrix */
       [  - 1.0     .38244   .36627   .49908   - .13049 ]
       [                                                ]
       [  .38244    - 1.0    .37927  - .19907   .23492  ]
       [                                                ]
(%o8)  [  .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: , Up: Пакет descriptive   [Contents][Index]

43.5 Функции и переменные для статистических графиков

Функция: 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, ...)

Эта функция строит гистограмму для непрерывной выборки. Данные выборки должны быть представлены в виде списка или одномерной матрицы.

Доступны следующие опции:

См. также discrete_freq и continuous_freq для подсчета данных, и bars и barsplot для построения гистограмм непрерывных данных.

Примеры:

Простая гистограмма с восемью классами.

(%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)$
Функция: scatterplot (list)
Функция: scatterplot (list, option_1, option_2, ...)
Функция: scatterplot (matrix)
Функция: scatterplot (matrix, option_1, option_2, ...)

Строит корреляционную диаграмму (scatter diagrams) для одномерной (list) или многомерной (matrix) выборки.

Доступны следующие опции:

Примеры:

Одномерная корреляционная диаграмма для гауссовой выборки.

(%i1) load ("descriptive")$
(%i2) load ("distrib")$
(%i3) scatterplot(
        random_normal(0,1,200),
        xaxis      = true,
        point_size = 2,
        terminal   = eps,
        eps_width  = 10,
        eps_height = 2)$

Двумерная корреляционная диаграмма.

(%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)$

Трехмерная корреляционная диаграмма.

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

Пятимерная корреляционная диаграмма, с гистограммой, содержащей пать классов.

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

По поводу построения точек в двух или трех измерениях, соединенных линиями, см. points. См. bars по поводу опций, управляющих выводом гистограмм.

См. также histogram.

Функция: barsplot (list)
Функция: barsplot (list, option_1, option_2, ...)
Функция: barsplot (one_column_matrix)
Функция: barsplot (one_column_matrix, option_1, option_2, ...)
Функция: barsplot (one_row_matrix)
Функция: barsplot (one_row_matrix, option_1, option_2, ...)

Аналогична histogram но для дискретных, численных или категоризированных, статистических переменных.

Доступны следующие опции:

Пример:

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

По поводу опций, управляющих выводом диаграмм, см. bars пакета draw. См. также функции histogram и piechart.

Функция: 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, ...)

Аналогична barsplot, но вместо прямоугольников строит сектора, т.е. круговую диаграмму.

Доступны следующие опции:

Пример:

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

См. также barsplot.

Функция: boxplot (data)
Функция: boxplot (data, option_1, option_2, ...)

Эта функция строит диаграмму типа "ящик-с-усами" (box-and-whishker). Аргумент data может быть списком, что не представляет большого интереса, т.к. подобные диаграммы в основном используются для сравнения различных выборок или матриц, чтобы сравнить две или более компонент многомерной выборки. Но data также может быть списком выборок, возможно различной длины (это единственная функция в пакете descriptive, которая допускает такой тип данных).

Доступны следующие опции:

Примеры:

Диаграмма "ящик-с-усами" для многомерной выборки.

(%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) $

Диаграмма "ящик-с-усами" для трех выборок различной длины.

(%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)$

Previous: , Up: Пакет descriptive   [Contents][Index]