File: methods_lrm.R

package info (click to toggle)
r-cran-parameters 0.24.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,852 kB
  • sloc: sh: 16; makefile: 2
file content (70 lines) | stat: -rw-r--r-- 1,513 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
## from rms / rmsb package


# model parameters -------------


#' @export
model_parameters.blrm <- model_parameters.bayesQR


# standard error -------------


#' @export
standard_error.lrm <- function(model, ...) {
  se <- sqrt(diag(stats::vcov(model)))

  # psm-models returns vcov-matrix w/o dimnames
  if (is.null(names(se))) names(se) <- names(stats::coef(model))

  .data_frame(
    Parameter = .remove_backticks_from_string(names(se)),
    SE = as.vector(se)
  )
}

#' @export
standard_error.ols <- standard_error.lrm

#' @export
standard_error.rms <- standard_error.lrm

#' @export
standard_error.psm <- standard_error.lrm


# p-values -----------------------

#' @export
p_value.lrm <- function(model, ...) {
  stat <- insight::get_statistic(model)

  # Issue: 697: typically the degrees of freedom are the same for every
  # observation, but the value is repeated. This poses problems in multiple
  # imputation models with Hmisc when we get more df values than parameters.
  dof <- insight::get_df(model, type = "wald")
  dfu <- unique(dof)
  if (length(dfu) == 1) {
    dof <- dfu
  }

  p <- 2 * stats::pt(abs(stat$Statistic), df = dof, lower.tail = FALSE)

  .data_frame(
    Parameter = .remove_backticks_from_string(stat$Parameter),
    p = as.vector(p)
  )
}

#' @export
p_value.ols <- p_value.lrm

#' @export
p_value.rms <- p_value.lrm

#' @export
p_value.psm <- p_value.lrm

#' @export
p_value.blrm <- p_value.BFBayesFactor