2013-11-15 3 views
0

Я делаю модель PLS с использованием пакетов «pls» и «ChemometricswithR». Я могу выполнить модель, но у меня есть проблема. Я выполнил валидацию с выездом и, если попросить коэффициенты, я смогу увидеть только уравнение (я полагаю, что среднее из всех уравнений, разработанных в результате, исключает проверку).Коэффициенты PLS с r

Есть ли способ увидеть все «n» уравнения (где n - число наблюдений в моей матрице) со всеми коэффициентами склонов?

это модель я использовал: < mod 2. -plsr (SH_uve ~ matrix_uve, ncomp = 11, данные = dataset_uve, проверка = "ЛОО", складной нож = TRUE)

ответ

0

Это было бы легче ответить, если вам дал больше информации, как вы называете функции и т. д.? Исходя из того, что вы сказали, что делаете, я предполагаю, что вы используете функции crossval() и PCA() из пакетов «pls» и «ChemometricswithR» соответственно. Я не знаком с этими функциями, но в документах указано, что для коэффициентов "(только если jackknife - TRUE) массив с коэффициентом регрессии с привязкой. Размеры соответствуют предсказателям, ответам, количеству компонентов и сегментам соответственно ". Поэтому, я бы сказал, убедитесь, что jackknife=TRUE и что вы указываете правильное количество сегментов в crossval(). Если вы используете разные функции, вы должны отредактировать свой вопрос и добавить соответствующую информацию.

+0

Я использовал эту функцию mod 2 <-plsr (SH_uve ~ matrix_uve, ncomp = 11, данные = dataset_uve, проверки = "Лоо", складной нож = TRUE) Я не использовал crossval() .... Как вы думаете, что мне делать? кроссвал с 206 сегментами (мои наблюдения)? Я не понимаю, какой сегмент находится в функции crossval() ... – user2997766

+0

Хорошо, просматривая эти функции, кажется, что существует некоторое перекрытие. Описание для состояний с переходом. «Автономная» функция перекрестной проверки для объектов mvr, и они предоставляют этот пример для crossval 'yarn.cv <- crossval (yarn.pcr, segment = 10)' где 'yarn.pcr <- pcr (плотность ~ msc (NIR), 6, data = пряжа). Поэтому, возможно, попробуйте «crossval (mod2, segment = 206, jackknife = TRUE)» и продолжайте просматривать документацию, возможно, лучший способ сделать то, что вы хотите. – CCurtis

+0

ОК, я попробовал. Я использовал: crossval (mod2, segment = 206, jackknife = TRUE), и эта ошибка появляется: Ошибка в dimnames (cvCoef) <- c (dimnames (coef (object)), list (paste («Seg»,: длина «dimnames» [3] не равна размеру массива – user2997766

0

ОК, я нашел решение.

модель я использовал это:

mod2<plsr(SH_uve~matrix_uve,ncomp=11,data=dataset_uve,validation="LOO",jackknife = TRUE) 

матрица коэффициентов находится внутри массива Mod2. Я вызвал матрицу с помощью команды:

coefficients<-mod2$validation$coefficients[,,11,] и я получил матрицу коэффициентов для всех уравнений, используемых в перекрестной проверке разрешения на выезд.

Смежные вопросы