Learn R Programming

DySS (version 1.0)

evaluate_control_chart_two_groups: Evaluate Control Charts

Description

The function evaluate_control_chart_two_groups evaluates control charts when the in-control (IC) and out-of-control (OC) charting statistics are supplied separately in two matrices chart_matrix_IC and chart_matrix_OC.

Usage

evaluate_control_chart_two_groups(
  chart_matrix_IC,
  time_matrix_IC,
  nobs_IC,
  starttime_IC,
  endtime_IC,
  chart_matrix_OC,
  time_matrix_OC,
  nobs_OC,
  starttime_OC,
  endtime_OC,
  design_interval,
  n_time_units,
  time_unit,
  no_signal_action = "omit"
)

Value

an list that stores the evaluation measures.

$thres

A numeric vector. Threshold values for control limits.

$FPR

A numeric vector. False positive rates.

$TPR

A numeric vector. True positive rates.

$ATS0

A numeric vector. In-control ATS.

$ATS1

A numeric vector. Out-of-control ATS.

Arguments

chart_matrix_IC, chart_matrix_OC

charting statistics arranged as a numeric matrix.
chart_matrix_IC[i,j] is the jth charting statistic of the ith IC subject.
chart_matrix_OC[i,j] is the jth charting statistic of the ith OC subject.

time_matrix_IC, time_matrix_OC

observation times arranged as a numeric matrix.
time_matrix_IC[i,j] is the jth observation time of the ith IC subject.
time_matrix_OC[i,j] is the jth observation time of the ith OC subject.
chart_matrix_IC[i,j] is the charting statistic of the ith IC subject at time_matrix[i,j].
chart_matrix_OC[i,j] is the charting statistic of the ith OC subject at time_matrix[i,j].

nobs_IC, nobs_OC

number of observations arranged as an integer vector.
nobs_IC[i] is the number of observations for the ith subject.
nobs_OC[i] is the number of observations for the ith subject.

starttime_IC, starttime_OC

a numeric vector that gives the start times.
starttime_IC[i] is the time that the ith IC subject starts to be monitored.
starttime_OC[i] is the time that the ith OC subject starts to be monitored.

endtime_IC, endtime_OC

a numeric vector that gives the end times.
endtime_IC[i] is the time that the ith IC subject is lost to be monitored.
endtime_OC[i] is the time that the ith OC subject is lost to be monitored.

design_interval

a numeric vector of length two that gives the left- and right- limits of the design interval. By default, design_interval=range(time_matrix,na.rm=TRUE).

n_time_units

an integer value that gives the number of basic time units in the design time interval.
The design interval will be discretized to seq(design_interval[1],design_interval[2],length.out=n_time_units)

time_unit

an optional numeric value of basic time unit. Only used when n_time_units is missing.
The design interval will be discretized to seq(design_interval[1],design_interval[2],by=time_unit)

no_signal_action

a character value specifying how to set signal times when processes with no signals.
If no_signal_action=="omit", the signal time is set to be missing.
If no_signal_action=="maxtime", the signal time is set to be the time from start time to the end of the design interval.
If no_signal_action=="endtime", the signal time is set to be the time from start time to the end time.

Details

Evaluate Control Charts

References

Qiu, P. and Xiang, D. (2014). Univariate dynamic screening system: an approach for identifying individuals with irregular longitudinal behavior. Technometrics, 56:248-260.
Qiu, P., Xia, Z., and You, L. (2020). Process monitoring ROC curve for evaluating dynamic screening methods. Technometrics, 62(2).

Examples

Run this code
pattern<-estimate_pattern_long_1d(
  data_matrix=data_example_long_1d$data_matrix_IC,
  time_matrix=data_example_long_1d$time_matrix_IC,
  nobs=data_example_long_1d$nobs_IC,
  design_interval=data_example_long_1d$design_interval,
  n_time_units=data_example_long_1d$n_time_units,
  estimation_method="meanvar",
  smoothing_method="local linear",
  bw_mean=0.1,
  bw_var=0.1)

chart_IC_output<-monitor_long_1d(
  data_example_long_1d$data_matrix_IC,
  data_example_long_1d$time_matrix_IC,
  data_example_long_1d$nobs_IC,
  pattern=pattern,side="upward",chart="CUSUM",
  method="standard",parameter=0.2)

chart_OC_output<-monitor_long_1d(
  data_example_long_1d$data_matrix_OC,
  data_example_long_1d$time_matrix_OC,
  data_example_long_1d$nobs_OC,
  pattern=pattern,side="upward",chart="CUSUM",
  method="standard",parameter=0.2)

output_evaluate<-evaluate_control_chart_two_groups(
  chart_matrix_IC=chart_IC_output$chart[1:50,],
  time_matrix_IC=data_example_long_1d$time_matrix_IC[1:50,],
  nobs_IC=data_example_long_1d$nobs_IC[1:50],
  starttime_IC=rep(0,50),
  endtime_IC=rep(1,50),
  chart_matrix_OC=chart_OC_output$chart[1:50,],
  time_matrix_OC=data_example_long_1d$time_matrix_OC[1:50,],
  nobs_OC=data_example_long_1d$nobs_OC[1:50],
  starttime_OC=rep(0,50),
  endtime_OC=rep(1,50),
  design_interval=data_example_long_1d$design_interval,
  n_time_units=data_example_long_1d$n_time_units,
  no_signal_action="maxtime")

Run the code above in your browser using DataLab