Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИАД_Ибрагимова_Шакиров_РГР

.docx
Скачиваний:
39
Добавлен:
28.08.2022
Размер:
661 Кб
Скачать

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Уфимский государственный авиационный технический университет»

Кафедра вычислительной математики и кибернетики

Расчетно-графическая работа

Система интеллектуального анализа данных

«R»

по дисциплине: «Интеллектуальный анализ данных»

Выполнили:

студенты группы МО-417

Шакиров А.Р.

Ибрагимова К.Б.

Проверила:

Харисова Э. А.

Уфа 2021

Задания

  1. Сгенерируйте вектор длины N=1000, элементами которого являются реализации нормально распределенной случайной величины с математическим ожиданием, равным 1, и стандартным отклонением, равным 0.3. Подсчитайте статистическое мат. ожидание и стандартную ошибку, не используя встроенные функции и проверьте правильность результата. Подсчитайте .95,.99-квантили. Исследуйте отклонение статистического мат. ожидания от 1 при росте N (N=1000,2000,4000,8000);

  2. Создайте фрейм данных из N=20 записей со следующими полями:

Nrow — номер записи,

Name — имя пользователя,

BirthYear — год рождения,

EmployYear — год приема на работу,

Salary — зарплата,

где Nrow изменяется от 1 до N, Name задается произвольно, BirthYear распределен равномерно на отрезке [1960,1985], EmployYear распределен равномерно на отрезке [BirthYear+18,2006], Salary для работников младше 1975 г.р. определяется по формуле Salary=(ln(2007-EmployYear) +1) *8000, для остальных Salary=(log2(2007-EmployYear) +1) *8000. Подсчитайте число сотрудников с зарплатой, большей 15000. Добавьте в таблицу поле, соответствующее суммарному подоходному налогу (ставка 13%), выплаченному сотрудником за время работы в организации, если его зарплата за каждый код начислялась согласно формулам для Salary, где вместо 2007 следует последовательно подставить каждый год работы сотрудника в организации;

  1. Напишите функцию, которая принимает на вход числовой вектор x и число разбиений интервала k (по умолчанию равное числу элементов вектора, разделенному на 10) и выполняет следующее: находит минимальное и максимальное значение элементов вектора xmin и xmax, разделяет полученный отрезок [xmin; xmax] на k равных интервалов и подсчитывает число элементов вектора, принадлежащих каждому интервалу. Далее должен строиться график, где по оси абсцисс — середины интервалов, по оси ординат — число элементов вектора, принадлежащих интервалу, разделенное на общее число точек. Проведите эксперимент на данной функции, где x — вектор длины 5000, сгенерированный из экспоненциально распределенной случайной величины, k=500. Приближение какого графика мы получаем в итоге при большом числе точек и числе разбиений?

  2. Спроектируйте и реализуйте метод наименьших квадратов.

Задание 1

Сгенерируем вектор длины N=1000, элементами которого являются реализации нормально распределенной случайной величины с математическим ожиданием, равным 1, и стандартным отклонением, равным 0.3.

Рисунок 1 – вектор длины N=1000

Подсчитаем статистическое мат. ожидание и стандартную ошибку, не используя встроенные функции и проверим правильность результата.

Математическое ожидание — одно из важнейших понятий в теории вероятностей, означающее среднее (взвешенное по вероятностям возможных значений) значение случайной величины. Вычисляется по формуле:

Стандартная ошибка статистики (обычно оценка параметра) — это стандартное отклонение ее выборочного распределения или оценка этого стандартного отклонения. Вычисляется по формуле:

Создадим функцию для подсчёта математического ожидания дискретной случайной величины с именем mO.

Рисунок 2 – описание функции mO

Проверим правильность написанной функции mO стандартной функцией mean

Рисунок 3 – проверка на правильность функции mO

Значения, вычисляемые стандартной функцией mean и написанной функцией mO совпали, исходя из этого можно сделать вывод о правильности функции mO.

Создадим функцию для подсчёта статистического мат. ожидания с именем SE.

Рисунок 4 – описание функции se

Проверим правильность написанной функции se стандартной функцией sd

Рисунок 5 – проверка на правильность функции se

Значения, вычисляемые стандартной функцией sd и написанной функцией se совпали, исходя из этого можно сделать вывод о правильности функции se.

Подсчитаем .95,.99-квантили.

Квантиль — значение, которое заданная случайная величина не превышает с фиксированной вероятностью. Если вероятность задана в процентах, то квантиль называется процентилем или перцентилем.

Рисунок 6 – Подсчёт квантилей

Исследуем отклонение статистического мат. ожидания от 1 при росте N (N=1000,2000,4000,8000).

Создадим векторы с длиной N=1000,2000,4000,8000 и фрейм данных, состоящий из стандартных ошибок и статистических мат. ожиданий векторов, чтобы построить график отклонения статистического мат. ожидания от 1.

Рисунок 7 – Описание векторов и фрейма данных

Рисунок 8 – Структура фрейма данных

Рисунок 8 – График отклонения мат. ожидания от 1 при росте N

Задание 2

Создадим следующие поля для фрейма:

Nrow — номер записи,

Name — имя пользователя,

BirthYear — год рождения,

EmployYear — год приема на работу

Рисунок 9 – Создание полей Nrow, Name, BirthYear и EmployYear

где Nrow изменяется от 1 до N, Name задается произвольно, BirthYear распределен равномерно на отрезке [1960,1985], EmployYear распределен равномерно на отрезке [BirthYear+18,2006].

Создадим поле Salary — зарплата для фрейма:

Рисунок 10 – Создание поля Salary

где Salary для работников младше 1975 г.р. определяется по формуле Salary=(ln(2007-EmployYear) +1) *8000, для остальных Salary=(log2(2007-EmployYear) +1) *8000. Salary является значением зарплаты сотрудника за один год работы, а sSum за весь период работы сотрудника.

Создадим фрейм данных:

Рисунок 11 – Создание фрейма данных

Рисунок 12 – Фрейм данных

Подсчитаем число сотрудников с зарплатой, большей 15000.

Рисунок 13 – Создание функции sumMore15 для подсчета сотрудников с ЗП больше 15000

Рисунок 14– Результат выполнения функции sumMore15

Добавим в таблицу поле, соответствующее суммарному подоходному налогу (ставка 13%), выплаченному сотрудником за время работы в организации, если его зарплата за каждый код начислялась согласно формулам для Salary, где вместо 2007 следует последовательно подставить каждый год работы сотрудника в организации;

Создадим вектор, который будет содержать подоходный налог Tax за последний год.

Рисунок 15 – Создание вектора tax

Рисунок 15 – добавление вектора tax во фрейм данных

Создадим вектор, который будет содержать суммарный подоходный налог TaxSum за все годы работы.

Рисунок 16 – Создание вектора taxSum

Рисунок 17 – добавление вектора taxSum во фрейм данных

Задание 3

Напишем функцию, которая принимает на вход числовой вектор x и число разбиений интервала k (по умолчанию равное числу элементов вектора, разделенному на 10) и выполняет следующее: находит минимальное и максимальное значение элементов вектора xmin и xmax, разделяет полученный отрезок [xmin; xmax] на k равных интервалов и подсчитывает число элементов вектора, принадлежащих каждому интервалу. Далее должен строиться график, где по оси абсцисс — середины интервалов, по оси ординат — число элементов вектора, принадлежащих интервалу, разделенное на общее число точек.

Рисунок 18 – создание функции showPlot

Проведём эксперимент на данной функции, где x — вектор длины 5000, сгенерированный из экспоненциально распределенной случайной величины, k=500.

Рисунок 19 – Результат исполнения функции showPlot с параметрами x=5000, k=500

Рисунок 19 – Результат исполнения функции showPlot с параметрами x=50000, k=5000

При большом числе точек и числе разбиений мы получаем приближение графика плотности вероятности экспоненциального распределения при λ=1.

Задание 4

Спроектируем и реализуем метод наименьших квадратов.

Метод наименьших квадратов — математический метод, применяемый для решения различных задач, основанный на минимизации суммы квадратов отклонений некоторых функций от искомых переменных.

В качестве данных выберем уровень безработицы Швеции за 1980–1990.

Рисунок 20 – данные уровня безработицы Швеции за 1980–1990

Создадим функцию, реализующую метод наименьших квадратов.

Рисунок 21 – Реализация функции метода наименьших квадратов

Рисунок 22 – Графика функции

Рисунок 23 – Результат функции

С помощью метода наименьших квадратов, была выявлена линейная зависимость уровня безработицы Швеции от года, выраженная функцией y = -0.17*x + 331,7.