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

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

5 страниц V  « < 3 4 5  
Добавить ответ в эту темуОткрыть тему
> multifactor dimensionality reduction
YVR
сообщение 21.03.2012 - 20:50
Сообщение #61





Группа: Пользователи
Сообщений: 63
Регистрация: 20.03.2012
Из: Ташкент
Пользователь №: 23582



Цитата(p2004r @ 21.03.2012 - 14:34) *
вот протокол исключения параметров из модели

Код
Progres ~ Shunt + cholesterin + diabetus.melitus + tip.1 + tip.2


Что интересно у меня нелинейная модель, но попробовал два варианта:

  1. Взял 9 первых в таблице параметров (кроме CA)
  2. Оставшиеся после исключения 5 параметров, как получилось у Вас


По п. 1 модель дала сепарабельность 96.77% т.е. в 60 из 62 наличие или отсутствие Прогресса было вычислено правильно. Теоретически подогнать модель можно и под 100% сепарабельность, но практически нельзя, т.к. модель со 100% сепарабельностью, полученная на обучающей выборке (31 пример) нестационарна. Т.е. на контрольной выборке (тоже 31 пример) имеет значительно отличающиеся матожидание и дисперсию, вычисленные по остаткам на выборке обучающей. А нестационарная модель нерепродуктивна, т.е. может быть опровергнута независимыми экспериментами.

По п. 2 модель дала сепарабельность 75.81% т.е. в 47 из 62 случаев наличие или отсутствие Прогресса было вычислено правильно. Но модель нестационарна, даже по количеству распознанных Прогрессов - на обучающей выборке их 32, а на контрольной только 15. Да впрочем почему модель нестационарна понять не сложно: все признаки кроме холестерина бинарны и распределены неравномерно, т.е. добиться более или менее приемлемой стационарности при таких данных можно только на очень больших выборках.

Сообщение отредактировал YVR - 21.03.2012 - 20:51


Signature
Yury V. Reshetov

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 22.03.2012 - 01:17
Сообщение #62





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



Цитата(YVR @ 21.03.2012 - 20:50) *
Что интересно у меня нелинейная модель, но попробовал два варианта:

  1. Взял 9 первых в таблице параметров (кроме CA)
  2. Оставшиеся после исключения 5 параметров, как получилось у Вас


По п. 1 модель дала сепарабельность 96.77% т.е. в 60 из 62 наличие или отсутствие Прогресса было вычислено правильно. Теоретически подогнать модель можно и под 100% сепарабельность, но практически нельзя, т.к. модель со 100% сепарабельностью, полученная на обучающей выборке (31 пример) нестационарна. Т.е. на контрольной выборке (тоже 31 пример) имеет значительно отличающиеся матожидание и дисперсию, вычисленные по остаткам на выборке обучающей. А нестационарная модель нерепродуктивна, т.е. может быть опровергнута независимыми экспериментами.

По п. 2 модель дала сепарабельность 75.81% т.е. в 47 из 62 случаев наличие или отсутствие Прогресса было вычислено правильно. Но модель нестационарна, даже по количеству распознанных Прогрессов - на обучающей выборке их 32, а на контрольной только 15. Да впрочем почему модель нестационарна понять не сложно: все признаки кроме холестерина бинарны и распределены неравномерно, т.е. добиться более или менее приемлемой стационарности при таких данных можно только на очень больших выборках.


Все можно проверить бутстрепом

Код
> ci.auc(roc.model.f)
95% CI: 0.6836-0.9026 (DeLong)
> ci.auc(roc.model.f,method="bootstrap")
95% CI: 0.6677-0.8945 (2000 stratified bootstrap replicates)
> ci.auc(roc.model)
95% CI: 0.7209-0.926 (DeLong)
> ci.auc(roc.model,method="bootstrap")
95% CI: 0.7126-0.9164 (2000 stratified bootstrap replicates)
>


если коэффициенты модели, то они тоже могут быть оценены

Код
r.boot <- t(replicate(200,
                      as.numeric((glm(Progres ~ Shunt + cholesterin + diabetus.melitus + tip.1 + tip.2,
                                      family=binomial(logit),
                                      data.sh.f[sample.int(length(data.sh.f[,1]),
                                                           replace = TRUE),]))$coefficients)))

parallel(r.boot, horizontal.axis=FALSE)


безусловно случаев крайне немного даже для сколько нибудь уверенных выводах даже для линейной модели
Эскизы прикрепленных изображений
Прикрепленное изображение
 


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





Группа: Пользователи
Сообщений: 63
Регистрация: 20.03.2012
Из: Ташкент
Пользователь №: 23582



Собрал экспертную систему в Excel файле. Вычисляет вероятность Progress по данным из выборки.

Прикрепленный файл  probability.zip ( 13,49 килобайт ) Кол-во скачиваний: 240


Signature
Yury V. Reshetov

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
_alena_
сообщение 23.03.2012 - 16:35
Сообщение #64





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



так а в MDR можно что то сделать???? если да то подскажите как. Спасибо!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 23.03.2012 - 17:25
Сообщение #65





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



Ну нелинейно так нелинейно smile.gif

Итак randomForest, он сразу пишет бутстреп оценку насколько можно доверять его результатам (естественно обучающую выборку пилит со 100% точностью)

Код
> names(data.sh.f)
[1] "X..bolnogo"            "AIK"                   "CA"                  
[4] "Progres"               "OP"                    "Shunt"                
[7] "Srok.gruppy"           "vozrast"               "IMT"                  
[10] "Stepen.Oz."            "pol"                   "tip.krovoobraschenija"
[13] "ChSS"                  "AD"                    "AG.therapia"          
[16] "Statiny"               "cholesterin"           "stenoz.a.renalis"    
[19] "stenoz.arterij.nog"    "insult.v.anamnese"     "diabetus.melitus"    
[22] "tip.1"                 "tip.2"                 "tip.3"                
[25] "statin.ter"            "statin.break"          "statin.doz"    

> randomForest(data.sh.f[,-c(1,4,16,12)], y=factor(data.sh.f$Progres))

Call:
randomForest(x = data.sh.f[, -c(1, 4, 16, 12)], y = factor(data.sh.f$Progres))
               Type of random forest: classification
                     Number of trees: 500
No. of variables tried at each split: 4

        OOB estimate of  error rate: 40.32%
Confusion matrix:
   0  1 class.error
0 15 14   0.4827586
1 11 22   0.3333333
>

важность переменных

> randomForest(data.sh.f[,c(7,8,9,17)], y=factor(data.sh.f$Progres))

Call:
randomForest(x = data.sh.f[, c(7, 8, 9, 17)], y = factor(data.sh.f$Progres))
               Type of random forest: classification
                     Number of trees: 500
No. of variables tried at each split: 2

        OOB estimate of  error rate: 40.32%
Confusion matrix:
   0  1 class.error
0 18 11   0.3793103
1 14 19   0.4242424

varImpPlot(randomForest(data.sh.f[,-c(1,4,16,12)], y=factor(data.sh.f$Progres)), type=2)


ну типа вот нелинейная важность данных для классификации.

присоединим картинку как он классифицирует по первым самым важным.

а не такая плохая модель

Код
> m.rf <-glm(Progres ~ Srok.gruppy + cholesterin + IMT + vozrast ,
+            family=binomial(logit),
+            data.sh.f)


> roc.m.rf.f <- roc(data.sh.f$Progres,               # данные из выборки
+                   predict(m.rf, type="response")) # предсказание модели


> densityplot( ~ predict(m.rf,
+                        type = "response"),
+             groups = data.sh.f$Progres,
+             plot.points = "rug",
+             auto.key = TRUE)


> plot(roc.m.rf.f)

Call:
roc.default(response = data.sh.f$Progres, predictor = predict(m.rf,     type = "response"))

Data: predict(m.rf, type = "response") in 29 controls (data.sh.f$Progres 0) < 33 cases (data.sh.f$Progres 1).
Area under the curve: 0.7827

> ci.auc(roc.m.rf.f)
95% CI: 0.6579-0.9074 (DeLong)


Сообщение отредактировал p2004r - 23.03.2012 - 17:57
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

 


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

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