Регрессия PLS основана на итерационных алгоритмах (например, NIPALS, SIMPLS). Ваше описание основных идей верно: мы ищем один (PLS1, одна переменная ответа / несколько предикторов) или два (PLS2, с различными режимами, множественные переменные ответа / несколько предикторов) вектор (ы) весов, (и ) скажем, чтобы сформировать линейную комбинацию (и) исходной (ых) переменной (ей) так, чтобы ковариация между Xu и Y (Yv, для PLS2) была максимальной. Давайте сосредоточимся на извлечении первой пары весов, связанных с первым компонентом. Формально критерий для оптимизации гласит:
В вашем случае является одномерным, так что это означает максимизировать
uv
maxcov(Xu,Yv).(1)
Ycov(Xu,y)≡Var(Xu)1/2×cor(Xu,y)×Var(y)1/2,st.∥u∥=1.
Поскольку не зависит от , мы должны максимизировать . Давайте рассмотрим , где данные стандартизируются индивидуально (изначально я допустил ошибку при масштабировании вашей линейной комбинации вместо и отдельно!), Так что ; однако и зависит от . В заключение,
максимальная корреляция между скрытым компонентом и переменной отклика не даст одинаковых результатов.Var(y)uVar(Xu)1/2×cor(Xu,y)X=[x_1;x_2]
x1x2Var(x1)=Var(x2)=1Var(Xu)≠1u,
Я должен поблагодарить Артура Тененхауса, который указал мне правильное направление.
Использование векторов веса единицы не является ограничительным, и некоторые пакеты ( pls. regression
в plsgenomics , основанные на коде из более раннего пакета Wehrens pls.pcr
) будут возвращать нестандартные векторы веса (но со скрытыми компонентами по-прежнему нормы 1), если требуется. Но большинство пакетов PLS будут возвращать стандартизированные , включая тот, который вы использовали, особенно те, которые реализуют алгоритм SIMPLS или NIPALS; Я нашел хороший обзор обоих подходов в презентации Барри М. Вайза « Регрессия свойств частичных наименьших квадратов (PLS)» и различия между алгоритмами , но хемометрикойuВиньетка также предлагает хорошее обсуждение (стр. 26-29). Особое значение также имеет тот факт, что большинство процедур PLS (по крайней мере, те, которые я знаю в R) предполагают, что вы предоставляете нестандартные переменные, потому что центрирование и / или масштабирование обрабатываются внутренне (это особенно важно, например, при перекрестной проверке) ).
Учитывая ограничение , вектор определяется какu′u=1u
u=X′y∥X′y∥.
Используя небольшое моделирование, его можно получить следующим образом:
set.seed(101)
X <- replicate(2, rnorm(100))
y <- 0.6*X[,1] + 0.7*X[,2] + rnorm(100)
X <- apply(X, 2, scale)
y <- scale(y)
# NIPALS (PLS1)
u <- crossprod(X, y)
u <- u/drop(sqrt(crossprod(u))) # X weights
t <- X%*%u
p <- crossprod(X, t)/drop(crossprod(t)) # X loadings
Вы можете сравнить вышеупомянутые результаты ( u=[0.5792043;0.8151824]
в частности) с тем, что дали бы пакеты R. Например, с помощью NIPALS из Хемометрика пакета (другая реализация , который я знаю , что можно найти в mixOmics пакете), мы получим:
library(chemometrics)
pls1_nipals(X, y, 1)$W # X weights [0.5792043;0.8151824]
pls1_nipals(X, y, 1)$P # X loadings
Аналогичные результаты будут получены с plsr
алгоритмом ядра PLS по умолчанию:
> library(pls)
> as.numeric(loading.weights(plsr(y ~ X, ncomp=1)))
[1] 0.5792043 0.8151824
Во всех случаях мы можем проверить, что имеет длину 1.u
При условии, что вы измените свою функцию для оптимизации на такую, которая читает
f <- function(u) cov(y, X%*%(u/sqrt(crossprod(u))))
и нормализовать u
впоследствии ( u <- u/sqrt(crossprod(u))
), вы должны быть ближе к вышеупомянутому решению.
Sidenote : В качестве критерия (1) эквивалентно
может быть найдено в качестве левого особого вектора из СВД из , соответствующего наибольшему собственному:
maxu′X′Yv,
uX′Y
svd(crossprod(X, y))$u
В более общем случае (PLS2) способ суммировать вышеизложенное состоит в том, чтобы сказать, что первые канонические векторы PLS являются наилучшим приближением ковариационной матрицы X и Y в обоих направлениях.
Ссылки
- Тененхаус, М. (1999). L'Approche PLS . Revue de Statistique Appliquée , 47 (2), 5-40.
- тер Браак, CJF и де Йонг, S (1993). Целевая функция частичной регрессии наименьших квадратов . Журнал хемометрики , 12, 41–54.
- Абди, H (2010). Частичная регрессия наименьших квадратов и проекция на регрессию скрытой структуры (PLS Regression) . Междисциплинарные обзоры Wiley: вычислительная статистика , 2, 97-106.
- Boulesteix, AL и Strimmer, K (2007). Частичные наименьшие квадраты: универсальный инструмент для анализа многомерных геномных данных . Брифинги по биоинформатике , 8 (1), 32-44.
pls
этой статье JSS есть хороший обзор пакета и регрессии PLS .