These methods tidy the coefficients of multinomial logistic regression models generated by multinom of the nnet package.

# S3 method for multinom
tidy(x, conf.int = FALSE, conf.level = 0.95,
  exponentiate = TRUE, ...)

Arguments

x

A multinom object returned from nnet::multinom().

conf.int

Logical indicating whether or not to include a confidence interval in the tidied output. Defaults to FALSE.

conf.level

The confidence level to use for the confidence interval if conf.int = TRUE. Must be strictly greater than 0 and less than 1. Defaults to 0.95, which corresponds to a 95 percent confidence interval.

exponentiate

Logical indicating whether or not to exponentiate the the coefficient estimates. This is typical for logistic and multinomial regressions, but a bad idea if there is no log or logit link. Defaults to FALSE.

...

Additional arguments. Not used. Needed to match generic signature only. Cautionary note: Misspelled arguments will be absorbed in ..., where they will be ignored. If the misspelled argument has a default value, the default value will be used. For example, if you pass conf.lvel = 0.9, all computation will proceed using conf.level = 0.95. Additionally, if you pass newdata = my_tibble to an augment() method that does not accept a newdata argument, it will use the default value for the data argument.

See also

tidy(), nnet::multinom()

Other multinom tidiers: glance.multinom

Value

A tibble::tibble() with columns:

conf.high

The upper end of a confidence interval for the term under consideration. Included only if `conf.int = TRUE`.

conf.low

The lower end of a confidence interval for the term under consideration. Included only if `conf.int = TRUE`.

estimate

The estimated value of the regression term.

p.value

The two-sided p-value associated with the observed statistic.

statistic

The value of a T-statistic to use in a hypothesis that the regression term is non-zero.

std.error

The standard error of the regression term.

term

The name of the regression term.

y.value

The response level

Examples

library(nnet) library(MASS) example(birthwt)
#> #> brthwt> bwt <- with(birthwt, { #> brthwt+ race <- factor(race, labels = c("white", "black", "other")) #> brthwt+ ptd <- factor(ptl > 0) #> brthwt+ ftv <- factor(ftv) #> brthwt+ levels(ftv)[-(1:2)] <- "2+" #> brthwt+ data.frame(low = factor(low), age, lwt, race, smoke = (smoke > 0), #> brthwt+ ptd, ht = (ht > 0), ui = (ui > 0), ftv) #> brthwt+ }) #> #> brthwt> options(contrasts = c("contr.treatment", "contr.poly")) #> #> brthwt> glm(low ~ ., binomial, bwt) #> #> Call: glm(formula = low ~ ., family = binomial, data = bwt) #> #> Coefficients: #> (Intercept) age lwt raceblack raceother smokeTRUE #> 0.82302 -0.03723 -0.01565 1.19241 0.74068 0.75553 #> ptdTRUE htTRUE uiTRUE ftv1 ftv2+ #> 1.34376 1.91317 0.68020 -0.43638 0.17901 #> #> Degrees of Freedom: 188 Total (i.e. Null); 178 Residual #> Null Deviance: 234.7 #> Residual Deviance: 195.5 AIC: 217.5
bwt.mu <- multinom(low ~ ., bwt)
#> # weights: 12 (11 variable) #> initial value 131.004817 #> iter 10 value 98.029803 #> final value 97.737759 #> converged
tidy(bwt.mu)
#> # A tibble: 11 x 6 #> y.level term estimate std.error statistic p.value #> <chr> <chr> <dbl> <dbl> <dbl> <dbl> #> 1 1 (Intercept) 2.28 1.24 0.661 0.508 #> 2 1 age 0.963 0.0387 -0.962 0.336 #> 3 1 lwt 0.984 0.00708 -2.21 0.0271 #> 4 1 raceblack 3.29 0.536 2.22 0.0261 #> 5 1 raceother 2.10 0.462 1.60 0.109 #> 6 1 smokeTRUE 2.13 0.425 1.78 0.0755 #> 7 1 ptdTRUE 3.83 0.481 2.80 0.00518 #> 8 1 htTRUE 6.77 0.721 2.65 0.00794 #> 9 1 uiTRUE 1.97 0.464 1.46 0.143 #> 10 1 ftv1 0.646 0.479 -0.910 0.363 #> 11 1 ftv2+ 1.20 0.456 0.392 0.695
glance(bwt.mu)
#> # A tibble: 1 x 3 #> edf deviance AIC #> <dbl> <dbl> <dbl> #> 1 11 195. 217.
#* This model is a truly terrible model #* but it should show you what the output looks #* like in a multinomial logistic regression fit.gear <- multinom(gear ~ mpg + factor(am), data = mtcars)
#> # weights: 12 (6 variable) #> initial value 35.155593 #> iter 10 value 14.156582 #> iter 20 value 14.031881 #> iter 30 value 14.025659 #> iter 40 value 14.021414 #> iter 50 value 14.019824 #> iter 60 value 14.019278 #> iter 70 value 14.018601 #> iter 80 value 14.018282 #> iter 80 value 14.018282 #> iter 90 value 14.017126 #> final value 14.015374 #> converged
tidy(fit.gear)
#> # A tibble: 6 x 6 #> y.level term estimate std.error statistic p.value #> <chr> <chr> <dbl> <dbl> <dbl> <dbl> #> 1 4 (Intercept) 1.44e-5 5.32 -2.10 3.60e- 2 #> 2 4 mpg 1.69e+0 0.268 1.96 5.02e- 2 #> 3 4 factor(am)1 1.47e+5 66.9 0.178 8.59e- 1 #> 4 5 (Intercept) 1.03e-8 67.9 -0.271 7.87e- 1 #> 5 5 mpg 1.44e+0 0.292 1.25 2.10e- 1 #> 6 5 factor(am)1 5.58e+9 2.17 10.3 4.54e-25
glance(fit.gear)
#> # A tibble: 1 x 3 #> edf deviance AIC #> <dbl> <dbl> <dbl> #> 1 6 28.0 40.0