![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 24 Регистрация: 11.06.2014 Пользователь №: 26460 ![]() |
Здравствуйте, коллеги! Прошу помощи в анализе данных.
Задача исследования - оценить связь между генотипом (15 SNP), "промежуточным фенотипом" (параметры биохимии, иммунологии и др.), исходом (ЗНО есть/нет). Существующий сервис "SNPstats" (http://bioinfo.iconcologia.net/SNPstats_web) выдает отношения шансов, "adjustet by фактор1+фактор2+...", используется при этом "logistic regression models" (то есть, логит-регрессию?). Хотелось бы поточнее узнать, что значит "adjusted by". Кроме того, в данной програме остается "за кадром", какой из факторов является ведущим. Возможно, есть какие то альтернативные методы анализа, позволяющие оценить вклад конкретных факторов? Посоветуйте, пожалуйста. Заранее благодарен. И есть ещё один вопрос: По разным SNP имеется разное количество генотипированных, как и разное количество известных значений по каждому из "промежуточных фенотипов" и исходов. То есть, грубо говоря, выборки по каждому из SNP перекрываются только отчасти. Нужно ли в этом случае рассматривать проблему множественных сравнений? Спасибо! |
|
![]() |
![]() |
![]() |
![]()
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 24 Регистрация: 11.06.2014 Пользователь №: 26460 ![]() |
Добрый день, коллеги!
Изучение вопроса привело меня к необходимости использовать random forests, а именно - модификацию, доступную в пакете party для R (cforest), где для построения леса используются "безошибочные" деревья, т.к. в этом случае адекватно оценивается важность переменных и нет преференций для количественных данных (как в "стандартном" random forests)[Strobl, 2007]. Кроме того, необходимо вычислять "кондиционную" значимость, которая адекватнее в случае коррелированных переменных [Strobl, 2009]. И тут возникает следующее препятствие: missing values, которые в моих данных для некоторых параметров составляют более 50%. Однако, и на этот счет у той же "тёти" Strobl нашлось решение [Hapfelmeier, 2013]. На данном этапе моего "мастерства" в R хватает только на импорт таблицы, вычисления значимости переменных и построения гистограммы значимости: read.table("gen2.txt", h=T)->gen2 set.seed(100) cfresults<-cforest(cr~.,data=gen2,controls=cforest_unbiased(mtry=10,ntree=100)) varimp(cfresults)->vi1 par(las=2) barplot(sort(vi1),main="Variable importance",space=0.5,cex.names=0.6) Прошу помощи у бывалых: 1) Каким должен быть код для вычисления кондиционной важности переменных при наличии пропусков данных? В приложении к [Hapfelmeier, 2013] есть код, но там другие задачи исследования и я не могу разобрать что к чему. 2) Как нарисовать индивидуальные деревья в cforest и правильно интерпретировать их? Может быть, кто - то соизволит поковыряться с моими данными, на этот случай прилагаю таблицу. Также прилагается Hapfelmeier, 2013 Сообщение отредактировал don - 25.09.2014 - 09:51
Прикрепленные файлы
![]() ![]() |
|
![]() |
![]() |
![]()
Сообщение
#3
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
Прошу помощи у бывалых: 1) Каким должен быть код для вычисления кондиционной важности переменных при наличии пропусков данных? В приложении к [Hapfelmeier, 2013] есть код, но там другие задачи исследования и я не могу разобрать что к чему. 2) Как нарисовать индивидуальные деревья в cforest и правильно интерпретировать их? Может быть, кто - то соизволит поковыряться с моими данными, на этот случай прилагаю таблицу. Также прилагается Hapfelmeier, 2013 1) Воспользоваться любым методом импутации данных А для отбора значимых предикторов можно использовать library(Boruta), на этом форуме уже есть пример её использования. Метод ищет значимые, а не просто имеющие большое значение с точки зрения рандомфореста предикторы. ![]() |
|
![]() |
![]() |
![]()
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 24 Регистрация: 11.06.2014 Пользователь №: 26460 ![]() |
1) Воспользоваться любым методом импутации данных Благодарю за ответ! Объясню ситуацию: 1) Доступное количество наблюдений по снипам и статусу case/control = 430 2) Доступное количество наблюдений по параметрам х1, х2, х3 = 250, 200, 180 То есть, если использовать методы импутации, получится что половина (в лучшем случае) данных окажется импутированной. Позвольте вопрос: правомерно ли брать в анализ переменную, в которой половина данных импутирована? |
|
![]() |
![]() |
![]()
Сообщение
#5
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
Благодарю за ответ! Объясню ситуацию: 1) Доступное количество наблюдений по снипам и статусу case/control = 430 2) Доступное количество наблюдений по параметрам х1, х2, х3 = 250, 200, 180 То есть, если использовать методы импутации, получится что половина (в лучшем случае) данных окажется импутированной. Позвольте вопрос: правомерно ли брать в анализ переменную, в которой половина данных импутирована? 1) Ну вообщето импутация и делается так, "что бы ни один волосок не шевелнулся" ![]() То есть некое многомерное распределение которое представляет из себя данная выборка (или модель данных на основе этого распределения) не поменяло своих параметров после добавления пропущенных случаев. Таким образом работа фактически после импутации ведется с исходным распределением. Другое дело, если хочется определить насколько "неопределенность" вноситься в некие вычисляемые параметры. Ну или хочется получить для каждого "импутируемого" значения процентили разпределения. 2) Если модель допускает некоторые инварианты импутации данных и если Вы делаете импутацию множество раз, то вместо одной выборки получается набор выборок в котором представлено распределение (по которому можно вычислить распределение) интересующей статистики в зависимости от а) имеющихся данных и б) неопределенности предположения о значении отстутствующих данных. Этакий "импутационный бутстреп" ![]() От метода импутации данных с "детерменированным" поведением такого "каждый раз разного" поведения можно добится проведя "складной нож" (или опять же бутстреп) по полным случаям, поскольку их всегда можно подставить потом "на место". ![]() |
|
![]() |
![]() |
![]() ![]() |