2014 dxdy logo

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

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


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


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



Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6  След.
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение18.01.2020, 13:16 


02/07/19
52
Цитата:
Концентрацию Вы задаёте произвольно, а спектр лишь зависит от этой концентрации. Произвольный спектр Вы задать не можете.

В простейшем случае на одной длине волны произвольную интенсивность я могу задать меняя силу тока на усилителе. К тому же в моем исполнении спектр возбуждается падающим рентгеновским излучением, для которого я могу менять фильтры. Но вы правы, меняя произвольную интенсивность я не получу новую концентрацию. Плюс реальные физические модели так и строятся - зависимость интенсивности от концентрации компонентов, энергии падающей волны, угла падения и т.д. Просто экономически почти невозможно собрать много образцов с аттестованным значением всех входящих в него концентраций. Такие наборы продаются, но аттестованных элементов в наборах порядка 20, а образцов порядка 5-10 и новых образцов для полного описания системы взять неоткуда. Поэтому да, задачу решаю в виде С(I), так как измерить все интенсивности значительно проще. Строго говоря, и интенсивности в спектрометрии измеряются не всегда все, а только те, что может получить датчик или полихроматор. Остальные недетектируемые интенсивности они остаются и продолжают влиять на систему в результате перепоглощения волн, но это данность, с которой приходится мириться.

Цитата:
Вместо концентраций попробуйте использовать их логарифмы.

Есть несколько причин, почему я против логарифмов.
1. Нулевые образцы существуют. Там где чисто платиновые или чисто палладиевые. Но если для каждого элемента составлять самостоятельную матрицу, то нулевые образцы можно отбросить.

2. К логарифмическому виду можно привести простое уравнение с одной независимой переменной типа $C=aI$
в
$\ln(C)=\ln(I)+K$
Как сохранить линейную форму зависимости для случая, когда логарифмируется сумма произведений интенсивностей - для меня это проблема.
3. Имеется неудачный опыт работы с логарифмированием. В другом методе анализа. Нам в лабораторию поступил образец, для которого содержание элемента было раза в девять раз выше чем максимальная концентрация этого же элемента в градуировочных образцах (0,09% при максимуме 0,01%). Но на тот момент я считал, что превышение всего лишь в 4-5 раз. Так как других альтернатив для анализа не было, решили пользоваться тем что есть. У меня градуировка была в логарифмическом виде. Я тогда не вникал почему она такая, думал из соображений физических взаимодействий в веществе. Сделали анализ, написали заключение. Отправили образец в другую лабораторию. Там были те же самые стандартные образцы с Красноярского завода для того же самого метода анализа. Но градуировка была линейной. И у меня ошибка прологарифмировалась, дала вклад в концентрацию в два раза меньший чем надо (получил 0,045%). Ошибка в линейной зависимости просто прибавилась и дала значение морально близкую к правде (0,07%). Мы долго переписывались, выясняли отношения кто прав и где руки кривые (формально и там и там диапазон не закрывался концентрацией эталона). Потом я сначала нашел проблему у себя в логарифмировании, когда начал считать как меняются погрешности при логарифмировании. А затем пришел арбитражный анализ и ещё раз подтвердил, что линейная зависимость в данном случае была лучше.
4. По факту для ММНК у меня в малых концентрациях хорошая воспроизводимость градуировки. То есть там выбросы есть, но они экономически не значимы. Периодически сличаемся с другими методами, глобальных проблем нет. На маленьких пробах они статистически нивелируются. Может быть проблема на одной большой пробе, например в 500 кг, когда ошибка в концентрации даёт сильное искажение массы и стоимости в рублях. Но таких проб у нас бывает раз в 5 лет и научены уже - делаем поправку по контрольному образцу.
5. Проблема низких концентраций возникает только при переходе к системе координат Главных Компонент. Фактически, точки интенсивностей те же самые, но в других координатах. Но там логарифмирование невозможно, так как счета получаются и отрицательные в том числе.

Сейчас попробую объяснить, почему я так привязался к Главным компонентам.
Для классического анализа по линиям требуется знание где находятся линии нужного хим. элемента - требуется справочник. Потом, на самом деле мы снимаем сигнал не на длине волны, а в канале датчика-полихроматора. Между каналами и длиной волны существует квадратическая зависимость, и её нужно ещё установить. Линии часто перекрываются, чтобы их разделить, нужно провести моделирование. Гауссоида - наиболее частая модель - не всегда корректно работает, особенно, когда одна линия высокая, а рядом очень маленькая - в хвостах гауссоиды часто скрывается ошибка модели и искажает результат. А ещё в сложных матрицах модели за счет неучтенного подвозбуждения другими элементами начинают заметно отклоняться от реальных линий. Потом, в спектрах один элемент может давать не одну линию, а две или три. Какую линию выбрать для анализа? Если делать градуировку отдельно для каждой линии, то для неизвестного компонента по каждой линии получим три расчетные концентрации, которые близки. Что с этим делать - усреднять, или отбрасывать результаты с более грубой градуировкой? Как измерять линию, считать площадь, или достаточно высоты ? Если по площади, где границы уширения линии? Тут тоже много подходов. В какой момент можно эту градуировку считать уже грубой, или ещё приемлемой? Таких практических вопросов очень много. Все они решаемы, например, с помощью статистических критериев, с помощью встроенного ПО, но на практике это очень большая работа.
Теперь про главные компоненты. Если зависимость между каналами полихроматора и длиной волны постоянная, мне не нужно её искать. Оси главных компонент будут выстроены вдоль направлений с максимальной дисперсией. Я могу взять условно китайский прибор, для которого производитель не хочет раскрывать функционал (таких производителей полно), и если смогу выцепить из него поканальный спектр, даже не зная в каком диапазоне он работает, то смогу достаточно легко выполнить градуировку по своему набору образцов. Вы как математик, сможете, конечно найти недостатки PСR по отношению к обычному ММНК, но я практически уверен, что трудоемкость в случае ММНК гораздо больше.
Замечу, что PCR у меня всё же работает. Если отложить на графике в координатах аттестованная/расчетная концентрация, то ММНК дает коэффициент корреляции 0,9981, а PCR 0,9914. Во многом такой хороший показатель ММНК кроется в качестве работы программистов, которые смогли эти линии смоделировать и разделить. Программисты, кстати, из Киева - ещё советская школа. В прошлом году мы купили второй спектрометр. По тендеру выиграл китайский прибор, который был формально на 5% дешевле. Градуировка там вшитая, линии элементов прибор ловит все - на спектре они видны, а детектирование прописано только для 8 из тех 29, что есть в моём наборе. Ну, прибор что-то типа там меряет, но цифры, предсказывающие концентрацию по спектру, живут своей жизнью.
Вот, наверное, главные причины, по которым мне нравится хемометрический подход.

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение18.01.2020, 20:03 


07/10/15

2400
McConst в сообщении #1435805 писал(а):
Поэтому да, задачу решаю в виде С(I), так как измерить все интенсивности значительно проще

значительно проще чем что? я Вас не совсем понимаю
Вы имеете в виду, что многократно измеряя все эталонные образцы можно получить больше уравнений системы и, соответственно, можно надеяться на получение более точного уравнения? или Вы о чём то другом?

McConst в сообщении #1435805 писал(а):
По факту для ММНК у меня в малых концентрациях хорошая воспроизводимость градуировки

тогда не совсем понятно чего Вы хотите добиться от PCA? дополнительного повышения точности модели?

-- 18.01.2020, 21:50 --

Сейчас дочитал Ваше сообщение и немного понял: при градуировке есть множество проблем, но PCA как то там внутри их все решает, и можно не вдаваться в подробности, надеясь на положительный результат. Смысл примерно такой?

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение18.01.2020, 21:03 


07/10/15

2400
McConst в сообщении #1435805 писал(а):
Я могу взять условно китайский прибор, для которого производитель не хочет раскрывать функционал (таких производителей полно), и если смогу выцепить из него поканальный спектр, даже не зная в каком диапазоне он работает, то смогу достаточно легко выполнить градуировку по своему набору образцов

Хотелось бы отметить, что недостатки PCA я рассматриваю в сравнении с ММНК, как Вы его называете. По поводу одноканальной калибровки никаких вопросов нет, она не может быть лучше калибровки сразу по нескольким каналам, это очевидно. Я не понимаю, зачем переходить к главным компонентам, когда можно использовать непосредственно данные всех каналов? ведь в обоих случаях Вы получите линейное уравнение, просто значения коэффициентов будут немного различаться

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 00:57 


02/07/19
52
Цитата:
Сейчас дочитал Ваше сообщение и немного понял: при градуировке есть множество проблем, но PCA как то там внутри их все решает, и можно не вдаваться в подробности, надеясь на положительный результат. Смысл примерно такой?

Верно, именно так.

Цитата:
значительно проще чем что? я Вас не совсем понимаю
Вы имеете в виду, что многократно измеряя все эталонные образцы можно получить больше уравнений системы и, соответственно, можно надеяться на получение более точного уравнения? или Вы о чём то другом?

Все интенсивности измерить значительно проще, чем измерить все концентрации. Сейчас поясню ниже.

Вы говорили про прямую и обратную калибровку.
Прямой подход более корректен с физической точки зрения и с точки зрения независимости переменных. Но для правильного описания системы мне нужно знать концентрации всех элементов, линии которых я вижу на спектре, или хотя бы 7-8 элементов, которые дают наиболее значительный вклад. У меня нет возможности найти полный состав образцов с достаточно хорошей точностью. Вообще, производители наших спектрометров делают именно так, у них множество эталонов, по которым они калибруются - но это отдельное направление, которое в рамках моей организации никто не оплатит. Есть возможность только точного определения драгметаллов в образцах методами мокрой химии на альтернативном оборудовании. То есть зная только концентрации трёх драгметаллов из 29 элементов, я конечно могу составить систему уравнений I(C) из 4х слагаемых в каждом, типа:
$I_{Pt}=a_{Pt}C_{Pt}+a_1C_{Pt}C_{Pd}+a_2C_{Pt}C_{Rh}+a_3C_{Pt}C_{Pt}$
но из-за недостатка данных она будет очень неудовлетворительная, так как концентрации неаттестованых элементов сильно влияют на систему.
Наверное, в данном случае можно было бы даже составить уравнение для каждого канала. Их всего 2048. Честно говоря, когда вы написали про поканальную градуировку в ММНК (метод множественных наименьших квадратов - термин из википедии взял или откуда-то оттуда) - для меня несколько неожиданно. Но с тремя хим. элементами я не смогу описать поведение интенсивностей в каналах от недостающих концентраций.

Обратный подход. У меня есть интенсивности от всех элементов, независимо от того, что точная информация о концентрациях в образцах известна только для 3-х элементов. Так как набор из 64 образцов не так чтобы сильно большой, но для химиков вообще-то набор достаточно велик, я могу смело пользоваться интенсивностями от 8-10 элементов, условно считая, что они независимы. Ну, просто образцы я так собирал, чтобы максимально уменьшить связь между линиями. Т.е. где-то есть образцы с высокими и низкими содержаниями циркония, где-то циркония нет совсем, но много свинца или стронция, где-то цинк и свинец вместе. Где-то отбирал просто потому, что градуировка на меньшем наборе 2-3х летней давности давала для образцов сильный выброс в расчетах и приходилось для него делать мокрую химию и добавлять в градуировку, чтобы посмотреть поведение нового набора. В таком варианте с обратной калибровкой речь о поканальной градуировке невозможна. Собрать образцы для сочетания 2048 каналов не реально, плюс каналы скоррелированы как минимум из-за того, что линии имеют уширения, ну и из-за того, что даже площади отдельных линий не совсем независимы, а физически связаны друг с другом через интерференцию в образце. PCA решает эту проблему и из 2048 каналов оставляет только 17 важных.
Далее напишу момент, который я как-то понял, но не гарантированно, что понял правильно. В уравнении модели C(I) для ММНК у меня в слагаемых стоят только по две интенсивности. На самом деле физическое взаимодействие происходит сразу между всеми элементами. В с слагаемых можно было бы поставить и по три и по четыре интенсивности, и даже слагаемые, в которых произведение не включает линии целевого хим. элемента. Но тут резко растет количество коэффициентов в регрессии и сильно ухудшается качество прогноза. Так вот, если я не ошибаюсь в PCA, когда идет речь о 17 ортогональных направлениях и о проценте объясненной ими дисперсии, как раз и заложен эффект этих всех сочетаний интенсивностей в модели. По крайней мере, когда пишешь алгоритм разложения на главные компоненты через алгоритмы перемножения матриц и итерации этих перемножений, складывается именно такое впечатление - умножение и сложение всего на всё. Ну, и даже с той точки зрения, что матрица из 29 главных компонент при достаточно хорошей выборке образцов сможет объяснить всю исходную спектральную матрицу размером например 1000х2048 - такое упрощенной ММНК моделью сложения произведений интенсивностей не добьёшься. То есть я вообще не против ММНК, но мне кажется модель, которой я пытаюсь описать физический процесс через ММНК - она слишком упрощенная, и через разложение на независимые Главные компоненты она будет более корректна. А практика пока показывает, что пока не совсем так. Да, когда я объединил проверочную матрицу и градуировочную, за счет большего количества образцов качество градуировки для того же количества главных компонент улучшилось. Ошибка RMSE упала с 0,04% до 0,03%. Мне нужно добиться где-то 0,01-0,02%. Подозреваю, что у меня есть пару плохих стандартов, которые сильно искажают систему. Несколько раз я на таком себя ловил, когда проверял вручную вычислительные матрицы - где-то запятую не там ставил в концентрациях, где-то опечатки. Один стандарт мне точно химики неправильно померяли - через год выяснилось.

Да, ещё нюанс есть, о котором я не упоминал. Калибровка выполняется не через абсолютные интенсивности, а через нормирование каждого спектра на интенсивность линии внутреннего стандарта. Это удобно, внутренний стандарт позволяет не заботиться о масштабе спектра, связанный с временем измерения спектра и силой тока. Линия размазана по спектру и накладывается на другие элементы. Вообще ПО спектрометра её площадь считает достаточно хорошо в пределах допустимой ошибки, но это тоже бонус в пользу киевских программистов. Задумка была такая - для градуировки в главных компонентах интенсивность линии для нормирования искать через матрицу счетов исходного спектра, разложенного на главные компоненты. Исходная матрица спектров нормируется (каждый спектр отдельно, согласно найденному для него внутреннему стандарту), повторно раскладывается на главные компоненты и уже после этого выполняется окончательная калибровка. Т.е. фактически поиск счетов для линии нормирования исходного спектра - нелинейное приближение к минимальной ошибке в конечных концентрациях. Линию нормирования для каждого хим. элемента искал отдельно, опираясь на его вектор концентраций. Не знал что получится, но так было проще программировать и получить первые результаты. По всем 3-м элементам получилось 17 компонент, но вообще в PCA линия нормирования должна быть общая - это чуть позже подправлю. Если брать PLS - то там в плане вычислений коэффициентов для нормирования ещё сложнее, так как хемометрические матрицы там скоррелированы и подбор оптимальных коэффициентов для расчета пика нормирования требует на порядок больше вычислений. А если ещё делать проверки выборки через последовательную замену образцов - понадобится нормальная такая вычислительная мощность. По моим прикидкам более 100тыс PLS разложений для поиска оптимальных коэффициентов.

Я бы мог скинуть реальный набор данных, но не знаю в каком формате это вообще делать. В эксель ограничения на 256 столбцов. Я под Wolfram Mathematica написал пакет, который импортирует интенсивности в каналах из файлов спектров в матрицы, но он под лицензией и не у всех стоит. Есть для разложения в PCA хорошее приложение Unscrambler, я по нему учился писать алгоритм и контролировал шаги выполнения программы. Можно матрицу данных сохранять в его формате, но оно тоже лицензируется.


А вообще извините, что много времени на этот форум забрал у совершенно незнакомых людей. Из ближайшего окружения никто этим не занимается. На факультете, который готовит химиков, есть спецкурс хемометрика, но программа спецкурса на 80% состоит из изучения статистических критериев, 10% по верхам одномерный МНК и 10% начальные представления о факторном анализе. Про главные компоненты что-то слышали, но как с ними работать - никто не знает. Пришлось искать знающих людей в интернете. Вроде бы темы для изучения мне тут дали. Есть о чем подумать.

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 04:03 


07/10/15

2400
McConst в сообщении #1435908 писал(а):
У меня есть интенсивности от всех элементов, независимо от того, что точная информация о концентрациях в образцах известна только для 3-х элементов


Во первых, для того чтобы грамотно решить задачу, её следует чётко сформулировать. Честно говоря, Ваши объяснения немного расплывчаты и понимание проблемы приходит лишь со временем. И тем не менее приходит.

Если Вы говорите, что точно известны лишь 3 концентрации, значит в Вашей задаче есть всего 3 независимые переменные.
Если у Вас есть 64 эталона - значит в Вашей задаче всего 64 наблюдения.
Если в эталонах присутствуют мешающие примеси и концентрации их неизвестны, или известны не во всех эталонах, это не увеличивает число переменных в задаче, но позволяет построить модель, более устойчивую к влиянию примесей.
Число зависимых переменных, насколько я теперь понимаю у Вас 2048 - это общее число каналов, но из них выбирается только 29 - каналы соответствующие максимумам спектра.
Здесь я начинаю догадываться, что Вы сомневаетесь в оптимальности выбора этих 29 каналов (может быть где то что то усреднить, чтобы захватить весь максимум а не только его макушку и т.п.). Для полноты информации, можно было бы использовать дополнительные каналы, например соседние с имеющимися 29 пиками, но вы не знаете сколько и как правильно их отобрать. Тут и появляется PCA, который обещает избавить от всех этих проблем, и даёт 17 латентных переменных, в которых сосредоточена основная дисперсия данных. Как бы и информация по сравнению с MMНК, использующим 29 каналов, собрана более полно, и количество переменных меньше - всего17, а это обещает построить лучшую модель.
Правильно ли я Вас теперь понимаю?


На счёт данных - интересно было бы посмотреть. А сколько у Вас строк в таблице спектров? (число столбцов, как я понял 2048)

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 10:55 


09/11/19
146
McConst в сообщении #1435908 писал(а):
$I_{Pt}=a_{Pt}C_{Pt}+a_1C_{Pt}C_{Pd}+a_2C_{Pt}C_{Rh}+a_3C_{Pt}C_{Pt}$

Правильно ли я понял, что
1) это уравнение для интенсивности линии платины на $1$ из $2048 $ каналов, и коэффициенты $a_{Pt}, a_1, a_2, a_3$ для каждого канала свои;
2) в этом уравнении учтены вклады интенсивностей трёх элементов, но проигнорированы вклады других элементов, которые могут быть в образце;
3) это уравнение взято из литературы по спектроскопии, где сказано, что интенсивность и концентрации связаны именно таким образом;
4) канал – это длина волны, на которой происходит измерение интенсивности?

McConst в сообщении #1435908 писал(а):
Ошибка RMSE упала с 0,04% до 0,03%. Мне нужно добиться где-то 0,01-0,02%.

Насколько понимаю (я не математик), RMSE выражает ошибку аппроксимации. RMSE равно нулю, если уравнение регрессии точно проходит через все экспериментальные точки. Теоретически можно подобрать бесконечно много уравнений и способов обсчёта данных, удовлетворяющих критерию RMSE равно нулю и любому другому. Например, можно подобрать такие веса для данных, что они лягут на заданную прямую. При этом RMSE будет равно нулю, а ошибка прогноза для новых данных будет большой. По-моему, Ваша задача недостаточно формализована в математическом смысле, а сами математические выкладки несколько оторваны от физики процесса.

Ещё несколько уточняющих вопросов:
1) Вы получаете спектры, используя рентгефлуоресцентный спектрометр?
2) Как Вы подготавливаете пробу к анализу (например, гомогенизируете, растирая в порошок)?
3) Есть ли возможность провести анализ методом добавок (подмешать к пробе известное количество, например, платины)?
4) Есть ли возможность самому приготовить градуировочные стандарты?

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 14:02 


02/07/19
52
igor_ivanov
Цитата:
Правильно ли я понял, что
1) это уравнение для интенсивности линии платины на $1$ из $2048 $ каналов, и коэффициенты $a_{Pt}, a_1, a_2, a_3$ для каждого канала свои;
2) в этом уравнении не учтены вклады интенсивностей других элементов образца (если они в образце есть);
3) это уравнение взято из литературы по спектроскопии, где сказано, что интенсивность и концентрации связаны именно таким образом;
4) канал – это длина волны, на которой происходит измерение интенсивности?

1. Да, всё верно, это уравнение для 1го из 2048 каналов. И в каждом уравнении свои коэффициенты. Извиняюсь, индекс не поставил
2. Да, поэтому я не пользуюсь уравнение в таком виде I(C), а пользуюсь в виде С(I). Для каждого элемента строится:
$C_{xi}=a_{0i}I_{xi}+a_{1i}I_{xi}I_{1i}+...+a_{ni}I_{xi}I_{ni}$
3.В литературе по спектроскопии используется вариант как I(C) - в различных модификациях, так и С(I). Я использую С(I). Про вариант в моем исполнении гугл сразу предложил вот это пособие, страница 42-43, пункт 3.4.2..
4. В регистраторах спектра (датчики/полихроматоры) весь спектральный диапазон конструктивно разбит на дискретные участки-каналы. Канал привязан к конкретному поддиапазону длин волн, с которого в канал поступают импульсы от спектра, но так как поддиапазон очень узкий, можно считать, что канал привязан к конкретной длине волны. Привязку каналов к длине волны перед измерениями выполняют по стандартному образцу с известными линиями. Если всё сделано правильно, то да, считается, что канал - это длина волны, на которой происходит измерение интенсивности. Линия элемента, из-за уширений, размазывается по нескольким каналам.
Цитата:
RMSE равно нулю, если уравнение регрессии точно проходит через все экспериментальные точки.

Всё правильно. Среднеквадратичное расстояние между расчетными и аттестованными значениями.
Цитата:
При этом RMSE будет равно нулю, а ошибка прогноза для новых данных будет большой.

RMSE считают обычно для градуировочного набора образцов и для проверочного набора, который не участвовал в градуировке. Калибровочный RMSE называется RMSEC (C - calibration), проверочный RMSEP (p - prediction). Коэффициенты подбирают таким образом, чтобы обе RMSE были минимальны.
Цитата:
Ещё несколько уточняющих вопросов:
1) Вы получаете спектры, используя рентгенофлуоресцентный спектрометр?
2) Как Вы подготавливаете пробу к анализу (например, гомогенизируете, растирая в порошок)?
3) Есть ли возможность провести анализ методом добавок (подмешать к пробе известное количество, например, платины)?
4) Есть ли возможность самому приготовить градуировочные стандарты?

1). Да
2) Растираем в порошок на измельчителе. Можно прессовать таблетки - к этому возможно придем. Ошибки измерения, связанные с качеством стандартов есть, в том числе и с качеством модели, поэтому результаты ММНК почти всегда лежат рядом с результатами PCR по одну сторону от градуировочной кривой, повторяют друг друга, но PCR у меня дает несколько больше выбросов и менее стабилен. Ожидал наоборот. Хуже всего, что в варианте PCR большие выбросы сосредоточены в области низких концентраций.
Изображение
Изображение
На рисунках в прямоугольных рамках - параметры градуировки, которые посчитал Excel, те что выше - для ММНК, ниже - для PCR.
3). Метод добавок возможен, но для единичных анализов. Он более трудоемок по времени, экономически затратен, . Мы аттестуем образцы методом пробирной плавки на медный коллектор, растворяем и измеряем через ICP.
4). Модели обычно слишком упрощенные. Основные линии от оксида циркония, цинка, свинца, церия. В реальных автокатализаторах периодически ещё идёт всякая экзотика вроде гафния, ниобия.
Анализ по ММНК более-менее неплохо работает. Во многом, благодаря качественному ПО, которое разделяет линии. Просто в самом начале темы я писал, что хемометрики предлагают использовать главные компоненты. Они в Excel моделируют сильно перекрытый спектр из трёх аналитических элементов, на котором вообще трудно сказать где какой максимум, накладывается случайный шум. Наше ПО с этими линиями вообще бы не справилось. И в конце после обработки по хемометрическому методу получаются отличные результаты. Их материал разбит на небольшие главы. Я сослался на 3 главу, с которой собственно и начинается моделирование.
Andrey_Kireew
Цитата:
Вашей задаче есть всего 3 независимые переменные.

Да
Цитата:
Если у Вас есть 64 эталона - значит в Вашей задаче всего 64 наблюдения.

Наблюдений 64х4=256, так как интенсивности всё же разные, хоть и скоррелированы. По параллельным измерениям одного и того же образца можно тоже оценить качество калибровки. Если разброс маленький - хорошо, если система неустойчива, разброс данных становится большой. Ещё по параллельным данным можно посчитать ошибку повторяемости и воспроизводимости для методики в целом.
Цитата:
Число зависимых переменных, насколько я теперь понимаю у Вас 2048 - это общее число каналов, но из них выбирается только 29 - каналы соответствующие максимумам спектра.

Примерно так, но не совсем. От одного элемента линия размазывается на несколько каналов, в моем случае где-то на 10 из-за уширения линий. Когда говорят об интенсивности линии, имеют ввиду сумму сигналов в этих каналах. Каналы для одной линии получаются скоррелированы. В ММНК, если программа правильно разделила линии, я подставляю сразу интенсивности, в PCR я не забочусь о разделении линий, они выстраиваются вдоль Главных компонент. С максимумами можно работать, но с площадями корректнее. В этом сообщении чуть выше я опять сослался на пост хемометриков. Там в примере три перекрытых линии наложены друг на друга и найти их правильные максимумы (и даже площади) - не смотря на то, что я знаю где они должны быть - просто невозможно. Я могу выбрать 29 интенсивностей по числу элементов, хотя от одного элемента на спектре линий больше - 3 или 5. Выбор нужной линии - происходит исходя из логики аналитика или программы их разделяющей. Но реально в ММНК подставляю данные от 8-10 элементов (площади от выбранных линий). Большое количество параметров с какого-то момента портит предсказательную способность. В PCR я работа с 17 главными компонентами и не заморачиваюсь какие интенсивности от каких каналов туда попали. Там лежат все скоррелированные данные для данной компоненты.
Цитата:
Для полноты информации, можно было бы использовать дополнительные каналы, например соседние с имеющимися 29 пиками, но вы не знаете сколько и как правильно их отобрать. Тут и появляется PCA, который обещает избавить от всех этих проблем, и даёт 17 латентных переменных, в которых сосредоточена основная дисперсия данных. Как бы и информация по сравнению с MMНК, использующим 29 каналов, собрана более полно, и количество переменных меньше - всего17, а это обещает построить лучшую модель.
Правильно ли я Вас теперь понимаю?

Всё верно. Извините что я так туманно объясняю. Вот участок спектра.
Изображение
Зелёная линия стоит на 642 канале - один из максимумов для Pt. Pt имеет 3 линии. 2 достаточно чёткие, 3-я перекрывается с линий Pb. Розовая штриховка показывает как линия смоделирована спектрометром после разделения. Каждая розовая линия в штриховке соответствует своему каналу. Желтая кривая - реально полученный спектр. Видно, что модель работает не идеально, где-то есть недозаполнения, где-то переполнения. В ММНК поступают вот такие вот недозаполненные или перезаполненные площади от одной из линий. Для Pt я обычно подставляю в ММНК площадь от линии в районе 9.5 на шкале (именно её предлагает ПО спектрометра - не всегда лучший выбор). Хемометрики предлагают не возиться с разделением и выбором линий, а загонять в PCA все 2048 каналов сразу и работать со счетами.

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 15:31 


07/10/15

2400
McConst в сообщении #1435954 писал(а):
Наблюдений 64х4=256, так как интенсивности всё же разные, хоть и скоррелированы. По параллельным измерениям одного и того же образца можно тоже оценить качество калибровки. Если разброс маленький - хорошо, если система неустойчива, разброс данных становится большой. Ещё по параллельным данным можно посчитать ошибку повторяемости и воспроизводимости для методики в целом


так то оно так, можно даже проводить по нескольку измерений с одинаковой интенсивностью, например через определённые промежутки времени, тогда их может быть не только 256, но и 512 и 1024 и вообще сколько угодно. Все они по идее будут друг от друга, хоть немного, но отличаться и их учёт позволить учесть погрешности.
Но дело вот в чём. Модель, которую вы рассматриваете, либо линейная - и тогда разброс результатов измерений на разных интенсивностях обусловлен случайными ошибками и ничем не отличается от разброса многократных измерений на одной и той же интенсивности. Либо она нелинейная, и тогда Вам необходимо работать только на одной интенсивности, которой будет адекватна калибровка. В последнем случае, смешивать все измерения в одну кучу и использовать МНК нельзя, так как появляется существенный влияющий фактор - интенсивность. Это можно тоже учесть, но потребуется более сложная модель.

Так вот, в модели I(C), сколько бы измерений Вы не использовали, общая система будет состоять из 64 групп уравнений с одинаковыми левыми частями. С точки зрения МНК, эта система полностью эквивалентна системе из 64 уравнений, элементы столбца свободных членов которой получаются простым усреднением элементов столбцов свободных членов в соответствующих группах общей системы. Поэтому, в действительности, число наблюдений всё равно 64 - оно равно числу эталонов. Усреднение измерений на одинаковых эталонах позволяет уменьшить случайную ошибку, но не более того.
В случае модели C(I) все уравнения получаются разные и создаётся иллюзия большого числа наблюдений. Но это лишь следствие подмены причины следствием, о которой я уже писал (независимые переменные C а не I).

Но это всё детали. Окончательно разобравшись в проблеме, могу Вам с уверенностью сообщить, что применять PCA к спектрам и можно и нужно, кроме пользы, от этого ничего не будет. Это полезно как в случае модели I(C), которая хоть и более корректная, но работать с ней намного сложнее, так и в случае модели С(I).

На мой взгляд, Ваша проблема кроется в отборе главных компонент. В литературе можно часто встретить наивную рекомендацию - отбирать несколько первых главных компонент, объясняющих основную часть дисперсии данных. По поводу того, сколько именно их брать - мнения расходится, но обычно пытаются найти границу раздела с резким изменением мощности компонент в ранжированном ряду. По личному опыту могу сказать, что этот подход работает в первом приближении более-менее надёжно. Но лишь в первом приближении. Так и у Вас, модель более-менее работает, но лишь более - менее. Иногда, для отбора главных компонент рекомендуют использовать t-критерий. Я как то пробовал это делать, но результаты получались только хуже, чем при отборе по мощности. К тому же, регрессия на главные компоненты предполагает использование независимых факторных переменных, а у вас спектры с ошибками и шумом, поэтому на t-критерий надеяться наверное не стоит. Вообще, проблема оптимального отбора главных компонент - это неизведанная область. По этому поводу можно встретить множество разных предложений, которые редко подходят для решения реальных проблем. Есть определённые наработки и у меня, но в силу разных причин, я не могу выкладывать их на всеобщее обозрение.

Другими словами - Вам только кажется, что подобрать оптимальное количество и сочетание каналов для ММНК значительно сложнее, чем подобрать оптимальное количество и сочетание главных компонент. В первом приближении задачу Вы решили. Для того, чтобы улучшить модель - необходимо использовать более сложную процедуру отбора главных компонент. На первых порах, я бы посоветовал пробовать просто уменьшать или увеличивать их число и смотреть, что из этого получится. Единственное, что можно с уверенностью сказать - их не может быть больше 64, так как реальное число наблюдений 64. Поэтому, можно попробовать выделить 64 самые мощные главные компоненты, а из них уже выбирать действительно значимые. Больше, по этому поводу ничего конкретного сказать не могу, так как очень многое зависит от самих данных, а их Вы не предоставили

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 15:37 
Аватара пользователя


07/03/16

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

-- 19.01.2020, 15:47 --

С сайтом https://radikal.ru/ нет связи. Ваши картинки не видны.

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 16:38 


02/07/19
52
Andrey_Kireew
Спасибо.
Данные с интенсивностями спектров и их аттестованные значения концентраций собрал в текстовые файлы, откуда их можно через буфер обмена вставить в любое приложение
http://catalyst.h1n.ru/forum_files/PCR%20data.rar
Там 4 файла.
X(256x2048).txt - спектральная матрица 256х2048.
Y(256) - вектор концентраций для матрицы X
Спектры сняты на разном токе, поэтому интенсивности в каналах каждого спектра нужно нормировать на интенсивности внутреннего стандарта. Вектор интенсивностей внутреннего стандарта, расчитанный с помощью ПО прибора находятся в файле:
L(256) начальн.txt

Чтобы отвязать вычисление внутреннего стандарта от ПО спектрометра, я его вычислял хемометрически. Данные из файла "L(256) начальн.txt" использовались только как первое приближение. Более корректные значения интенсивностей внутреннего стандарта для нормирования в файле:
"Расчетные интенсивности для нормирования L(256).txt"

Да, картинки пропали. На предпросмотре были. Сейчас выложу по другому адресу.

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 16:48 


07/10/15

2400
McConst в сообщении #1435977 писал(а):
интенсивности в каналах каждого спектра нужно нормировать на интенсивности внутреннего стандарта


в общем, каждую строчку матрицы X поделить на нормировочный коэффициент в файле L(256), правильно?

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 16:56 


02/07/19
52
Картинка участка спектра
Изображение

Сравнение калибровки для ММНК и PCR на калибровочном массиве для Pt
Изображение

Сравнение калибровки ММНК и PCR на проверочном массиве образцов
Изображение


На рисунках в прямоугольных рамках в верхней рамке параметры для ММНК, в нижней - для PCR, как их Excel посчитал

-- 19.01.2020, 15:58 --

Andrey_Kireew
Цитата:
в общем, каждую строчку матрицы X поделить на нормировочный коэффициент в файле L(256), правильно?

Правильно

-- 19.01.2020, 16:20 --

Emergency в сообщении #1435966 писал(а):
Вам, конечно, по месту, опыту и квалификации виднее, но не пробовали вы вычитать сигнал преобладающего элемента (образцовый в чистом виде) из реального спектра с целью лучше увидеть сигналы других элементов? Может быть таким образом возможно разложить результирующий спектр на составляющие? Или это не работает?
Это только идея, поэтому видятся большие возможности, которых может не оказаться.


Вычесть можно, если известно сколько этого элемента находится в образце и как выглядит его линия для данного количества вещества. Спектральная программа так и поступает. Моделирует линии для каждого компонента и вычитает их друг из друга. Так можно. Но достаточно сложно. Спектрометр хранит базу данных для каждой линии, параметры гауссианы, с помощью которой моделируется линия и ещё какие-то коэффициенты. Просто подход с разложением на главные компоненты мне кажется более универсальным - там ничего этого не нужно знать, достаточно взаимной корреляции интенсивностей в градуировочной матрице спектров.

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 17:43 


07/10/15

2400
McConst, я скачал данные. Сразу могу сказать, что данные хорошие и с ними можно работать.
Но есть вопрос по массиву L, там в начальном массиве числовые коды, то ли - такие большие числа, а во втором - присутствуют нулевые значения. Поясните подробнее в этом месте, ведь на ноль делить всё равно нельзя. Что, эти строчки просто выбросить? или как?

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 17:58 


02/07/19
52
я добавил в архив
http://catalyst.h1n.ru/forum_files/PCR%20data.rar
ещё два файла спектр тестовых образцов Xtest и аттестованные значения для них Ytest
Для проверки. Просто для Pt первое заметное улучшение калибровки наступает при 9-й компоненте кажется, но тестовый набор показывает, что при большем количестве ГК предсказательная способность всё ещё растет. Плюс по другим элементам тоже 17 гк получилось.

Цитата:
есть вопрос по массиву L, там в начальном массиве числовые коды, то ли - такие большие числа, а во втором - присутствуют нулевые значения. Поясните подробнее в этом месте, ведь на ноль делить всё равно нельзя. Что, эти строчки просто выбросить? или как?

Странно. Посмотрел, нулевых данных в файлах L не было. Может быть не всё вставилось?
Не знаю как тут спойлер сделать, могу прямо на форум скинуть. В Lнач просто натуральные числа-интенсивности :

(Оффтоп)

793741
798265
802135
807842
1143008
1155514
1148017
1121825
2582706
2473714
2458103
2552121
1156042
1185015
1170684
1147859
362648
365453
391030
383039
869530
867481
857561
895915
2505697
2448123
2460029
2428464
265461
266821
266897
269581
1460933
1458736
1514445
1541227
2422406
2488934
2487352
2522769
1118295
1144598
1200640
1201367
2469370
2358344
2319159
2286951
2109582
2050441
2055791
2034545
2074838
2064494
2134787
2126888
829320
842940
822124
876320
4154210
4291792
4200452
4250350
2311091
2336176
2348841
2334761
478511
471378
477261
473771
476282
425183
452495
457198
514941
516781
514753
509762
1769455
1769053
1792132
1820844
1110460
1118468
1101012
1083602
1464556
1491770
1453236
1442681
1343636
1354927
1358288
1349228
1112481
1120823
1132437
1126026
2354710
2417203
2519516
2537984
674932
650407
685151
681253
589004
595336
596017
591709
2516310
2572259
2524395
2553911
2321289
2317127
2327786
2312036
1308365
1310090
1318234
1302208
542202
535606
542356
543924
474225
476418
478554
476970
1713108
1691854
1724723
1716032
545498
539765
546619
542367
291781
311858
291529
310760
2669339
2642543
2612105
2645071
470891
482294
467941
491540
2041371
2024962
2042782
2064082
422220
430933
429249
429255
1266378
1273202
1275109
1282340
224475
225448
224196
228083
449814
442209
451831
439688
637116
647224
645688
638738
414050
414958
419987
423097
300229
293337
309095
310242
321169
303588
291962
305795
687152
688456
692277
691059
319174
303400
305800
303128
829994
793736
798758
801094
868042
877417
881498
868820
444591
434015
432934
437892
158561
162957
176470
163864
2421963
2447378
2440908
2543883
2155897
2106448
2131845
2132128
396624
399027
405047
404925
2867764
2879329
2780439
2928617
223871
222155
227749
224496
835694
806235
798629
800986
1585935
1576043
1556894
1569183
313933
309609
305347
300429
660076
642850
646439
656241
237766
238753
232377
237775
426991
415195
425740
428322

Расчетные числа для нормирования получились типа Double. Возможно проблема была, что там разделитель между дробной и целой частью - не запятая стояла,а точка, вот нули и подставились.
Вот расчетные нормировочные интенсивности, да они большие, так как это 90% от основного состава вещества

(Оффтоп)

787991,908267
792309,897514
792717,397468
804583,180335
1155361,728361
1165910,691674
1161517,532002
1136508,784613
2553981,921214
2463600,222226
2440741,766512
2523137,172732
1165211,417555
1199913,412102
1183832,244133
1159985,389432
361702,513666
368036,635798
380071,003663
378375,574435
867490,279661
868608,251789
864301,277386
890981,769304
2502891,932483
2447058,196570
2450303,736548
2422103,021251
272929,722733
270230,331891
271373,849258
272810,715404
1444434,988099
1451519,712054
1496378,642667
1521904,611426
2373805,053577
2438277,463416
2446922,045424
2468017,468229
1065660,813506
1097663,514497
1137885,938358
1138866,457072
2424785,678453
2321654,169378
2276115,674160
2243929,921923
2098750,718754
2052856,784939
2048752,596887
2030319,115975
2053494,763995
2050010,430307
2109496,446088
2100990,995369
821290,071547
834044,698036
818689,770781
857221,335555
4150814,230047
4267962,933121
4192987,788878
4229038,625800
2310639,153030
2327574,284268
2344265,317859
2327406,036574
482967,853204
479819,534948
482964,692703
473966,024774
486292,287536
442826,733055
467457,041009
472492,624644
517179,747460
515108,426943
518389,360208
513898,906340
1799347,551493
1801232,472146
1819067,027240
1839832,971301
1101303,911662
1106075,870798
1094804,947953
1077984,467852
1473192,323202
1489396,564311
1456427,831036
1452130,712851
1345365,954664
1361182,465475
1359919,821969
1354694,368086
1107493,095631
1110956,132689
1118503,469810
1112983,307246
2319861,113785
2376547,219618
2462929,691578
2481573,768577
697677,045954
676561,482463
711358,386981
704685,005737
605108,570120
608755,824048
612740,858546
608852,122368
2527730,872684
2577252,771308
2536611,643786
2564583,187044
2289325,568822
2292489,046896
2297734,640942
2286428,071750
1300216,596954
1301982,193645
1307318,952252
1291769,751519
546743,508643
543960,685229
551195,483576
548929,013329
489494,278426
493314,894080
493083,571542
493824,015290
1726432,408144
1693491,751721
1736058,079097
1725883,350923
572647,576514
567312,525526
568542,764262
567905,403624
291181,235774
310275,957888
292843,171442
310028,261048
2645476,045610
2624912,141354
2597521,842812
2628175,311097
473574,181318
484958,813693
475214,441059
493750,290469
2022819,767179
2007906,545324
2012378,668191
2039913,547701
460476,643011
464885,027415
466926,641767
462946,856593
1266919,595141
1275429,387568
1275566,352662
1281116,005796
232089,077451
232431,342062
232200,095530
226105,985748
433347,281478
427837,301350
433636,683841
412382,616768
611039,659388
619848,042101
617442,200348
630055,440330
433627,655475
435162,305657
440078,742176
429626,416616
316565,167231
311541,735396
309179,493090
310379,454807
334626,585576
319033,518016
303376,757325
306866,009425
701670,048155
697505,779331
704089,854411
689115,510458
332133,387759
319015,671644
318549,142128
307932,816314
821556,131929
797114,092731
799104,688694
802523,167599
872765,888652
879028,953745
880623,505796
877860,575842
461980,856028
455804,850537
458068,659699
461827,127183
178502,091350
194130,234232
184698,545743
183364,458172
2433070,438599
2458749,259332
2451217,326632
2561804,016929
2130428,119854
2089901,851881
2110647,102900
2106557,924331
371159,095383
371962,523010
376219,990507
372971,897052
2880470,986480
2889896,920212
2794010,674859
2930176,872714
247029,737827
242208,475965
253262,836965
249776,051959
895527,316509
854711,121877
846106,666200
851500,274308
1583102,103865
1572717,505374
1551446,981316
1570750,455869
296706,289585
298457,414643
298174,920376
296944,856738
651136,703618
640985,982981
642838,656378
648719,185837
261672,618959
264556,371176
261095,501404
263882,688858
473900,113645
460798,379383
472739,562160
469241,962748

 Профиль  
                  
 
 Re: Регрессия на главные компоненты для анализа драгметаллов
Сообщение19.01.2020, 18:47 


07/10/15

2400
McConst в сообщении #1435988 писал(а):
Посмотрел, нулевых данных в файлах L не было

Всё понятно, это моя ошибка, перепутал с Y(256). В нём тоже, почему в нём только 1 столбец.

Нет ли каких то других существенных различий в условиях измерений кроме различия токов? По некоторым свойствам данных получается, что условия примерно 30 измерений существенно отличаются от всех остальных

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 76 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

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



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

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


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

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