Значение P в nnet: мултином (). P-значение Wald тест извлечен, но but как я могу извлечь его по соотношению LIkehood? - PullRequest
0 голосов
/ 22 марта 2020

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

Я получил группу наблюдений (пациентов), которые имеют 1 из 5 классов: Control, A_severe, A_low, B_severe и B_low.

Итак, я попытался согласовать мультиномную модель с пакетом nnet и извлек p-значения теста Вальда следующим образом:

multinom_wout20_1 = multinom(formula_wout20_base,data=wout_20_training, maxit=10000)
summary(multinom_wout20_1)

Coefs:

exp(coef(multinom_wout20_1))

Z Значения

z_wout <- summary(multinom_wout20_1)$coefficients/summary(multinom_wout20_1)$standard.errors
z_wout

И мы получаем p-значения:

# 2-tailed z test
p_wout <- (1 - pnorm(abs(z_wout), 0, 1)) * 2
p_wout

И затем я передал их в пользовательскую переменную, чтобы увидеть их как буквы (больше интуитивно понятно)

## Function to Pass our values to letters.
sign_levels_df_letter <- function(df) {
  df <- ifelse(df >.80, "Z", ifelse(df >.50, "FFF",
             ifelse( df >.30, "FF",
               ifelse(df >.10 , "F", 
               ifelse(df <= 0.0001, "AAA",
                      ifelse(df <= .0005,"AA+",
                             ifelse(df <= .001,"AA",
                                           ifelse(df <= .005, "A+",
                                                  ifelse (df<= .01, "A",
                                                            ifelse(df<= .05, "A-",
                                                                   ifelse(df <=.07, "B",
                                                                          ifelse(df <=.10, "C", NA

                                           ))))))))))))


  return(df)
}
aux_pwout0 = sign_levels_df_letter(p_wout) ; aux_pwout0

То, что я предлагаю, совпадает (потому что они совпадают по своей символике с *, *** и **), если я использую пакет stargazer

library(stargazer)
stargazer(multinom_wout20_1, type= "text" )   #   "html", out="multi1.htm")

Но, как видно из ответа этой темы:

multinomial logisti c регрессия в R: multinom в nnet результат пакета отличается от mlo git в mlo git package?

Есть некоторые проблемы с использованием Wald вместо LogLikehood. ¿Как получить p-значение теста вероятностного отношения из моей модели?

Я не против использовать другую функцию для моих данных, но mlo git из пакета mloget требует, чтобы я прошел мои данные в широком формате, который не так прост, как кажется, но я полагаю, что я могу извлечь из:

R: как отформатировать мои данные для многочлена lo git?

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

1 Ответ

0 голосов
/ 24 марта 2020

Хорошо, я понял.

Из этого поста я извлек функцию, чтобы получить p-значения вероятности в nnet: модели с множественным числом, и опубликовал ее также в качестве ответа.

{ ссылка }

Вы можете увидеть это чуть ниже.


likehoodmultinom_p <- function(model_lmm) 
{

  i <- 1

  variables <-c("No funciona")
  values <- c("No funciona") 


  for (var in model_lmm$coefnames[-1]) { 

  variables[i] =paste(var)
  values[i]= lrtest(model_lmm, var)[[5]][2]
  i=i+1
   ## Contributed to stack at: 
  }
  return (data.frame(variables,values))
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...