Next: Пакет diag, Previous: Пакет contrib_ode, Up: Top [Contents][Index]
Next: Функции и переменные для манипулирования данными, Previous: Пакет descriptive, Up: Пакет descriptive [Contents][Index]
Пакет 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: Введение в пакет descriptive, Up: Пакет descriptive [Contents][Index]
Аргумент 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, и т.д.
Вычисляет абсолютные частоты для дискретной выборки, как числовой так и категоризированной. Ее единственный аргумент является списком
(%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 должны помочь понять последний ввод.
Является некоторым вариантом 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]
Среднее значение выборки, определяемое как
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]
Дисперсия выборки, определяемая как
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.
Дисперсия выборки, определяемая как
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.
Стандартное отклонение выборки, или квадратный корень функции 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.
Квадратный корень функции 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.
Нецентральный момент порядка 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.
Центральный момент порядка 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.
Коэффициент дисперсии есть отношение стандартного отклонения 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.
Минимальное значение выборки 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.
Максимальное значение выборки 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.
Разница между экстремальными значениями выборки.
Пример:
(%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]
Есть 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]
Когда выборка упорядочена, то, если размер выборки нечетен, что медиана есть центральное значение, иначе она есть среднее двух центральных значений.
Пример:
(%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.
Интерквартильный размах есть разница между третьей и первой квартилью
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.
Среднее отклонение, определяемое как
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.
Медианное отклонение, определенное как
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.
Гармоническое среднее, определенное как
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.
Геометрическое среднее, определенное как
/ 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.
Коэффициент куртозиса, определенный как
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.
Коэффициент асимметрии, определенный как
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.
Коэффициент асимметрии Парсона, определенные как
_
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.
Коэффициент квартильной асимметрии, определенный как
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]
Матрица ковариации многомерной выборки, определенная как
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.
Матрица ковариации многомерной выборки, определенная как
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 возвращает список глобальных измерений дисперсии:
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) 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.
Матрица корреляции многомерной выборки.
Пример:
(%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 возвращает список мер корреляции:
-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) 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]
Эта функция строит гистограмму для непрерывной выборки. Данные выборки должны быть представлены в виде списка или одномерной матрицы.
Доступны следующие опции:
draw. См. также bars и barsplot.
См. также 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)$
Строит корреляционную диаграмму (scatter diagrams) для одномерной (list) или многомерной (matrix) выборки.
Доступны следующие опции:
draw.
Примеры:
Одномерная корреляционная диаграмма для гауссовой выборки.
(%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.
Аналогична histogram но для дискретных, численных или категоризированных,
статистических переменных.
Доступны следующие опции:
draw.
3/4 по умолчанию).
Это число должно быть в интервале [0,1].
Пример:
(%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.
Аналогична barsplot, но вместо прямоугольников строит сектора, т.е. круговую диаграмму.
Доступны следующие опции:
draw.
[0,0] по умолчанию).
Пример:
(%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.
Эта функция строит диаграмму типа "ящик-с-усами" (box-and-whishker).
Аргумент data может быть списком, что не представляет большого
интереса, т.к. подобные диаграммы в основном используются для
сравнения различных выборок или матриц, чтобы сравнить две или более
компонент многомерной выборки.
Но data также может быть списком выборок, возможно различной длины
(это единственная функция в пакете descriptive, которая допускает
такой тип данных).
Доступны следующие опции:
draw.
3/4 по умолчанию).
Это число должно быть в интервале [0,1].
Примеры:
Диаграмма "ящик-с-усами" для многомерной выборки.
(%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)$