![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
Здравствуйте, проконсультируйте, пожалуйста. Надеюсь здесь кто-нибудь знает R.
1. Какое минимальное количество наблюдений нужно, чтобы построить нейросеть? У меня 7 независимых переменных и 3 зависимых (все метрические). Между ними надо найти закономерности. Регрессия не вариант. Что-то КМД слабый. 2. Дело в том, что я работаю на производстве, где добывать данные крайне сложно, вернее дорого, там по-минимуму наблюдений. У меня в наборе всего 5 наблюдений. Есть ли какие-то хитрые способы грамотно и математически обосновано сгенерировать наблюдения для переменных, а уже потом строить нейросеть на них. Спасибо всем за помощь. |
|
![]() |
![]() |
![]() |
![]()
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 231 Регистрация: 27.04.2016 Пользователь №: 28223 ![]() |
Здравствуйте, проконсультируйте, пожалуйста. Надеюсь здесь кто-нибудь знает R. 1. Какое минимальное количество наблюдений нужно, чтобы построить нейросеть? У меня 7 независимых переменных и 3 зависимых (все метрические). Между ними надо найти закономерности. Регрессия не вариант. Что-то КМД слабый. 2. Дело в том, что я работаю на производстве, где добывать данные крайне сложно, вернее дорого, там по-минимуму наблюдений. У меня в наборе всего 5 наблюдений. Есть ли какие-то хитрые способы грамотно и математически обосновано сгенерировать наблюдения для переменных, а уже потом строить нейросеть на них. Спасибо всем за помощь. Добрый день. К сожалению, информация, которую Вы предоставили, крайне скудна, что-бы по ней можно было давать какие-то рекомендации. 1. Итак, что Вы реально сообщили: имеется 7+3 переменных и 5 (ПЯТЬ!!!!) наблюдений. При этом "регрессия - не вариант". Я так понял, вы строите три регрессионные модели в каждой из которых 7 независимы и одна зависимая переменная. По пяти точкам! И получаете большую ошибку предсказания. Т.е. это не метод плох, это у Вас нет необходимой информации, для корректного построения модели выбранного типа. Вопрос - каким боком может помочь всемогущая нейронная сеть, если информации нет в самих данных? Может, просто взять нелинейную регрессионную модель? (Просто ради примера, что-бы было понятно - нейронная сеть без промежуточных слоев, содержащая только линейные элементы и обучаемая с помощью линейной оптимизации есть ни что иное, как традиционная регрессионная модель, та самая, которая у Вас "не сработала"). 2. Непонятно, какую вообще задачу Вы ставите. Мы не знаем, и даже не можем догадаться. Может - вы хотите выполнить задачу классификации? Или кластеризации? Или предикативный анализ?? В любой постановке при Ваших данных (я имею ввиду их мизерное количество) можно попытаться применить методы, которые используются в соответствующих разделах Data Science без привлечения ИНС, причем в вашем случае эти методы могут сработать гораздо эффективнее. Другой вопрос - точность, которую Вы получите, но тут уж что есть. Хотите точности - ищите дополнительные данные. 3. Имея 5 замеров в 8-мерном пространстве измерения надеяться на "способы грамотно и математически обосновано сгенерировать наблюдения" - не приходится. 4. "Какое минимальное количество наблюдений нужно, чтобы построить нейросеть?" - ответ совершенно очевиден - чем больше, чем лучше. Именно там, где данных слишком много и "традиционные методы" просто захлебываются, имеет смысл применять ИНС. (см. выше пример с линейной регрессией). 5. Вообще непонятно, каким боком тут знания R, но да, сильно подозреваю, что тут есть "кто-нибудь", не просто знающий, но и использующий R. |
|
![]() |
![]() |
![]()
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
1. Виноват. Второпях перепутал. 3 независ , 7 завис. переменных. Простите
2. Т.о. зная 3 физических показателя нужно предсказать выходные, а именно химические компоненты продукта 3. Ну приблизительно, аппроксимация повсюду:) 4. я понял, что нужно очень много 5. коварный R нужен, потому что я на нем буду все делать, а далее именно он будет внедрен в производство для контроля. Это уже вопрос к программерам. В таком случае мне нужно только подсказка по 3 вопросу. пусть и с аппроксимацией |
|
![]() |
![]() |
![]()
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 231 Регистрация: 27.04.2016 Пользователь №: 28223 ![]() |
1. Виноват. Второпях перепутал. 3 независ , 7 завис. переменных. Простите 2. Т.о. зная 3 физических показателя нужно предсказать выходные, а именно химические компоненты продукта 3. Ну приблизительно, аппроксимация повсюду:) 4. я понял, что нужно очень много 5. коварный R нужен, потому что я на нем буду все делать, а далее именно он будет внедрен в производство для контроля. Это уже вопрос к программерам. В таком случае мне нужно только подсказка по 3 вопросу. пусть и с аппроксимацией Есть такая книга "В.К. Шитиков, Г.С. Розенберг. Рандомизация и бутстреп: статистический анализ в биологии и экологии с использованием R". Попробуйте посмотреть. Думаю, найдете там много чего интересного и полезного на будущее. И по теме "как хитрым способом грамотно и математически обосновано сгенерировать наблюдения для переменных" и по теме "R" (за одно и некоторые иллюзии развеете ![]() P.S. Кстати, зачем Вам R я так и не понял. При пяти точках и трех переменных - достаточно EXCEL. Или даже калькулятора ![]() Сообщение отредактировал passant - 12.02.2017 - 15:28 |
|
![]() |
![]() |
![]()
Сообщение
#5
|
|
Группа: Пользователи Сообщений: 1219 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 ![]() |
2. Т.о. зная 3 физических показателя нужно предсказать выходные, а именно химические компоненты продукта Для таких задач в хемометрии традиционно применяются варианты PLS-регрессии. Погуглите на темы PLS in chemometrics, PLS in R. Вот первый попавшийся пакет: ftp://cran.r-project.org/pub/R/web/packag...cs-vignette.pdf Методы и пакеты требуют данных. Может лучше экстрасенс? |
|
![]() |
![]() |
![]()
Сообщение
#6
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
Без экстрасенсов и прочих жуликов:) Только чистые данные))
|
|
![]() |
![]() |
![]()
Сообщение
#7
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
Без экстрасенсов и прочих жуликов:) Только чистые данные)) Резко выпадает пятая точка, пока "вокруг неё" нет подтверждающих любые модели очень слабы получаться будут... А так, 4 точки на одной линии лежат. Но надо понимать, что размерности хватит только для предсказания некого "агрегата по y" (ну "изоповерхность" нарисовать не более). Сообщение отредактировал p2004r - 13.02.2017 - 11:48 ![]() |
|
![]() |
![]() |
![]()
Сообщение
#8
|
|
Группа: Пользователи Сообщений: 1219 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 ![]() |
Резко выпадает пятая точка, пока "вокруг неё" нет подтверждающих любые модели очень слабы получаться будут... Не факт. В PCA вы вращали два набора одновременно. А если использовать constrained ordination типа Redundancy Analysis (RDA) или Partial Least Squares Regression (PLS, разные варианты), то пространство зависимых переменных будет вращаться относительно пространства независимых отдельно. При таком подходе шансов найти проекцию с более близкой к линейной зависимостью куда выше. Считается, что для объяснения дисперсии зависимых показателей от независимых точнее RDA, но для прогноза лучше PLS, которая является несколько смещённым вариантом RDA. Для представленного в посте набора достаточно одной компоненты, зависимость выглядит как S-образная загогулина, но достаточно близко к линии (делал не в R). К сожалению, пока сам разобрался с PLS не полностью, осваиваю. Но и детские болезни в пользовании R: не получается пока разбить data.frame на 2 списка в пределах одного набора data, чтобы назначить один X другой Y (типа как data(oliveoil) в пакете pls). Разберусь с PLS (в R - в частности) - отпишусь в эту ветку. Пока отхожу от шока: оказывается в хемометрии 5-10 образцов с десятками независимых и десятками зависимых показателей - не редкость. Так, что и без экстрасенсов 5 наблюдений может какбэ хватить... Сеть строить смысла нет, по крайней мере на практике используют варианты PLS. Сообщение отредактировал nokh - 14.02.2017 - 08:22 |
|
![]() |
![]() |
![]()
Сообщение
#9
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
Не факт. В PCA вы вращали два набора одновременно. А если использовать constrained ordination типа Redundancy Analysis (RDA) или Partial Least Squares Regression (PLS, разные варианты), то пространство зависимых переменных будет вращаться относительно пространства независимых отдельно. При таком подходе шансов найти проекцию с более близкой к линейной зависимостью куда выше. Считается, что для объяснения дисперсии зависимых показателей от независимых точнее RDA, но для прогноза лучше PLS, которая является несколько смещённым вариантом RDA. Для представленного в посте набора достаточно одной компоненты, зависимость выглядит как S-образная загогулина, но достаточно близко к линии (делал не в R). К сожалению, пока сам разобрался с PLS не полностью, осваиваю. Но и детские болезни в пользовании R: не получается пока разбить data.frame на 2 списка в пределах одного набора data, чтобы назначить один X другой Y (типа как data(oliveoil) в пакете pls). Разберусь с PLS (в R - в частности) - отпишусь в эту ветку. Пока отхожу от шока: оказывается в хемометрии 5-10 образцов с десятками независимых и десятками зависимых показателей - не редкость. Так, что и без экстрасенсов 5 наблюдений может какбэ хватить... Сеть строить смысла нет, по крайней мере на практике используют варианты PLS. 1. Там прямо в pdf на странице пакета показано как в дата фрейм поместить две матрицы. 2. Это простые проекции данных (геометрия), все работает пока хватает размерности (даже в пределе, когда одна точка на размерность приходиться). То что это все кто то описывает как "распределения" ничего не значит для исходной постановки задачи. 3. Я не думаю что PLS в данном случае покажет что то лучше, тут зависимость и так предельно близка к линейной (s образность целиком вопрос единиц измерения у показателей). Но если сегодня не будут мешать попробую. PS результаты pls для двух компонент (чисто что бы графика была богаче, поскольку по нагрузкам там одна только) Сообщение отредактировал p2004r - 14.02.2017 - 10:31 ![]() |
|
![]() |
![]() |
![]()
Сообщение
#10
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
Для химических смесей бывают исключения, когда данные собрать просто дорого, а так если есть деньги, то хоть 500 млн наблюдений
Но я читаю книжку именно по бутстрепу. Кстати, вопрос к знающим, а Монте-Карло тут применим для моделирования? |
|
![]() |
![]() |
![]()
Сообщение
#11
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
и да приветствуются любые варианты кода, может из пазлов создам что то целое.
При это горе-моя голова забыла сказать, что рецепты разные бывают. плюс это ещё классификационная задача, но я её решу, разбив анализ на категории. Но тем не менее, а стоит ли и фактор рецепта включать, у меня их 50. 50. и у каждого свои наблюдения. Тоже по 5. Рецепты не водка, их лучше не объединять. бодяжить тут нельзя. Сообщение отредактировал Fedor_Petuhov - 14.02.2017 - 15:28 |
|
![]() |
![]() |
![]()
Сообщение
#12
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
у меня их 50. 50. и у каждого свои наблюдения. Тоже по 5. Ну вот когда всё вспомните и сформулируете техзадание (и форму оплаты за объем в техзадании ![]() ![]() |
|
![]() |
![]() |
![]()
Сообщение
#13
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
Тех задание не нужно. Непосредственно по программированию нейросети, сможете подсказать?
У нас 3 независ. пер, 1 пер это класс рецепта и зависимые переменные. Некоторые убрал Как с помощью функции predict, сделать так, чтобы, если я указал только класс химического состава, то программа показывает наиболее точное соотношение независимых и зависимых переменных? типа predict(a,mymodel) ## x1=100 ## x2=200 ## X3=400 ## Y1=101 ## y2=102 И да корректно ли так указывать категориальную переменную в зависимых? mydata <- <path to data> maxs <- apply(data, 2, max) mins <- apply(data, 2, min) scaled <- as.data.frame(scale(mydata, center = mins, scale = maxs - mins)) train_ <- scaled[index,] test_ <- scaled[-index,] library(neuralnet) neuralnet(y1+y2+y3+classvar~x1+x2+x3, infert, err.fct="ce", linear.output=FALSE, likelihood=TRUE)) |
|
![]() |
![]() |
![]()
Сообщение
#14
|
|
Группа: Пользователи Сообщений: 127 Регистрация: 15.12.2015 Пользователь №: 27760 ![]() |
neuralnet(y1+y2+y3+classvar~x1+x2+x3, infert, err.fct="ce", linear.output=FALSE, likelihood=TRUE)) Попробуйте, и нам расскажете. ![]() |
|
![]() |
![]() |
![]()
Сообщение
#15
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
И да корректно ли так указывать категориальную переменную в зависимых? Корректно. Но, если каждый рецепт "уникален", еще и "бессмысленно и беспощадно" ![]() Есть соответствующая техника называемая "Embedding". ![]() |
|
![]() |
![]() |
![]()
Сообщение
#16
|
|
Группа: Пользователи Сообщений: 1219 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 ![]() |
Разберусь с 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. Сообщение отредактировал nokh - 17.02.2017 - 00:18 |
|
![]() |
![]() |
![]()
Сообщение
#17
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
Да, я на stackoverflow почитал про нее, но не все сразу, я сначала одно попробую, попроверяю свои гипотезы, а потом другое. По поводу простого neuralnet
p2004r, может ли эта ошибка возникать из-за того, что classvar у меня представлена как текстовые категории, или копать в другое место нужно. Больше вопросов нет. > neuralnet(y1+y2+y3~classvar+x1+x2+x3, infert, + err.fct="ce", linear.output=FALSE, likelihood=TRUE,data=mydata) Error in as.vector(as.integer(hidden)) : (list) object cannot be coerced to type 'integer' |
|
![]() |
![]() |
![]()
Сообщение
#18
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
nokh, а такой R^2 может быть вызван малым кол-вом наблюдений?
|
|
![]() |
![]() |
![]()
Сообщение
#19
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
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. 1. тонко! пакету уже как бы 15 лет исполнилось, я бы у себя "в конфигурации" искал проблему в таком случае (ну или написал авторам на почту поддержки пакета если был бы уверен в проблеме) 2. и как удалось посмотреть _что_ считает статистика? исходный код есть? вот что вообще за вычисления делает статистика? в случае {pls} достаточно посмотреть в исходный код. не нравиться {pls} -- есть еще реализации, например https://cran.r-project.org/web/packages/matrixpls/index.html PS собственно вот http://stats.stackexchange.com/questions/2...data-not-equiv# Сообщение отредактировал p2004r - 18.02.2017 - 00:41 ![]() |
|
![]() |
![]() |
![]()
Сообщение
#20
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 ![]() |
NIPALS 1966 г.р. {pls} v. 2.6-0 датируется 18/12/2016. Словом, переходите на SIMPLS (de Jong,1993), ребята.
Что считает Statistica тайной за семью печатями не является: Тыц! Сообщение отредактировал 100$ - 18.02.2017 - 02:12 |
|
![]() |
![]() |
![]()
Сообщение
#21
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
as.numeric(mydata$classvar)+1
показал, что дело не текстовых категориях. Значит можно. |
|
![]() |
![]() |
![]()
Сообщение
#22
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
закрываю вопрос) стаковерфлёу в помощь был))
вот так правильно делать, мало ли на будущее у кого-то будет такой вопрос pr.nn <- compute(nn,test_[,1:3]) pr.nn_ <- pr.nn$net.result*(max(mydata$y1+mydata$y2+mydata$y3+mydata$y4+mydata$y5+mydata$y6)-min(mydata$y1+mydata$y2+mydata$y3+mydata$y4+mydata$y5+mydata$y6)) +min(mydata$y1+mydata$y2+mydata$y3+mydata$y4+mydata$y5+mydata$y6) |
|
![]() |
![]() |
![]()
Сообщение
#23
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
Коллеги, я стал работать с pls регрессией,
![]() plsr(formula = y1 + y2 + y3 + y4 ~ ., ncomp = 2, data = reg, method = "oscorespls", scale = TRUE, validation = "CV", segments = 9, segment.type = "consecutive", length.seg = 3) > summary(plsFit) Data: X dimension: 70 3 Y dimension: 70 1 Fit method: oscorespls Number of components considered: 2 VALIDATION: RMSEP Cross-validated using 24 consecutive segments. (Intercept) 1 comps 2 comps CV 17.15 8.794 8.082 adjCV 17.15 8.785 8.067 TRAINING: % variance explained 1 comps 2 comps X 78.12 94.41 y1 + y2 + y3 + y4 75.56 ![]() что значит CV и что значит adjCV какое вывод по этим цифрам я могу сделать? И что значит понятие компоненты в этой регрессии? nokh, вопрос к Вам, поскольку Вы прогали эту регрессию, возможно сможете дать небольшой ликбез. ![]() |
|
![]() |
![]() |
![]()
Сообщение
#24
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
VALIDATION: RMSEP Cross-validated using 24 consecutive segments. что значит CV и что значит adjCV какое вывод по этим цифрам я могу сделать? Фелор, вы что _реально_ про кроссвалидацию ничего не слышали? И какого интересно "ответа" ждете, "зачитывания вслух" странички из педивикии? ![]() Конкретная реализация в пакете pls в нем же и _исчерпывающе_ описана ?pls::crossval (если просто набрать pls::crossval то получите код реализации) Там же ссылка на литературный источник с описанием теории техники Код Mevik, B.-H., Cederkvist, H. R. (2004) Mean Squared Error of Prediction (MSEP) Estimates for
Principal Component Regression (PCR) and Partial Least Squares Regression (PLSR). Journal of Chemometrics, 18(9), 422?429. ![]() |
|
![]() |
![]() |
![]()
Сообщение
#25
|
|
Группа: Пользователи Сообщений: 1219 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 ![]() |
nokh, а такой R^2 может быть вызван малым кол-вом наблюдений? Для других показателей число наблюдений также мало, но тем не менее этого числа хватило. Поэтому вряд-ли, хотя доказать этого пока нельзя. Вы находитесь в более выгодном положении, поскольку имеете не один набор данных, а много. Их анализ позволит уже более конкретно определиться с причиной. Возможно, какие-то показатели всегда "шумят" сильнее, например, в силу меньшей концентрации или влияния на них других факторов. Коллеги, я стал работать с pls регрессией, ![]() ... И что значит понятие компоненты в этой регрессии? nokh, вопрос к Вам, поскольку Вы прогали эту регрессию, возможно сможете дать небольшой ликбез. ![]() Про компоненты нужно почитать. Если не знакомы с PLS, то можно и даже проще начать с анализа главных компонент - это базовая техника для целого семейства методов. Если кратко, то не вся информация в наборе данных важна и/или отлична от случайного шума. Главные компоненты - ряд убывающих по важности (доле объясняемой дисперсии) новых переменных, скомбинированных из исходных переменных. Они обобщают данные и позволяют представить их в пространстве меньшей размерности, поэтому такие методы называют иногда методами редукции данных с обобщением. Работу методов типа анализа избыточности (RDA) можно представить себе так: одно гипероблако облако независимых переменных неподвижно, а второе гипероблако зависимых пременных поворачивается относительно первого так, чтобы такая проекция объяснила максимум дисперсии второго. Первая такая проекция и является первой компонентой. Далее ищется вторая, ортогональная первой, третья, ортогональная перым двум и т.д., но в выложенном вами наборе 2 и 3 ничтожно малы. PLS-регрессия - смещённый вариант RDA, с акцентом не на объяснение дисперсии, а на прогноз. К сожалению, не было времени разобраться с PLS в R, я тренировался с PLS в пакете tanagra ( http://eric.univ-lyon2.fr/~ricco/tanagra/en/tanagra.html ), который уже был у меня установлен и для которого нашёл в сети понятную мне инструкцию. Как я писал выше, один пакет R мне не понравился и хотя часть вопросов ушла, моя "конфигурация" не позволила сделать прогноз, используя его выкладки на экране и калькулятор в руках, тогда как для tanagra - позволила и результат сошёлся с выдаваемыми пакетом прогнозными значениями. Опробую chemometrics - отпишусь. По поводу CV вам ответили. Кроссвалидация более популярна в Machine Learning, тогда как в традиционной прикладной статистике наработаны другие, включая чисто графические подходы. Я этим способом выявлять надёжные предикторы не пользуюсь, польскольку работаю обычно с небольшими наборами данных, а в них - всё не особо надёжно ![]() Сообщение отредактировал nokh - 12.03.2017 - 08:17 |
|
![]() |
![]() |
![]() ![]() |