ЛР1_КОЭД_Ибрагимова_МО417
.docxМинистерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Уфимский государственный авиационный технический университет»
Кафедра вычислительной математики и кибернетики
Лабораторная работа №1
по дисциплине: «Компьютерная обработка экспериментальных данных»
«Корреляционный анализ»
Выполнили:
студенты группы МО-417
Ибрагимова К.Б.
Проверила:
Харисова Э. А.
Уфа 2022
Задание
Выполнить работу для конкретной матрицы Z и результаты расчетов вывести на печать.
Порядок выполнения работы
Пусть дана Z — матрица данных размером N×p.
Составить программу для вычисления
средних по столбцам, дисперсий по столбцам;
стандартизованной матрицы;
ковариационной матрицы;
корреляционной матрицы.
Проверить гипотезу о значимости коэффициентов корреляции
между столбцами матрицы данных.
Описание метода
Пусть дана матрица данных Z(N×p).
среднее значение j-го признака
ковариационная матрица, где
– стандартизованная матрица: , где
– корреляционная матрица
Оценка значимости коэффициента корреляции
Пусть имеются статистические гипотезы:
связи между признаками х и у нет.
то есть связь. Здесь коэффициент корреляции между х и у.
α— вероятность ошибки первого рода — вероятность отвергнуть верную гипотезу,
β — вероятность ошибки второго рода — вероятность принять неверную гипотезу.
Надо сформулировать такое правило, чтобы α и β были достаточно малыми. В математической статистике показано, что статистика
при условии, что H0 справедлива, подчиняется закону распределения Стьюдента.
Алгоритм проверки статистической гипотезы о значимости коэффициента корреляции
Пусть имеются экспериментальные данные
Вычисляем - выборочный коэффициент корреляции.
Задаемся приемлемой для нас вероятностью ошибки α, пусть α=0,05.
Вычисляем статистику t.
По выбранному α и числу степеней свободы f=n-2 определяем tтабличное.
Правило вынесения решения: если |tрасч| ≥ tтабл, то справедлива гипотеза H1, в противном случае — H0, а отличие от нуля коэффициента корреляции обусловлено случайными причинами.
Ход работы
Дана матрица данных Z размером N×p согласно варианту 5.
Рисунок 1 – Матрица данных Z
Для выполнения задания разработаем программу в среде разработки RStudio на языке R.
Вычислим средние по столбцам данной матрицы данных Z, для этого определим функцию average:
average <- function (table) {
N = nrow(table)
p = ncol(table)
result = c()
for (j in 1:p) {
avg = 0
for (i in 1:N) {
avg = avg + (table[[i,j]] / N)
}
result = append(result, avg)
}
return(result)
}
average_columns = average(Z)
print(average_columns)
Рисунок 2 – Результат выполнения функции average
Вычислим дисперсии по столбцам данной матрицы данных Z, для этого определим функцию dispersion:
dispersion <- function (table) {
N = nrow(table)
p = ncol(table)
result = c()
for (j in 1:p) {
disp = 0
for (i in 1:N) {
disp = disp + (
((table[[i,j]] - average_columns[j])**2) / N
)
}
result = append(result, disp)
}
return(result)
}
dispersion_columns = dispersion(Z)
print(dispersion_columns)
Рисунок 3 – Результат выполнения функции dispersion
Вычислим стандартизованную матрицу данной матрицы данных Z, для этого определим функцию standatization:
standatization <- function (table, i, j) {
N = nrow(table)
p = ncol(table)
result =
(table[[i,j]] - average_columns[j]) / (dispersion_columns[j]**0.5)
return(result)
}
standatization_matrix = matrix(NA, nrow = N, ncol = p)
for (i in 1:N) {
for (j in 1:p) {
standatization_matrix[[i,j]] = standatization(Z, i, j)
}
}
print(standatization_matrix)
Рисунок 4 – Результат выполнения функции standatization
Вычислим ковариационную матрицу данной матрицы данных Z, для этого определим функцию covariance:
covariance <- function (table, i, j) {
N = nrow(table)
result = 0
for (k in 1:N) {
result = result + (
(table[[k,i]] - average_columns[i]) * (table[[k,j]] - average_columns[j]) / N
)
}
return(result)
}
covariation_matrix = matrix(NA, nrow = p, ncol = p)
for (i in 1:p) {
for (j in 1:p) {
covariation_matrix[[i,j]] = covariance(Z, i, j)
}
}
print(covariation_matrix)
Рисунок 5 – Результат выполнения функции covariance
На рисунке 5 в получившейся матрице отображены коэффициенты ковариации между i и j столбцами матрицы данных Z.
Вычислим корреляционную матрицу данной матрицы данных Z, для этого определим функцию correlation:
correlation <- function (table, i, j) {
N = nrow(table)
result = 0
for (k in 1:N) {
result = result + (
(standatization_matrix[[k, i]] * standatization_matrix[[k, j]]) / N
)
}
return(result)
}
correlation_matrix = matrix(NA, nrow = p, ncol = p)
for (i in 1:p) {
for (j in 1:p) {
correlation_matrix[[i,j]] = correlation(Z, i, j)
}
}
print(correlation_matrix)
Рисунок 6 – Результат выполнения функции correlation
На рисунке 6 в получившейся матрице отображены коэффициенты корреляции между i и j столбцами матрицы данных Z.
Проверим гипотезу о значимости коэффициентов корреляции между столбцами матрицы данных Z, для этого определим функцию significance_correlation:
significance_correlation <- function(table, i, j) {
if (i == j) {
return(NA)
}
alpha = 0.05
N = nrow(table)
# получаем t табличный
t_table = qt(p = 1-alpha, df = N - 2)
r = correlation_matrix[[i,j]]
t = (r * (N - 2)**0.5) / (1 - r**2)**0.5
result = if(abs(t) < t_table) 1 else 0
return(result)
}
significance_matrix = matrix(NA, nrow = p, ncol = p)
for (i in 1:p) {
for (j in 1:p) {
significance_matrix[[i,j]] = significance_correlation(Z, i, j)
}
}
print(significance_matrix)
Рисунок 7 – Результат выполнения функции significance_correlation
На рисунке 7 в получившейся матрице единицы обозначают, что гипотеза о значимости коэффициентов корреляции между i и j столбцами матрицы данных Z принимается.
Вывод
При выполнении лабораторной работы была составлена программа для вычисления: средних по столбцам, дисперсий по столбцам, стандартизованной матрицы, ковариационной матрицы, корреляционной матрицы данной матрицы данных и для проверки гипотезы о значимости коэффициентов корреляции между столбцами матрицы данных.