Цитата(nokh @ 14.02.2017 - 10:14)

Разберусь с PLS (в R - в частности) - отпишусь в эту ветку.
C PLS-регрессией по алгоритму NIPALS всё более-менее ясно. В примере топикстартера 93,3% дисперсии набора Х объясняют 47,9% дисперсии набора Y если брать только первую компоненту. Набор Х очень хорошо прогнозирует Y1 (коэффициент детерминации R2=0,946), Y2 (0,946) и Y3 (0,881) и безобразно Y4 (0,096) и Y6 (0,072). Даже если брать все три компоненты ситуация с Y4, Y5 и Y6 неважная (R2 около 0,15). Это значит, что для надёжного прогноза химии (Y) одной рецептуры (X) недостаточно, нужно учитывать ещё что-то (может физические факторы, продолжительность процесса и т.п.). В целом же и по одной компоненте весьма похоже прогнозируется:
y1 y2 y3 y4 y5 y6 y7
103,3 -3,3 48,1 83,8 7,8 8,3 23,0
84,6 15,4 68,7 77,5 11,3 11,1 16,6
77,9 22,1 76,2 75,3 12,6 12,1 14,3
72,0 28,0 82,6 73,3 13,7 13,0 12,3
62,3 37,7 93,3 70,0 15,5 14,4 9,0
С R тоже есть прогресс, но пока он позволил только разочароваться в пакете pls:
1) результаты по алгоритму NIPALS (method="oscorespls") не совпадают с расчётами в других пакетах (Statistica, Tanagra)
2) результаты для 4 разных методов "kernelpls", "widekernelpls", "simpls", "oscorespls" дают одинаковые результаты (по крайней мере для этого примера)
3) для одной компоненты не может выдать summary (остальное считает):
> res.nipals<-mvr(Y ~ X, ncomp = 1, method = "oscorespls", scale = TRUE)
> summary(res.nipals)
Data: X dimension: 5 3
Y dimension: 5 7
Fit method: oscorespls
Number of components considered: 1
TRAINING: % variance explained
Ошибка в dimnames(tbl) <- list(c("X", yvarnames), paste(1:object$ncomp, :
длина 'dimnames' [1] не равна протяженности многомерной матрицы
4) вместо регрессионных коэффициентов предикторов пакет выдаёт их умноженными на стандартные отклонения предикторов.
Буду смотреть другие пакеты с PLSR.