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

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

3 страниц V  < 1 2 3  
Добавить ответ в эту темуОткрыть тему
> Корреляция, определение значимости коэффициента
SurgeonAnastasia
сообщение 9.03.2017 - 11:12
Сообщение #31





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



Цитата(DrgLena @ 8.03.2017 - 23:34) *
А какую регрессию вы считаете и, что у вас при этом зависимая переменная, и что предикторы?

Линейную регрессию, предикторы-психологические показатели, ш эу эн лк, переменная- стоматологические иг уд мт кт
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 9.03.2017 - 12:02
Сообщение #32





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



Цитата(SurgeonAnastasia @ 9.03.2017 - 11:12) *
Линейную регрессию, предикторы-психологические показатели, ш эу эн лк, переменная- стоматологические иг уд мт кт


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

Для того что бы отвергнуть переменную из модели нужен критерий оптимальности модели в целом, это могут быть информационные критерии (AIC и т.п.). Может также использована специальная процедура рандомизации-бутстрепа с включением специально сконструированных предикторов-маркеров (library{Boruta} и другие алгоритмы "отбора значимых предикторов").

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


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
DrgLena
сообщение 9.03.2017 - 13:18
Сообщение #33





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



Виды мотивации и локус контроль не влияют на состоятельность имплантов. Трудно себе представить другой результат этого исследования, например, что локус контроль может влиять на состоятельность костной ткани.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
SurgeonAnastasia
сообщение 9.03.2017 - 14:31
Сообщение #34





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



Ну почему же не влияют? Работая каждый день с пациентами, устанавливая эти имплантаты, наблюдая за тем, как картина меняется в течение времени, наверное, не просто решили мы это исследование начать. Состоятельность костной ткани в области имплантатов зависит от множества фактров, но не для кого не секрет, что и локус контроля, и мотивация влияют на лечение, не я это придумала и изучала изначально в других сферах медицины.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
SurgeonAnastasia
сообщение 9.03.2017 - 14:34
Сообщение #35





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



Цитата(p2004r @ 9.03.2017 - 12:02) *
Сама по себе регрессия не способна сказать что связь имеет место быть, поскольку способна _бесконечно_ переобучаться. В этом очень легко убедиться просто добавляя случайно сгенеренные переменные в модель, модель их с удовольствием примет и снизит ошибку подгонки модели к таким расширенным данным.

Для того что бы отвергнуть переменную из модели нужен критерий оптимальности модели в целом, это могут быть информационные критерии (AIC и т.п.). Может также использована специальная процедура рандомизации-бутстрепа с включением специально сконструированных предикторов-маркеров (library{Boruta} и другие алгоритмы "отбора значимых предикторов").

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

Уважаемый p2004r Вы проделали очень большую работу, спасибо Вам большое, разбираюсь пока в этом. Я так понимаю, мои подсчеты вообще неактуальны.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 9.03.2017 - 18:39
Сообщение #36





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



Цитата(SurgeonAnastasia @ 9.03.2017 - 14:34) *
Уважаемый p2004r Вы проделали очень большую работу, спасибо Вам большое, разбираюсь пока в этом. Я так понимаю, мои подсчеты вообще неактуальны.


Вот еще результат восьми процедур отбора значимых предикторов для каждой из переменных выборки.

p=0.01

Код
> Boruta(к.т~., data=data, maxRuns = 2600)
Boruta performed 2453 iterations in 51.44179 secs.
No attributes deemed important.
7 attributes confirmed unimportant: иг, лк, м.т, уд, ш and 2 more.

> Boruta(м.т~., data=data, maxRuns = mega_shok.gif0)
Boruta performed 23 iterations in 0.4761589 secs.
1 attributes confirmed important: уд.
6 attributes confirmed unimportant: иг, к.т, лк, ш, э.н and 1 more.

> Boruta(уд~., data=data, maxRuns = 1800)
Boruta performed 70 iterations in 1.545961 secs.
1 attributes confirmed important: м.т.
6 attributes confirmed unimportant: иг, к.т, лк, ш, э.н and 1 more.

> Boruta(иг~., data=data, maxRuns = 1800)
Boruta performed 82 iterations in 2.246107 secs.
No attributes deemed important.
7 attributes confirmed unimportant: к.т, лк, м.т, уд, ш and 2 more.

> Boruta(э.н~., data=data, maxRuns = 1800)
Boruta performed 14 iterations in 0.370903 secs.
No attributes deemed important.
7 attributes confirmed unimportant: иг, к.т, лк, м.т, уд and 2 more.

> Boruta(э.у~., data=data, maxRuns = 1800)
Boruta performed 75 iterations in 1.928164 secs.
1 attributes confirmed important: лк.
6 attributes confirmed unimportant: иг, к.т, м.т, уд, ш and 1 more.

> Boruta(ш~., data=data, maxRuns = 1800)
Boruta performed 26 iterations in 0.591598 secs.
No attributes deemed important.
7 attributes confirmed unimportant: иг, к.т, лк, м.т, уд and 2 more

> Boruta(лк~., data=data, maxRuns = 1800)
Boruta performed 470 iterations in 11.84426 secs.
2 attributes confirmed important: к.т, э.у.
5 attributes confirmed unimportant: иг, м.т, уд, ш, э.н.


Код
> Boruta(к.т~., data=data, maxRuns = 6000, pValue = 0.05)
Boruta performed 1314 iterations in 26.98678 secs.
No attributes deemed important.
7 attributes confirmed unimportant: иг, лк, м.т, уд, ш and 2 more.

> Boruta(м.т~., data=data, maxRuns = 6000, pValue = 0.05)
Boruta performed 53 iterations in 1.084951 secs.
1 attributes confirmed important: уд.
6 attributes confirmed unimportant: иг, к.т, лк, ш, э.н and 1 more.

> Boruta(уд~., data=data, maxRuns = 6000, pValue = 0.05)
Boruta performed 41 iterations in 0.8648179 secs.
1 attributes confirmed important: м.т.
6 attributes confirmed unimportant: иг, к.т, лк, ш, э.н and 1 more.

> Boruta(иг~., data=data, maxRuns = 6000, pValue = 0.05)
Boruta performed 851 iterations in 23.46029 secs.
No attributes deemed important.
7 attributes confirmed unimportant: к.т, лк, м.т, уд, ш and 2 more.

> Boruta(э.н~., data=data, maxRuns = 6000, pValue = 0.05)
Boruta performed 53 iterations in 1.339764 secs.
No attributes deemed important.
7 attributes confirmed unimportant: иг, к.т, лк, м.т, уд and 2 more.

> Boruta(э.у~., data=data, maxRuns = 6000, pValue = 0.05)
Boruta performed 51 iterations in 1.270474 secs.
1 attributes confirmed important: лк.
6 attributes confirmed unimportant: иг, к.т, м.т, уд, ш and 1 more.

> Boruta(ш~., data=data, maxRuns = 6000, pValue = 0.05)
Boruta performed 11 iterations in 0.3183038 secs.
No attributes deemed important.
7 attributes confirmed unimportant: иг, к.т, лк, м.т, уд and 2 more.

> Boruta(лк~., data=data, maxRuns = 6000, pValue = 0.05)
Boruta performed 241 iterations in 5.959469 secs.
2 attributes confirmed important: к.т, э.у.
5 attributes confirmed unimportant: иг, м.т, уд, ш, э.н.


Как видно имеется одна связь между наборами которую выборка способна подтвердить -- "лк--к.т" . Зная состояние э.у и к.т можно более состоятельно предсказывать лк.

Код
> ranger(лк~., data=data, num.trees = 15500)
Ranger result

Call:
ranger(лк ~ ., data = data, num.trees = 15500)

Type:                             Classification
Number of trees:                  15500
Sample size:                      46
Number of independent variables:  7
Mtry:                             2
Target node size:                 1
Variable importance mode:         none
OOB prediction error:             43.48 %
> ranger(лк~., data=data[c("лк", "э.у", "к.т")], num.trees = 15500)
Ranger result

Call:
ranger(лк ~ ., data = data[c("лк", "э.у", "к.т")], num.trees = 15500)

Type:                             Classification
Number of trees:                  15500
Sample size:                      46
Number of independent variables:  2
Mtry:                             1
Target node size:                 1
Variable importance mode:         none
OOB prediction error:             26.09 %


Код
> randomForest(лк~., data=data[c("лк", "э.у", "к.т")], ntree = 15500)

Call:
randomForest(formula = лк ~ ., data = data[c("лк", "э.у",      "к.т")], ntree = 15500)
               Type of random forest: classification
                     Number of trees: 15500
No. of variables tried at each split: 1

        OOB estimate of  error rate: 26.09%
Confusion matrix:
   0  1 class.error
0 23  5   0.1785714
1  7 11   0.3888889
> randomForest(лк~., data=data, ntree = 15500)

Call:
randomForest(formula = лк ~ ., data = data, ntree = 15500)
               Type of random forest: classification
                     Number of trees: 15500
No. of variables tried at each split: 2

        OOB estimate of  error rate: 43.48%
Confusion matrix:
   0 1 class.error
0 19 9   0.3214286
1 11 7   0.6111111
>


По отдельности они хуже

Код
> randomForest(лк~., data=data[c("лк", "э.у")], ntree = 15500)

Call:
randomForest(formula = лк ~ ., data = data[c("лк", "э.у")],      ntree = 15500)
               Type of random forest: classification
                     Number of trees: 15500
No. of variables tried at each split: 1

        OOB estimate of  error rate: 30.43%
Confusion matrix:
   0  1 class.error
0 21  7   0.2500000
1  7 11   0.3888889
> randomForest(лк~., data=data[c("лк",  "к.т")], ntree = 15500)

Call:
randomForest(formula = лк ~ ., data = data[c("лк", "к.т")],      ntree = 15500)
               Type of random forest: classification
                     Number of trees: 15500
No. of variables tried at each split: 1

        OOB estimate of  error rate: 34.78%
Confusion matrix:
   0 1 class.error
0 28 0   0.0000000
1 16 2   0.8888889


Как видим ошибка предсказания резко сокращается на отобранных Boruta значимых предикторах.

PS 6-7% дает точности дополнительной к.т

Сообщение отредактировал p2004r - 9.03.2017 - 18:44


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 12.03.2017 - 06:09
Сообщение #37





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Цитата(leo_biostat @ 3.03.2017 - 18:43) *
Это вопрос, кто кого вводит в заблуждение. Напомню, в своём обращении автор спрашивает: "Правильный ли у меня алгоритм действий?" То есть правильно ли ограничиваться лишь одной парной корреляцией, или же следует использовать что-то другое?
Исходя из собственного более 35-летнего опыта статистического анализа как биомед. данных, так и иных спец. данных (объёмами более миллиона наблюдений и более тысячи признаков), утверждаю, что ограничение изучением лишь одних парных взаимосвязей, при игнорировании разных многомерных методов анализа, это просто исследовательская ошибка. Опытные врачи, при лечении своих пациентов, не просто фиксируют числовые значения результатов разных видов анализа, а обобщают их в разные последовательности значений. Т.е. фактически формируют многомерную модель состояния пациента. Отвержение сложных методов анализа может быть ещё и результатом отсутствия собственного опыта в использовании таких методов. В таких ситуациях лучше интересоваться аргументацией использования предлагаемых сложных методов.

Если это - вопрос, то давайте на него ответим.

1. Терминология. Называть множественную логистическую регрессию методом многомерного статистического анализа не вполне корректно. В википедии, например, на это прямо указано и объяснено почему: "Certain types of problem involving multivariate data, for example simple linear regression and multiple regression, are not usually considered as special cases of multivariate statistics because the analysis is dealt with by considering the (univariate) conditional distribution of a single outcome variable given the other variables" ( https://en.wikipedia.org/wiki/Multivariate_statistics ). Справедливости ради нужно сказать, что в некоторой справочной литературе множественную регрессию относят к multivariate техникам. Тем не менее, раз здесь существуют кривотолки, таких безапелляционных формулировок лучше избегать.

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

3. Ну, предположим, топикстартер как новичок путает корреляцию с регрессией и неточно сформулировал цель. В действительности её интересуют как психологические параметры влияют на стоматологические. Можно было предположить и как стоматологические проблемы сказываются на психологии - повернём задачу в сторону регрессии. Но вы-то не новичок (типа "миллионы...", "тысячи...", бла-бла-бла...) и должны знать, что для таких массивов и задач существует многомерный вариант регрессии - анализ избыточности (Redundancy analysis, RDA), а если интересует именно прогноз - то метод частных наименьших квадратов (Partial least squares regression или projection on latent structures, PLS). Здесь, возможно, придётся повозиться с оцифровкой порядковых и дихотомических признаков, или использовать менее традиционные подходы - как p2004r-, но тем не менее это - никак не задача логистической регрессии с одной пременной-откликом. Что вы предлагаете: (1) выдернуть из одного массива дихотомический показатель и моделировать его логистической регрессией? (2) найти какой-нибудь один показатель, который сойдёт за отклик, дихотомизировать его искусственно (т.е. с потерей информации) и моделировать? Это такой правильный алгоритм действий вы советуете? Можно было-бы назвать это наивным, если бы не было более уместных, но и менее лестных определений.

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

Сообщение отредактировал nokh - 12.03.2017 - 08:28
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
leo_biostat
сообщение 12.03.2017 - 19:09
Сообщение #38





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



Цитата(SurgeonAnastasia @ 4.03.2017 - 17:17) *
Что выбрать дальше? Логистическую регрессию, байесовские сети или ещё какой метод?



Чтобы ответить на Ваш вопрос более конкретно и продуктивно, можете выслать на мой мэйл свой массив данных, с описанием цели исследования.
И я вышлю Вам список рекомендуемых методов анализа а их аргументацией.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 12.03.2017 - 20:28
Сообщение #39





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



Цитата(leo_biostat @ 12.03.2017 - 19:09) *
Чтобы ответить на Ваш вопрос более конкретно и продуктивно, можете выслать на мой мэйл свой массив данных, с описанием цели исследования.
И я вышлю Вам список рекомендуемых методов анализа а их аргументацией.



Надо же, какие шуры-муры с клиентурой. А что, то обстоятельство, что база данных выложена в сообщении #22, подразумевает ее дублирование на мэйл?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Олег Кравец
сообщение 12.03.2017 - 21:30
Сообщение #40





Группа: Модераторы
Сообщений: 286
Регистрация: 1.02.2005
Из: Воронеж
Пользователь №: 93



[Moderator on]
PLS, постарайтесь не уходить к личностям
[Moderator off]

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


Signature
О.Я.Кравец, д.т.н., проф.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 12.03.2017 - 23:21
Сообщение #41





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



Цитата(Олег Кравец @ 12.03.2017 - 21:30) *
[Moderator on]
PLS, постарайтесь не уходить к личностям
[Moderator off]

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


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

И да, берегите костную ткань. А то неизвестно, что на что влияет сильнее: то ли психология на стоматологию, то ли наоборот. Почитайте лучше опус проф. Орлова "О критерии Стьюдента и интеллектуальном рэкете". Удовольствия кратно больше, а зубовного скрежета соответственно меньше.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

3 страниц V  < 1 2 3
Добавить ответ в эту темуОткрыть тему