r_squared_profiling: R-Squared-Profile Function for Parametric Lifetime...

View source: R/r_squared_function.R

r_squared_profilingR Documentation

R-Squared-Profile Function for Parametric Lifetime Distributions with Threshold

Description

This function evaluates the coefficient of determination with respect to a given threshold parameter of a parametric lifetime distribution. In terms of Rank Regression this function can be optimized (optim) to estimate the threshold parameter.

Usage

r_squared_profiling(x, ...)

## S3 method for class 'wt_cdf_estimation'
r_squared_profiling(
  x,
  thres,
  distribution = c("weibull3", "lognormal3", "loglogistic3", "exponential2"),
  direction = c("x_on_y", "y_on_x"),
  ...
)

Arguments

x

A tibble with class wt_cdf_estimation returned by estimate_cdf.

...

Further arguments passed to or from other methods. Currently not used.

thres

A numeric value for the threshold parameter.

distribution

Supposed parametric distribution of the random variable.

direction

Direction of the dependence in the regression model.

Value

Returns the coefficient of determination with respect to the threshold parameter thres.

Examples

# Data:
data <- reliability_data(
  alloy,
  x = cycles,
  status = status
)

# Probability estimation:
prob_tbl <- estimate_cdf(
  data,
  methods = "johnson"
)

# Determining the optimal coefficient of determination:
## Range of threshold parameter must be smaller than the first failure:
threshold <- seq(
  0,
  min(
    dplyr::pull(
      dplyr::filter(
        prob_tbl,
        status == 1,
        x == min(x)
      ),
      x
    ) - 0.1
  ),
  length.out = 100
)

## Coefficient of determination with respect to threshold values:
profile_r2 <- r_squared_profiling(
  x = dplyr::filter(
    prob_tbl,
    status == 1
  ),
  thres = threshold,
  distribution = "weibull3"
)

## Threshold value (among the candidates) that maximizes the coefficient of determination:
threshold[which.max(profile_r2)]

## plot:
plot(
  threshold,
  profile_r2,
  type = "l"
)
abline(
  v = threshold[which.max(profile_r2)],
  h = max(profile_r2),
  col = "red"
)


weibulltools documentation built on April 5, 2023, 5:10 p.m.