Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

 
Добавить ответ в эту темуОткрыть тему
> Вопрос по анализу данных
Alex
сообщение 3.04.2007 - 19:02
Сообщение #1





Группа: Пользователи
Сообщений: 6
Регистрация: 3.04.2007
Пользователь №: 4028



Уважаемые господа, можно ли обратиться к Вам за помощью?
Имеется база данных, основанная на анкетировании более 1500 человек, в которой категориально (да - нет) отражены такие симптомы как головные боли, боли в пояснице, боли в грудной клетке и пр. (более 30), на их основе вычисленный индекс состояния здоровья (непрерывная величина от 0 до 1). Для каждого случая естественно записаны предикты, такие как населенный пункт, возраст (или возрастная группа), пол, профессия, привычки, группа риска (на основе воздействия химических загрязнителей поллютантов - 3 группы) и пр.
Стоит задача выявить предикторы вызывающие значимое повышение отношение шансов наблюдаемых симптомов, а также оценить комплексное влияние этих факторов (предикторов).

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

В связи с этим хотелось бы обратиться к Вам с вопросом, может имеет смысл воспользоваться каким-нибудь другим методом анализа?

Будем рады любому ответу...

P.S. Пользуем программу Statistica 6
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
плав
сообщение 3.04.2007 - 23:08
Сообщение #2





Группа: Пользователи
Сообщений: 1013
Регистрация: 4.10.2006
Пользователь №: 1933



Боюсь, что тут вышла некоторая путаница frown.gif Логистическая регрессия используется в том случае, если зависимая переменная бинарная (0 или 1), т.е. для самих симптомов пойдет, а вот для индекса здоровья - нет. Соответственно, для индекса здоровья надо немного повыкручиваться (хочется использовать линейную регрессию, но интервал ограничен, соответственно, оптимально было бы - если нет большого количества 0 значений взять логарифм индекса здоровья и его использовать в качестве зависмой переменной.
Далее, не забудьте, что качественные переменные описывающие предикторы с более чем 2 группами должны быть разложены на переменные-пустышки.
Если же у Вас не идет логистическая регрессия с бинарными зависимыми переменными, то надо посмотреть настройки логистической регрессии в программе (я вот только не понял, зачем при наличии Statistica пользовать EpiInfo, если в первой модуль логистической регрессии значительно приятнее и проще используется при проблемах со схождением...)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Alex
сообщение 4.04.2007 - 19:02
Сообщение #3





Группа: Пользователи
Сообщений: 6
Регистрация: 3.04.2007
Пользователь №: 4028



Огромное спасибо за оперативный ответ!
По всей видимости я сумбурно изложил описание входящих данных и запутал общество в том, а что же хотелось бы получить на выходе.
Позволю себе повториться:
в разных точках страны проводились опросы людей с целью выяснения симптомов их недугов (в базах данных это категориальные величины, 0-1), на основе которых вычислен искусственный индекс здоровья (переменная величина от 0 до 1). То есть, зависимые переменные бинарны, за исключением индекса здоровья.
в каждом из случаев фиксировались предикторы (пол, место (2 деревни), возрастная группа (3группы), курение (да нет), алкоголизм, .... группа риска (3 группы в зависимости от степени и характера контакта с поллютантом - ингаляционный путь, попадание на кожу, прямого контакта не было но было проживание в зараженной местности), причем естественно последний показатель та самая переменная в основном ради которой и проводилось все исследование.

Встала задача выяснить, а насколько перечисленные предикторы определяют частоты встречаемости отмеченных симптомов и сущевствует ли взаимодействие этих предикторов которое увеличивает шансы частот проявления данных симптомов (естественно значимые)?

Сразу позволю оговориться и вынести на суд общественности свое резюме: по специальности я эколог, но работаю в команде эпидемиологов. Таким образом это данные коллектива медицинской части.

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

Почему epi info?, сам не понимаю почему ее пытаются использовать, скорее всего из-за того что это стандартный пакет "навязываемый" международными эпидемиалогическими организациями...., при этом я не вижу в ней ничего хорошего, тем более что все реализуемо в пакете Statistica

Что дает логистическая регрессия? Однофактоная - огромная значимость места - отлично, интерпретация лежит на поверхности, значит данная местность испытывала высокую нагрузку токсикантов.
Многофакторная - все рассыпалось....

Может причиной всему избыточность предикторов, место, возраст, профессия сами по себе переменные такой функции как показатель группы риска...

Таким образом пребываем в раздумьях, дальше ковырять логистическую регрессию (приемлема ли она здесь), или воспользоваться лог линейным анализом, непараметрикой, деревьями классификации или др?


Заранее благодарен за ответ,
С уважением Alex

P.S.: буду рад если отпишете на e-mail repetty@yandex.ru ваши мысли по поводу хода анализа подобных данных пускай в общих чертах, может когда нибудь сталкивались с аналогичными задачами.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Те Чжоу
сообщение 4.04.2007 - 20:17
Сообщение #4





Группа: Пользователи
Сообщений: 13
Регистрация: 11.09.2006
Пользователь №: 1757



Ой! А можно ответ в форум а не на e-mail. Тоже интересно smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
плав
сообщение 7.04.2007 - 16:05
Сообщение #5





Группа: Пользователи
Сообщений: 1013
Регистрация: 4.10.2006
Пользователь №: 1933



Ну, если кратко. Для анализа бинарных переменных в данном случае ничего лучше логистической регрессии не придумать. Другое дело, что Вы измеряли показатели в определенных местах, т.е. у Вас была т.н. кластерная выборка. Кластерная выборка нарушает основное предположение при анализе подобных данных о том, что наблюдения между собой не коррелируют (а люди из одной деревни имеют большую вероятность контакта/отсутствия контакта с токсикантами). В этой ситуации используется "зависимая логистическая регрессия" (conditional logistic regression, см, например, http://www.gseis.ucla.edu/courses/ed231c/notes2/clogit.html), где деревня идет именно как показатель кластера. Насчет наличия этого типа регрессии в Statistica и EpiInfo не знаю, профессиональные пакеты типа SPSS, SAS и Stata ее имеют.
Далее. Надо обязательно проверить, чтобы факторы с более чем 2-я уровнями были перекодированы. Например, у Вас есть переменная "возрастные группы" - 3 значения (например, молодые, среднего возраста и старые). Соответственно, надо сделать две переменных, например - ср. возраст (mAge) и старые (oAge). Кодировка будет выглядеть примерно так:
группа "Возраст" mAge oAge
молодые 1 0 0
ср. возраст 2 1 0
старые 3 0 1
В анализе используете mAge и oAge. При этом переменной для молодых нет, эта группа называется базовой и все расчеты ведутся относительно нее.
Очень опасны пропуски, поскольку когда Вы включаете более двух переменных, то наблюдения содержащие пропуски хотя бы по одной из них из анализа выбрасываются (может быть причиной Ваших проблем). Решение - замена отсутствующий значений на средние по группе (нивелирует различия, но зато используется весь массив данных). Есть и другие методы, но они все одинаково плохи.
Другие причины - "рассыпания" могут быть тривиальны - токсиканты не оказывают воздействия, а все различия между пациентами связаны с другими факторами риска (собственно, для этого и делается многомерный анализ).
Другие перечисленные Вами виды анализа здесь не подходят (по причине кластерной выборки), а непараметрика для многомерных моделей не разработана (на самом деле логистическая регрессия - полупараметрическая модель). Можно попробовать сделать парный анализ - взять местность с высокой нагрузкой токсиканатми и местность с низкой. Пациенту Х из местности с высокой подобрать пациента Х1 из местности с низкой по полу, возрасту, курению, потреблению алкоголя. Сделать такие пары для большей части пациентов (рассчитывайте, что удастся сделать пары для 35% всех наблюдений). Затем проанализируйте различия в индексе здоровья и т.п. в этих парах.
Что касается индекса здоровья, то, повторюсь, я бы либо анализировал его логарифм и затем сделал множественную линейную регрессию, либо использовал бы общую линейную модель с логит-проеобразованием (в стате, см http://www.ats.ucla.edu/STAT/stata/faq/proportion.htm, аналогичную модель можно сделать при помощи PROC GENMOD в SAS). Неплохое введение в теорию анализа ограниченных и дискретных величин можно найти тут (http://division.aomonline.org/rm/1997_forum_regression_models.html). При этом все проблемы, связанные с кластерным характером выборки остаются.
Иными словами анализ в общих чертах:
1) Анализ данных на наличие пропусков и чистка базы данных
2) Преобразование качественных переменных с несколькими уровнями в наборы из переменных-пустышек (как показано выше с возрастом)
3) Логистический регресионный анализ симптомов относительно факторов риска (по отдельности) выявление значимых факторов риска (зависимая логистическая регрессия)
4) Множественная логистическая регрессия включающая все значимые факторы риска
5) Логарифмирование индекса здоровья
6) Множественная линейная регрессия с логарифмом индекса здоровья как зависимой переменной и ФР как предикторами.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Alex
сообщение 7.04.2007 - 19:16
Сообщение #6





Группа: Пользователи
Сообщений: 6
Регистрация: 3.04.2007
Пользователь №: 4028



Огромное спасибо за обстоятельный ответ,
извините что отнял у Вас драгоценное время!
Будем "копать"!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 10.04.2007 - 09:05
Сообщение #7





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



Цитата(Alex @ 3.04.2007 - 19:02) [snapback]2700[/snapback]
Стоит задача выявить предикторы, вызывающие значимое повышение отношение шансов наблюдаемых симптомов, а также оценить комплексное влияние этих факторов (предикторов).

Считаю, что кластерный анализ будет полезен. Используйте меры связи, соответствующие данным.


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Alex
сообщение 12.04.2007 - 16:16
Сообщение #8





Группа: Пользователи
Сообщений: 6
Регистрация: 3.04.2007
Пользователь №: 4028



Это снова я....
извините за назойливость
воспользовался SPSS, несмотря на наличие достаточного неплохого встроенного хелпа в ней, по всей видимости что-то делаю не так

например: рассматриваемый фактор - боли в пояснице (да нет), ковариаты - предикторы: деревня, группа риска экспозиции, характер работы и др (все перекодировано в бинарную систему).

регрессия бинарная логистическая, первая манипуляция метод вложения, дает достоверное влияние 5 факторов, токсикант, группа риска экспозиции, профессия... при этом наиболее значимый фактор - деревня!

второй этап - метод forward stepwise (conditional) после пяти ступенях вложения, эти же значимые факторы, при этом на первой ступени - деревня и т.д.

анализ -2 Log likelihood и Nagelkerke R Square дает основания полагать что улучшение модели значимо не происходит....
Model Summary
Step -2 Log likelihood Cox & Snell R Square Nagelkerke R Square
1 694,427 ,053 ,091
2 665,092 ,086 ,146
3 656,558 ,095 ,162
4 650,481 ,102 ,173
5 643,623 ,109 ,186

то же самое и относительно

Classification Table
overall percentage на первом этапе - 83,9% на пятом - 85,5%

Аналогичные данные получаются при использовании всех методов (Fw: LR, Wald; Bw: Cond, Lr, Wald).

Уйти от кластеризованнаых данных не получается... Возможно от слабого знания стат пакета, не прописываю возможыные установки. Какой из перечисленных факторов наиболее ответственный за частоты шансов симтомов, не понятно.

К слову сказать, в Epi info получаются несколько другие результаты, которые к тому же еще и различны в зависимости от того в какой очередности заданы предикторы в логистическую регрессию (странно....)

Исходя из вышеизложенного, уважаемый совет, буду рад за любые комментарии относительно письма, даже в виде "ты не дочитал, хелп....."

С уважением, Алекс
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
плав
сообщение 14.04.2007 - 11:24
Сообщение #9





Группа: Пользователи
Сообщений: 1013
Регистрация: 4.10.2006
Пользователь №: 1933



Если Вы привели данные по регрессиям с вводом по одной переменной, то улучшение модели - значительное - происходит. Смотрите, на последнем этапе -2LL 643,6, а на предыдущем - 650,5. Разность (уменьшение неопределенности ввиду добавления дополнительной переменной) - почти 7. Поскольку добавлена одна переменная, это значение имеет распределение хи2 с 1 степенью свободы, пограничное значение для р=0,05 составляет 3,84. Соответственно, модель улучшилась значительно по сравнению с предыдущим этапом.
Соответственно, Вам надо анализировать модель, полученную на последнем - пятом этапе. В таблице будут указаны пять факторов (они все значимые, это почти автоматом при пошаговом отборе переменных), их регресионные коэффициенты, ошибки регресионных коэффициентов и т.п. Значимость фактора определяется значением (абсолютным) коэффициента регрессии если все факторы бинарные. Проще пересчитать коэффициенты регрессии в отношения шансов (если SPSS этого не сделала) по формуле ОШ=exp(коэфф.регрессии). Чем больше ОШ, тем сильнее значимость фактора.
Если какие-то показатели не бинарные - появляется небольшая проблема - как стандартизовать ОШ (ибо сравнивать изменение возраста на 1 год и АД на 1 мм. рт. ст. достаточно бессмысленно). В этом случае принято пойти в модуль описательной статистики и рассчитать для каждого показателя стандартное отклонение. Затем рассчитывается стандартизованный ОШ = exp(коэфф.регрессии*стандартное отклонение). Теперь можно сравнивать "по силе" факторы и качественные, и количественные.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Tatiana
сообщение 15.08.2007 - 23:17
Сообщение #10





Группа: Пользователи
Сообщений: 7
Регистрация: 15.08.2007
Пользователь №: 4262



У меня тоже есть вопрос по применению логистической регрессии, пожалуйста, подскажите.
Если в модели используются порядковые независимые переменные, не бинарные, напрммер степень выраженности чего либо (1 - нет, 2-слабая, 3- сльная). Зависимая - бинарная, как полагается ( 1 -есть болезнь, 0 -нет), то как интерпретировать результаты? Как правильно оценить риск развития заболевания от этого фактора?. Пользуюсь Statistica 6. Расчетная величина OR=3.5. Это как правильно интерпретировать?
Когда независимая бинарная понятно. Или нужно все-таки разбивать независимую на несколько бинарных переменных. Подскажите, пожалуйста, кто сталкивался с этим.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
плав
сообщение 27.08.2007 - 10:44
Сообщение #11





Группа: Пользователи
Сообщений: 1013
Регистрация: 4.10.2006
Пользователь №: 1933



Цитата(Tatiana @ 16.08.2007 - 00:17) [snapback]3157[/snapback]
У меня тоже есть вопрос по применению логистической регрессии, пожалуйста, подскажите.
Если в модели используются порядковые независимые переменные, не бинарные, напрммер степень выраженности чего либо (1 - нет, 2-слабая, 3- сльная). Зависимая - бинарная, как полагается ( 1 -есть болезнь, 0 -нет), то как интерпретировать результаты? Как правильно оценить риск развития заболевания от этого фактора?. Пользуюсь Statistica 6. Расчетная величина OR=3.5. Это как правильно интерпретировать?
Когда независимая бинарная понятно. Или нужно все-таки разбивать независимую на несколько бинарных переменных. Подскажите, пожалуйста, кто сталкивался с этим.

Если Вы кодировали переменные так, как написали - 1,2,3, то интерпретировать отношение шансов бессмысленно - Вы предположили, что "дистанция" от слабого до сильного и от отсутствия до слабого одинаковая.
Надо делать так: вместо одной переменной с тремя уровнями сделать две бинарных переменных. Например - Exist (0 - нет, 1- да) и Severity (0- нет или слабая, 1 - сильная). Тогда Вы полностью описываете свою классификацию:
Exist Severity
нет 0 0
слабая 1 0
сильная 1 1
Получаете два отношения шансов. Первое показывает во сколько раз наличие чего-то увеличивает шансы наличия заболевания, второе - во сколько раз сильное воздействие увеличивает шансы наличия заболевания по сравнению с отсутствием/слабоым воздействием. Произведение отношения шансов - во сколько раз риск при сильной выраженности больше, чем при отсутствии и т.д.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

Добавить ответ в эту темуОткрыть тему