2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Предсказание в PCR
Сообщение03.07.2019, 16:08 


02/07/19
52
Здравствуйте.
Интересует вопрос по вычислению предсказываемых значений.
Допустим я получил матрицу счетов T и мне надо построить регрессию между T и вектором Y. Я для этого раньше использовал классическую формулу из ММНК:
$$b=(T^TT)^{-1}T^TY$$
Буквально на днях попалось на глаза свойство ортогональных матриц
$$A^TA=I$$
Помню, что матрица счетов является ортогональной. То есть фактически я делал при вычислениях вектора коэффициентов лишнюю операцию? и выражение (1) можно было упростить?
Попробовал найти чему равно $T^TT$ в Wolfram Mathematica на реальной спектральной матрице (250х2048). У меня получилась квадратная матрица с собственными значениями в диагонали.
Изображение

Собственные значения имеют большие порядки. В связи с этим рискну предположить, что все остальные позиции вне главной диагонали могут быть нулями, и в данном примере это просто накопленная ошибка для чисел с плавающей точкой. Или нет? Судя по позициям (1,2) и (2,1) или (3,2) и (2,3) матрица симметричная? Тогда получается, что выражение (1) упростить нельзя? А как же свойство (2) для ортогональных матриц?

 Профиль  
                  
 
 Re: Предсказание в PCR
Сообщение03.07.2019, 21:48 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Она не ортогональная. Хотя столбцы её ортогональны. Но не ортонормированы, из-за умножения на собственные числа. То есть обращается там некоторая диагональная матрица. Собственно, достаточно нормировать столбцы, и ничего обращать не надо будет, $b=T^Ty$

 Профиль  
                  
 
 Re: Предсказание в PCR
Сообщение04.07.2019, 00:09 


02/07/19
52
Маленький опыт в матричных уравнениях, но попробую. Т.е. нормирование можно записать так:
$$T_n=\operatorname{diag}(\Lambda)^{-1}T$$
где $\Lambda$ - вектор из собственных чисел, получаемых при разложении исходной матрицы на главные компоненты. Устоявшееся обозначение не знаю, пишу пока так, видел такие буквы в темах про SVD.
Тогда уравнение регрессии с учетом нормирования и умножения слева должно выглядеть так:
$$\operatorname{diag}(\Lambda)^{-1}Y=T_nb$$
Тогда
$$b=T_n^T\operatorname{diag}(\Lambda)^{-1}Y$$
Вроде бы в одной формуле и сидят две диагональные нормирующие матрицы (одна транспонированная), но дальше кажется ничего сделать нельзя. Или можно? Ошибок вроде бы нет? В любом случае обращение диагональной матрицы значительно быстрее вычисляется чем обратная матрица в общем случае.

P.S. Попробовал в Wolfram Mathematica, сразу нашел несколько ошибок. Умножать надо справа. И нормировать на соответствующее число нужно каждый столбец матрицы T, а при такой форме записи матрицы для нормирования $\operatorname{diag}(\Lambda)^{-1}$ нормируются строки. Итоговое выражение для поиска b должно быть другим.

 Профиль  
                  
 
 Re: Предсказание в PCR
Сообщение04.07.2019, 01:22 


02/07/19
52
Запутался. В том числе с размерами. Размер матрицы $T(n\times A)$, размер вектора $Y$ равен $n$.
Размер у матрицы нормирования по количеству главных компонент. Для сохранения равенства над левой и правой частью уравнений должны быть проведены одинаковые операции. Не могу сообразить как должна матрица выглядеть, нужно думать.

 Профиль  
                  
 
 Posted automatically
Сообщение04.07.2019, 01:52 
Заслуженный участник


09/05/12
25179
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
по следующим причинам:

- неправильно набраны формулы/обозначения (краткие инструкции: «Краткий FAQ по тегу [math]» и видеоролик Как записывать формулы).

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 Профиль  
                  
 
 Posted automatically
Сообщение04.07.2019, 19:14 
Заслуженный участник


09/05/12
25179
 i  Тема перемещена из форума «Карантин» в форум «Помогите решить / разобраться (М)»

 Профиль  
                  
 
 Re: Предсказание в PCR
Сообщение04.07.2019, 19:35 
Заслуженный участник


10/01/16
2318
Евгений Машеров в сообщении #1403035 писал(а):
Хотя столбцы её ортогональны.

Разве? Ведь любая симметричная положительно определенная представима в таком виде, но столбцы ее вовсе не обязаны быть ортогональными (да возьмем любую хорошую, да чуток увеличим ее диагональный элемент - ортогональность - даже если и была - поломается). Или я чего-нибудь не понял?

-- 04.07.2019, 21:39 --

Другое дело, что решать систему линейных уравнений с такой матрицей (буде она даже шибко здоровенная) - можно эффективными алгоритмами (ну, типа "метод сопряженных градиентов")...

 Профиль  
                  
 
 Re: Предсказание в PCR
Сообщение04.07.2019, 21:23 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Здесь проще всего идти через связь главных компонент и сингулярного разложения.
$X=U\Lambda V^T$
Тогда$T=U\Lambda$
Матрица U ортогональна. Но после домножения на диагональную матрицу собственных значений столбцы по-прежнему ортогональны, но вот норма их уже не единичная. Если работаем с нормированными к единичной норме столбцами T, то регрессия
$b=T^Ty$, но если ненормированные, то
$b=(T^TT)^{-1}T^Ty=(\Lambda U^TU\Lambda)^{-1}T^Ty=\Lambda^{-2}T^Ty$
Ну, а обратная к диагональной считается не просто, а очень просто - обратные к диагональным элементы.
(Да, на всякий случай - лямбды здесь сингулярные числа, а их квадраты - собственные матрицы $X^TX$)

 Профиль  
                  
 
 Re: Предсказание в PCR
Сообщение05.07.2019, 09:13 
Заслуженный участник


10/01/16
2318
ПонЯл: я не знаю, что такое "матрица счета", и какое отношение она имеет с непонятным $X$...

 Профиль  
                  
 
 Re: Предсказание в PCR
Сообщение05.07.2019, 10:10 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Честно говоря, я тоже попервости запутался. Потому как в русских текстах писали длинно "матрица значений главных компонент", а в английских scores matrix. И только "обратным переводом" понял...

 Профиль  
                  
 
 Re: Предсказание в PCR
Сообщение05.07.2019, 19:23 


02/07/19
52
Матрицы счетов и нагрузок - эту терминологию так принято употреблять у хемометриков - Scores, Loadings.
Спасибо за помощь.
Попробую в Wolfram Mathematica погонять выражение для коэффициента $b$ на реальных спектрах. Я исходную спектральную матрицу раскладываю по алгоритму NIPALS, он достаточно прост в программировании и доступно описан.
Есть сомнения, что так сразу всё получится. Вот тут на стр. 6 пишут, что в результате разложения NIPALS вычисляет собственные числа. По SVD числа получаются сингулярные. Мне кажется из логики Главных компонент, что именно здесь это одно и то же. Если нет, то в моем варианте дешевле будет или сразу на неполный SVD переходить, или пользоваться классической формулой для коэффициентов регрессии.
Извиняюсь за путаницу в терминологии. Я по образованию химик, в наши времена из матричных вычислений был только один семестр на первом курсе. Сейчас приходится вникать на популярно разжеванном материале.

 Профиль  
                  
 
 Re: Предсказание в PCR
Сообщение05.07.2019, 21:04 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Собственные числа матрицы $X^TX$ равны квадратам сингулярных чисел матрицы X

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group