НОУ ІНТУЇТ | лекція | Моделювання з Maxima

  1. 6.2 Статистичні методи аналізу даних 6.2.1 Введення-виведення матричних даних
  2. 6.2.2 Функції Maxima для розрахунку описової статистики

6.2 Статистичні методи аналізу даних

6.2.1 Введення-виведення матричних даних

Для читання і запису матричних або потокових даних в складі Maxima передбачений пакет numericalio.

Функції пакета розраховані на введення / виведення даних, кожне поле яких передбачається атомом (в сенсі Lisp), тобто цілих чисел, чисел з плаваючою точкою, рядків або символів. Атоми сприймаються numericalio так само, як при інтерактивному введенні в консолі або виконанні batch-файла. Можливе використання різних символів-сепараторів для поділу полів даних (параметр Функції пакета розраховані на введення / виведення даних, кожне поле яких передбачається атомом (в сенсі Lisp), тобто  цілих чисел, чисел з плаваючою точкою, рядків або символів ).

Основні функції пакета numericalio:

Поряд із зазначеними простими функціями, використовуються більш специфічні: Поряд із зазначеними простими функціями, використовуються більш специфічні:   , Призначені для зчитування масивів в форматі Lisp або Maxima, особливості застосування яких не розглядаються в даній книзі , Призначені для зчитування масивів в форматі Lisp або Maxima, особливості застосування яких не розглядаються в даній книзі.

6.2.2 Функції Maxima для розрахунку описової статистики

Система Maxima містить ряд функцій для виконання статистичних розрахунків (описової статистики), об'єднані в пакет descriptive. Функції, що входять до складу descriptive, дозволяють виконати розрахунок дисперсії, середньоквадратичного відхилення, медіани, моди і т.п. Назви функцій та короткий опис виконуваних ними дій наведені в табл. 6.1 .

Побудова графічних ілюстрацій проводиться за допомогою функцій Побудова графічних ілюстрацій проводиться за допомогою функцій   (Безпосередня візуалізація даних),   (Будує гістограму),   (Також будує гістограму, але по дискретним або нечислове даними),   (Графік Бокса- вискер),   (кругова діаграма) (Безпосередня візуалізація даних), (Будує гістограму), (Також будує гістограму, але по дискретним або нечислове даними), (Графік Бокса- вискер), (кругова діаграма). Сінтакісіс виклику і параметри функцій багато в чому аналогічні компонентам пакету draw (див. Приклади нижче).

Основні загальні опції (успадковані від draw):

  • terminal - пристрій, на який виводиться діаграма (можливі значення - eps і png, за замовчуванням діаграма виводиться на екран, інші варіанти);
  • file_name - ім'я файлу, в який виводити гістограму (розширення встановлюється по опції terminal)
  • title - основний заготовок;
  • xlabel, ylabel - назви (мітки) осей,

Розглянемо приклад використання функцій пакета descriptive для статистичної обробки масивів даних. Дані беремо з файлів, що входять до складу пакета descriptive (файли biomed.data, wind.data і ін.). Перед початком роботи завантажуємо необхідні пакети descriptive і numericalio. За допомогою функції Розглянемо приклад використання функцій пакета descriptive для статистичної обробки масивів даних зчитується матриця, що містить 100 рядків і 5 стовпців.

(% I1) load (descriptive) $ load (numericalio) $ s: read_matrix (file_search ( "wind.data")) $ length (s); (% O4) 100 (% i5) mean (s); / * Розраховуємо середнє значення. При обробці матриці отримуємо список середніх по стовпцях. * / (% I11) mini (%); / * При обробці списку і пошуку в ньому мінімального елемента отримуємо одне значення! * /

Для побудови діаграм розкиду ( Для побудови діаграм розкиду (   -діаграмм) призначена функція -діаграмм) призначена функція . Синтаксис виклику:

Дані для функції Дані для функції   можуть представлятися вектором (списком) або матрицею можуть представлятися вектором (списком) або матрицею. Одномірні масиви розглядаються як тимчасові ряди з рівновіддаленими точками.

Основні опції, специфічні для даної функції:

  • point_size - розмір точки на графіку (ціле позитивне число);
  • point_type - вид точки (відсутність точок - none (-1), dot (0), plus (1), multiply (2), asterisk (3), square (4), filled_square (5), circle (6), filled_circle (7), up_triangle (8), filled_up_triangle (9), down_triangle (10), filled_down_triangle (11), diamant (12), filled_diamant (13));
  • color - колір точки (той же набір кольорів, що і в пакеті draw);
  • grid - наявність сітки на графіку ( ).

Для побудови гістограм використовується функція Для побудови гістограм використовується функція   (Синтаксис виклику аналогічний   і основні опції ідентичні опцій   ) (Синтаксис виклику аналогічний і основні опції ідентичні опцій ). Розглянемо додаткові опції, специфічні для :

  • nclasses (за замовчуванням 10) - число класів гістограми, або список із зазначенням меж класів і їх число, або тільки межі;
  • frequency - вказує масштаб шкали ординат, можливі значення: абсолютний, відносний і процентний (default, absolute, persent);
  • htics (default, auto) - формат проміжних поділок на гістограмі, можливі значення - auto, endpoints, intervals, або список міток;

При побудові гістограми доступні також локальні і глобальні опції пакета draw.

Для графічного представлення описової статистики служить діаграма Боксу-Уіскера ( "ящик-з-вусами"), яка є зручним способом наочно уявити статистичні дані п'ятьма параметрами: найменше та найбільше значення вибірки, нижній, середній і верхній квартили. На даній діаграмі можуть бути показані і викиди (якщо вони є).

Для побудови діаграм Боксу-Уіскера використовується функція Для побудови діаграм Боксу-Уіскера використовується функція . Синтаксис виклику: або .

параметр параметр   - список або матриця з декількома стовпцями - список або матриця з декількома стовпцями. Опції функції ідентичні опцій .

Стовпчасті діаграми (зазвичай частотні) будуються для даних, розбитих на категорії, за допомогою функції Стовпчасті діаграми (зазвичай частотні) будуються для даних, розбитих на категорії, за допомогою функції . Ці діаграми дозволяють графічно відобразити відмінності між даними категорій.

Досить поширеним способом графічного зображення структури статистичних сукупностей є секторна діаграма, так як ідея цілого дуже наочно виражається кругом, який представляє всю сукупність. Відносна величина кожного значення зображується у вигляді сектора кола, площа якого відповідає внеску цього значення в суму значень. Цей вид графіків будується в Maxima функцією Досить поширеним способом графічного зображення структури статистичних сукупностей є секторна діаграма, так як ідея цілого дуже наочно виражається кругом, який представляє всю сукупність .

Розглянемо приклади використання графічних утиліт пакета descriptive.

Для подальшого використання зчитуємо дані з файлу wind.data (це тестовий файл в складі пакету descriptive, містить матрицю 100х5).

(% I1) load (descriptive) $ load (numericalio) $ s: read_matrix (file_search ( "wind.data")) $ (% i4) x: makelist (s [k] [1], k, 1, length ( s)) $ (% i5) y: makelist (s [k] [2], k, 1, length (s)) $ (% i6) m: makelist ([x [k], y [k]], k, 1,100) $ (% i7) xy: apply ( 'matrix, m) $
Мал. 6.1. точковий графік

Будуємо графік (точковий) залежно Будуємо графік (точковий) залежно   від   (Див від (Див. рис.6.1 ). Результати зберігаються в файлі maxima_out.eps (ім'я файлу - за замовчуванням, він створюється в домашньому каталозі користувача). Необхідні команди:

(% I8) scatterplot (xy, terminal = eps);

Зчитуючи дані з файлу pidigits.data, будуємо гістограму частотного розподілу десяткових знаків числа π (див. рис.6.2 ). Результати зберігаються в файлі histogram.eps (ім'я файлу задається опцією file_name = "histogram", він створюється в домашньому каталозі користувача). Необхідні команди:

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

Наступний приклад - графік Боксу-Уіскера з анотаціями по осях (див. рис.6.3 ). Необхідні команди (результат зберігається в файлі boxwisker.eps, англомовні найменування замінені на російські переклади):

(% I10) boxplot (s, title = "Test plot", xlabel = "Seasons", terminal = eps, file_name = "boxwisker") $
Мал. 6.2. Гістограма

Приклад побудови стовпчастий діаграми з використанням функції Приклад побудови стовпчастий діаграми з використанням функції   - на   рис - на рис.6.4 . Графік побудований командою (результат зберігається в файл barsplot.eps):

load (descriptive) $ l1: makelist (random (8), k, 1,50) $ l2: makelist (random (8), k, 1,100) $ barsplot (l1, l2, box_width = 1/2, fill_density = 3 / 4, sample_keys = [ "A", "B"], bars_colors = [grey10, grey50], terminal = eps, file_name = "barsplot") $

Основні опції команди Основні опції команди   : :


Мал.6.3.

Графік Боксу-Уіскера

З функцією З функцією   можна використовувати і опції пакета draw можна використовувати і опції пакета draw.

Для побудови кругових (секторних) діаграм використовується функція Для побудови кругових (секторних) діаграм використовується функція .

приклад використання приклад використання   : :

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

Кольори секторів і радіус діаграми описуються опціями sector_colors і pie_radius.


Мал.6.4.

Гістограма розподілу в групах

На жаль, базова програма виведення графіки Maxima - gnuplot - написана дуже давно, і сприймає кириличні символи тільки в кодуваннях KOI8-R або KOI8-U (в останніх версіях - і utf8). Можливим рішенням (прийнятим для побудови графіків в цій книзі) є створення файлу .gnuplot, що містить наступні команди: set encoding koi8r або set encoding utf8.

Однак і в цьому випадку може виникнути необхідність у редагуванні файлу maxout.gnuplot, що містить команди для побудови останнього графіка.