лабораторные работы. Обработки данных
Скачать 1.26 Mb.
|
СТАТИСТИЧЕСКИЕ МЕТОДЫ ОБРАБОТКИ ДАННЫХ Лабораторный практикум Лабораторный практикум содержит описание десяти лабораторных работ. При выполнении работ предполагается использование системы программирования Matlab с пакетом прикладных программ по статистике «Statistics Toolbox». Лабораторные ра- боты содержат теоретическую часть, относящуюся к статистическим методам, описа- ние средств системы Matlab для решения поставленных задач и указания к порядку выполнения работ. ЛАБОРАТОРНАЯ РАБОТА № 1. ОЗНАКОМЛЕНИЕ С СИСТЕМОЙ MATLAB. ОДНОМЕРНЫЕ РАСПРЕДЕЛЕНИЯ ТЕОРИИ ВЕРОЯТНОСТЕЙ И МАТЕМАТИЧЕСКОЙ СТАТИСТИКИ 1.1. Цель работы 1.1.1. Ознакомление с системой программирования Matlab, приобретение навыков работы в ней. 1.1.2. Ознакомление с языком программирования системы Matlab. 1.1.3. Исследование с помощью средств Matlab одномерных распределений теории вероятностей и математической статистики. 1.2. Теоретические положения 1.2.1. Общие сведения о системе Matlab Matlab (Matrix Laboratory – матричная лаборатория) – универсальная ин- тегрированная система, предлагаемая ее разработчиками как язык програм- мирования высокого уровня для технических вычислений. Язык программирования Matlab является интерпретатором. Это значит, что каждая инструкция программы распознается и тут же исполняется. Этап ком- пиляции полной программы отсутствует. Интерпретация означает, что Matlab не создает исполняемых конечных программ. Они существуют лишь в виде m-файлов (файлов с расширением m). Для выполнения программ необходимо находиться в среде Matlab. Однако для программ на языке Matlab созданы ком- пиляторы, транслирующие программы на языке Matlab в коды языков программирования C и C++. Это решает проблему создания исполняемых программ, изначально написанных в среде Matlab. 1.2.2. Запуск системы Matlab Matlab запускается нажатием левой клавиши мыши на ярлыке Matlab в ра- бочем меню операционной системы Windows. После этого появляется команд- ное окно системы Matlab, и система готова к проведению вычислений в ко- мандном режиме. Полезно знать, что в начале запуска автоматически выполня- ется команда matlabrc, которая исполняет загрузочный файл matlabrc.m и файл startup.m, если таковой существует. Эти файлы выполняют начальную настройку терминала системы и задают ряд ее параметров. Для сохранения соб- ственных m-файлов рекомендуется создать пользовательский каталог, напри- мер, каталог с именем USER на диске D. Доступ к этому каталогу необходимо обеспечить с помощью команды path, которая будет иметь вид: path(path,'D:\USER'). Эту команду целесообразно включить в файл startup.m, который в свою очередь нужно создать и записать в один из каталогов системыMatlab, напри- мер в каталог, в котором размещается файл matlabrc.m. 1.2.3. Сеанс работы с Matlab Сеанс работы с Matlab принято именовать сессией. Сессия, в сущности, яв- ляется текущим документом, отражающим работу пользователя с системой Matlab. В ней имеются строки ввода, вывода и сообщений об ошибках. Строка ввода указывается с помощью приглашающего символа >>. В строке вывода символ >> отсутствует. Строка сообщений об ошибках начинается символами ???. Входящие в сессию определения переменных и функций располагаются в рабочей области памяти (workspace). Команды набираются на клавиатуре с по- мощью обычных операций строчного редактирования. Особое назначение имеют клавиши ↑ и ↓ . Они используются для подстановки после приглашения >> ранее введенных строк, например, для их дублирования, исправления или дополнения. Полезно сразу усвоить следующие команды: clc – очищает экран и размещает курсор в левом верхнем углу пустого экра- на; clear – уничтожает в рабочем пространстве определения всех переменных; clear x – уничтожает в рабочем пространстве определение переменной x; clear a,b,c – уничтожает в рабочем пространстве определения переменных списка. Уничтоженная (стертая в рабочем пространстве) переменная становится не- определенной. Использовать такие переменные нельзя, такие попытки сопро- вождаются выдачей сообщений об ошибке. По мере задания одних переменных и уничтожения других рабочая область перестает быть непрерывной и содер- жит «дыры» и всякий «мусор». Во избежание непроизводительных потерь па- мяти при работе с объемными данными следует использовать команду pack, осуществляющую дефрагментацию рабочей области. 1.2.4. Элементы программирования на языке Matlab Система Matlab ориентирована на работу с матричными переменными. По умолчанию предполагается, что каждая заданная переменная – это матрица. Даже обычные константы и переменные рассматриваются в Matlab как матрицы размером 1 1 × . Простейшей конструкцией языка программирования является оператор при- сваивания: Имя_переменной = Выражение Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваивается переменной. Так, если это выражение – век- тор или матрица, то переменная будет векторной или матричной. После набора оператора в командной строке и нажатия клавиши ENTER на экран дисплея выводится вычисленное значение переменной. Для блокировки вывода результата вычислений на экран оператор нужно завершить символом ; (точка с запятой). Пример >> x=2; >> y=2; >> r=sqrt(x^2+y^2) r= 2.8284 Возможна также конструкция, состоящая только из выражения. В этом слу- чае для результата вычислений Matlab назначает переменную с именемans. Пример >> x=2; >> y=2; >> sqrt(x^2+y^2) ans= 2.8284 Для выполнения арифметических операций в системе Matlab применяются обычные символы: +(сложение), – (вычитание), * (умножение), / (деление), ^ (возведение в степень). Эти операции называются матричными, так как приме- няются и при работе с матрицами. Наряду с матричными операциями над мас- сивами можно выполнять и поэлементные операции. Для обозначения поэле- ментных операций используется . (точка), предшествующая обычной (матрич- ной) операции. Для присваивания значений массиву необходимо значения элементов мас- сива перечислить в квадратных скобках, разделяя их пробелами. Пример >> v=[1 5 3] v= 1 5 3 В этом примере мы задали вектор v (одномерный массив) со значениями элементов 1,5,3. Задание матрицы (двухмерного массива) требует указания раз- личных строк. Для различения строк используется ; (точка с запятой). Пример >> m=[1 3 2; 5 6 4; 6 7 8] m= 1 3 2 5 6 4 6 7 8 Для указания отдельного элемента массива используется имя массива и круглые скобки, внутри которых указываются индексы, разделенные запятыми. Пример >> m=[1 2 3; 4 5 6; 7 8 9]; >> m(1,1)=5; >> m(3,3)=m(1,1)+m(3,3); >> m m= 5 2 3 4 5 6 7 8 14 Matlab допускает максимум 4096 символов в строке. Если для выражения не хватает одной строки или мы не желаем заходить в невидимую область окна, то выражение можно перенести на новую строку с помощью многоточия … (3 или более точек). Комментарий в строке должен начинаться символом %. Пример >> % Пояснение переноса выражения и комментариев >> x=2; >> y=2; >> r=sqrt(x^2+ … % перенос выражения в следующую строку y^2) r= 2.8284 Для формирования упорядоченных числовых последовательностей в Matlab применяется оператор : (двоеточие): Начальное_значение: Шаг: Конечное_значение Данная конструкция порождает последовательность (массив) чисел, которая начинается с начального значения, идет с заданным шагом и завершается ко- нечным значением. Если шаг не задан, то он принимает значения 1 или -1. Пример >> i=1:6 i= 1 2 3 4 5 6 >>x=0: 0.5: 3 x= 0 0.5000 1.0000 1.5000 2.0000 2.500 3.0000 >> x=3: -0.5: 0 x= 3.000 2.5000 2.0000 1.5000 1.0000 0.5000 0 1.2.5. Справочная система Matlab Matlabимеет справочную систему, которая активизируется щелчком левой клавиши мыши на пункте ? главного менюMatlab.Справочная система позво- ляет ознакомиться с языком программирования Matlab, имеющимися в системе функциями, их назначением и описанием. 1.2.6. Создание m-файлов-сценариев ВMatlabимеется возможностьнаписать программу и сохранить ее в виде m-файла с целью последующего многократного выполнения. m-файл- сценарий, именуемый также script-файлом, представляет собой, в отличие от m-файлов-функций, последовательность команд без входных и выходных па- раметров. Он имеет следующую структуру: % Основной комментарий %Дополнительный комментарий Тело файла с любыми выражениями Созданный m-файл включается в справочную систему. Комментарии в m-файле нужны для того, чтобы ознакомиться с назначением файла через спра- вочную систему. Основной комментарий выводится при исполнении команд lookfor и help имя_каталога. Полный комментарий выводится при исполне- нии команды help имя_файла. Для создания и отладки m-файла необходимо войти в редактор-отладчик Matlab,выбрав в основном менюкомандного окнаMatlabпункт Файл, затем пункты Создать и m-файл. После раскрытия окна редактора-отладчика необ- ходимо набрать нужные команды программы и сохранить полученный файл с помощью пунктов меню Файл, Сохранить как… редактора-отладчика. Для выполнения m-файла необходимо скопировать его в буфер с помощью пунктов Правка, Выделить все и Правка, Копировать меню редактора-отладчика, вставить файл из буфера в командное окноMatlab с помощью пунктов Правка, Вставить меню командного окнаMatlab и нажать клавишу ENTER. 1.2.7. Построение графиков функций одной переменной Для построения графиков функций одной переменной ) (x f y = в Matlab имеется функция plot. График строится в декартовой системе координат по за- данным массивам значений аргумента и функции. Заданные этими массивами точки соединяются прямыми линиями. Имеется возможность изменять тип и цвет линии и тип узловых точек (маркер). Вызов этой функции осуществляется командой plot(x,y,s) где x, y – одномерные массивы одинаковой размерности; x – массив значений аргумента функции ) (x f y = ; y – массив значений функции ) (x f y = ; s – стро- ковая константа, определяющая цвет линии, маркер узловых точек и тип линии. Эта константа может содержать от одного до трех символов. Цвет линии определяется символами y (желтый), m (фиолетовый), c (голу- бой), r (красный), g (зеленый), b (синий), w (белый), k (черный). Тип узловой точки определяется символами . (точка), o (окружность), x (крестик), + (плюс), * (звездочка), s (квадрат), d (ромб), < > ^ (треугольники различной направленности), p (пятиугольник), h (шестиугольник). Тип линии определяется символами - (непрерывная), : (короткие штрихи), -. (штрихпунктир), -- (длинные штрихи). Символьную константу s можно опустить. В этом случае по умолчанию ис- пользуется непрерывная линия желтого цвета. Для построения в одном окне нескольких графиков можно использовать ко- манду plot(x1,y1,s1,x2,y2,s2,x3,y3,s3,…) Пример % графики функций sin x, cos x x=0:0.1:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,'k-o',x,y2,'r--*') В результате выполнения этой программы на экран монитора будет выведе- но графическое окно с графиками, представленными на рис. 1.1. Графики пред- ставлены в черно-белой палитре, хотя в действительности график функции cos(x) выводится красным цветом. Рис. 1.1. Графики, выполненные с помощью программы plot Созданный график можно скопировать в буфер Clipboard, активизировав в пункте Edit главного меню окна графики команду Copy Figure, с целью его дальнейшего редактирования в каком-либо графическом редакторе, например Paint. 1.2.8. Плотности вероятностей некоторых одномерных распределений 1.2.8.1. Равномерное распределение ) , ( b a U : ( ) b a R b a b x a x b x a a b x f < ∈ ⎪⎩ ⎪ ⎨ ⎧ ≥ ≤ < < − = , , , , , 0 , 1 ξ 1.2.8.2. Нормальное (гауссовское) распределение ) , ( 2 σ a N : 0 , , 2 1 ) ( 2 2 2 ) ( 2 2 > ∈ = − σ πσ σ ξ R a е x f а х 1.2.8.3. Экспоненциальное распределение ) ( λ E : ( ) 0 , 0 , 0 0 , 1 1 > ⎪⎩ ⎪ ⎨ ⎧ < ≥ = − − − λ λ λ ξ x x e x f x 1.2.8.4. Распределение 2 χ с k степенями свободы ) ( 1 k H : ( ) ⎪ ⎪ ⎩ ⎪ ⎪ ⎨ ⎧ ≤ ∈ > ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ Γ = − − 0 , 0 , , 0 , 2 2 2 1 2 1 2 x Z k x e x k x f x k ξ где ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ Γ 2 k – гамма-функция, которая определяется выражением dy e y x y x − ∞ − ∫ = Γ 0 1 ) ( Гамма-функция обладает следующими свойствами: ) ( ) 1 ( x x x Γ = + Γ , ! ) 1 ( k k = + Γ , 1 ) 2 ( ) 1 ( = Γ = Γ , π = ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ Γ 2 1 1.2.8.5. Распределение Стьюдента с k степенями свободы ) ( 1 k T : Z k k x k k k x f k ∈ ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ Γ ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ + Γ = + − , 1 2 2 1 ) ( 2 1 2 π ξ 1.2.8.6. Распределение Фишера с k m, степенями свободы ) , ( 1 k m F : ( ) ( ) ⎪ ⎪ ⎩ ⎪ ⎪ ⎨ ⎧ ≤ ∈ > + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ Γ ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ Γ ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ + Γ = + − 0 , 0 , , , 0 , 2 2 2 2 1 2 2 2 x Z m k x mx k x m k m k m k x f m k m m k ξ 1.2.8.7. Гамма-распределение ) , ( 1 b a Γ : ( ) ⎪ ⎩ ⎪ ⎨ ⎧ ≤ > > > Γ = − − 0 , 0 , 0 , 0 , 0 , ) ( 1 1 x a b x e x b a x f b x a a ξ 1.2.8.8. Одномерное распределение Уишарта ) , ( 2 1 σ k W При 2 2 σ = b , 2 k a = гамма-распределение представляет собой одномерное распределение Уишарта ) , ( 2 1 σ k W с плотностью вероятности вида ( ) ⎪ ⎪ ⎩ ⎪ ⎪ ⎨ ⎧ ≤ ∈ > > ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ Γ = − − 0 , 0 , 0 , 0 , 2 2 1 2 2 1 2 2 2 x Z k x e x k x f x k k k σ σ σ ξ Легко заметить, что при 1 2 = σ распределение ) , ( 2 1 σ k W представляет собой распределение k H 1.2.9. Средства Matlab для изучения одномерных распределений В Matlab в пакете статистических программ stats (каталог \Matlab\toolbox\stats ) имеются программы для расчета плотностей вероятности и функций распределения многих известных распределений. Имена функций для расчета плотностей вероятности оканчиваются буквами pdf (probability den- sity function)¸ а для расчета функций распределения – буквами cdf (cumulative distribution function). Функции Matlab для расчета плотностей вероятности y=chi2pdf(x,k ) – расчет значения плотности вероятности распределения 2 χ с k степенями свободы в точке x . y=exppdf(x,lambda) – расчет значения плотности вероятности экспоненци- ального распределения с параметром λ в точке x . y=fpdf(x,m,k) – расчет значения плотности вероятности распределения Фи- шера с m , k степенями свободы в точке x . y=gampdf(x,a,b) – расчет значения плотности вероятности гамма- распреде- ления с параметрами b a, в точке x . y=normpdf(x,a,sigma) – расчет значения плотности вероятности нормально- го распределения с параметрами a , σ в точке x , a – математическое ожида- ние, σ – среднее квадратичное отклонение. |