Вычислительные алгоритмы построения регрессии
[20/55%]Напишите программу, реализующую алгоритм Грама-Шмидта (алгоритм 11.3 в разделе 11.3). Опробуйте свою программу на данных Longley и на полиномиальных приближениях, описанных в примере 11.3 в разделе 11.8.4. Сравните свои результаты с результатами в примерах 11.2 и 11.3.
Проверьте формулы для алгоритма обновления в разделе 11.7.
Проведите несколько экспериментов, чтобы сравнить время выполнения регрессии, выполненной методом Холецкого, с регрессией, выполненной с помощью SVD. Дают ли приведённые в тексте подсчёты числа операций разумное представление об относительной скорости этих двух методов?
Вычислите алгебраически решение системы линейных уравнений, соответствующей матрице
используя гауссово исключение с частичным выбором ведущего элемента и без него. Покажите, что если частичный выбор ведущего элемента не используется, решение вычисляется как
а при использовании частичного выбора ведущего элемента — как . Прокомментируйте точность этих двух методов, если очень мало.
Покажите, что применение одного шага гауссова исключения к матрице даёт матрицу
где — центрированная версия .
Проверьте (11.15) и, следовательно, покажите, что задаётся -м элементом матрицы .
Если — разложение Холецкого матрицы , покажите, что
Пусть — векторы, построенные в алгоритме 11.3. Покажите, что — ортонормированный базис для при .
Покажите, что верхнетреугольная матрица с положительными диагональными элементами невырождена. Также докажите, что обратная к верхнетреугольной матрице с единичными диагональными элементами также является верхнетреугольной с единичными диагональными элементами.
Выведите формулы (11.23), (11.24) и (11.25).
Докажите, что в начале этапа алгоритма MGSA столбцы ортогональны, ортогональны и порождают первые столбцов исходной матрицы.
Покажите, что произведение ортогональных матриц ортогонально.
Покажите, что если и определены как в (11.36), то предсказанные значения задаются формулой
Пусть задано формулой и . Покажите, что существует диагональная матрица и быстрый ротатор вида (11.45), такие что . Покажите, что
где и .
Докажите, что число обусловленности задаётся формулой (11.61).
Повторите вычисления из примера 11.3, используя функцию вместо . Сохраняется ли при этом ранжирование методов? Пример кода на R приведён после упражнения 3 ниже.
Измените приведённый ниже код так, чтобы подсчитывать число операций с плавающей точкой (flops), требуемых для выполнения каждого алгоритма. Насколько точны формулы, приведённые в таблице 11.2? ####################################################### # MGSA function: calculates Q and R^{-1} of QR decomp mgsa<-function(A){ n<-dim(A)[1] p<-dim(A)[2] GG<-diag(p) for(i in 1:(p-1)){ a<-A[,i] denom<-sum(aa) G<-numeric(p) for(j in (i+1):p){ num<-sum(A[,j]a) G[j]<- -num/denom A[,j]<-A[,j]+aG[j] } GG<-GG + outer(GG[,i],G) } list(W=A,G=GG) } ####################################################### #Householder function: calculates R of QR decomp of A house<-function(A){ n<-dim(A)[1] p<-dim(A)[2] for(j in 1:p){ indices<-j:n # construct Householder vector u<-numeric(n) u[indices]<-A[indices,j] unorm1<-sqrt(sum(u[indices]^2)) unorm2<-sum(u[indices[-1]]^2) uu<-u[j] u[j]<-if(uu<0)uu-unorm1 else -unorm2/(uu+unorm1) gamma<-0.5(unorm2 + u[j]^2) # multiply by householder matrix A[indices,j]<-0 A[j,j]<-unorm1 if(j==p)return(A) for(l in (j+1):p){ k<-sum(A[indices,l]u[indices])/gamma A[indices,l]<-A[indices,l] - ku[indices] } } A } ####################################################### # Givens function: calculates R of QR decomp of A givens<-function(A){ n<-dim(A)[1] p<-dim(A)[2] for(j in 1:(p-1)){ indices<-j:p for(i in (j+1):n){ sqr<-sqrt(A[j,j]^2+A[i,j]^2) cc<-A[j,j]/sqr ss<-A[i,j]/sqr temp<-ccA[j,indices] + ssA[i,indices] A[i,indices]<- -ssA[j,indices] + ccA[i,indices] A[j,indices]<-temp } } A }
Предположим, что мы подгоняем регрессию методом наименьших квадратов к подмножеству из имеющихся наблюдений. Пусть — подматрица матрицы , соответствующая наблюдениям из , пусть — -й остаток из этой подгонки, , и пусть . Покажите, что если мы удаляем наблюдение и добавляем наблюдение , то изменение остаточной суммы квадратов равно
Используя результат упражнения 1 выше, напишите функцию на R, реализующую метод Хокинса для вычисления приближения к оценке LTS.
Напишите функцию на R, реализующую алгоритм Рупперта для вычисления приближения к оценке LTS. Вам потребуется обратиться к работе Ruppert [1992] за деталями алгоритма. Разработайте небольшую симуляцию для сравнения алгоритма Рупперта с алгоритмом Хокинса.