Learn R Programming

weibulltools (version 2.1.0)

r_squared_profiling: 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 wt_cdf_estimation r_squared_profiling( x, thres, distribution = c("weibull3", "lognormal3", "loglogistic3", "exponential2"), direction = c("x_on_y", "y_on_x"), ... )

Value

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

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.

Examples

Run this code
# 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"
)

Run the code above in your browser using DataLab