Package DTDA.ni

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

Doubly Truncated Data Analysis, Non Iterative

Description [package]

This package implements a non-iterative estimator for the cumulative distribution of a doubly truncated variable, see de Uña-Álvarez (2018). The package is restricted to interval sampling.

de Uña-Álvarez J. (2018) A Non-iterative Estimator for Interval Sampling and Doubly Truncated Data. In: Gil E., Gil E., Gil J., Gil M. (eds) The Mathematics of the Uncertain. Studies in Systems, Decision and Control, vol 142. Springer, Cham, pp. 387-400.

DTDAni(x, u , tau)

Description [function DTDAni]

This function calculates the non-iterative estimator for the cumulative distribution of a doubly truncated variable proposed by de Uña-Álvarez (2018). The package works for interval sampling.

Details [function DTDAni]

The function DTDAni is adapted to the presence of ties. It can be used to compute the direct $(Fd)$ and the reverse $(Fr)$ estimators; see the example below. Both curves are valid estimators for the cumulative distribution $(F)$ of the doubly truncated variable. Weighted estimators $Fw = wFd + (1-w)Fr$ with $0<w<1$ are valid too, the choice $w=1/2$ being recommended in practice (de Uña-Álvarez, 2018).

Usage

In order to use this package, install it and load the library with: library(DTDA.ni)

Parameters

Return

Usage

# Loading the package:
library(DTDA.ni)

# Generating data which are doubly truncated:
N <- 250
x0 <- runif(N)           # Original data
u0 <- runif(N, -0.25, 0.5) # Left-truncation times
tau <- 0.75               # Interval width
v0 <- u0 + tau

x <- x0[u0 <= x0 & x0 <= v0]
u <- u0[u0 <= x0 & x0 <= v0]
v <- v0[u0 <= x0 & x0 <= v0]
n <- length(x)  # Final sample size after the interval sampling

# Create an object wit DTDAni function
res <- DTDAni(x, u, tau)
plot(res, ecdf = FALSE) # Plot without ecdf (Default)
abline(a = 0, b = 1, col = "green")  # The true cumulative distribution
# Calculating the reverse estimator:
plot(res)

res2 <- DTDAni(-x, -u - 0.75, 0.75)
abline(a = 0, b = 1, col = "green") 
lines(-res2$x, 1 - res2$cumprob, type = "s", col = "blue", lty = 2)
# Weigthed estimator (recommended):

w <- 1/2

k <- length(res$x)

Fw <- w * res$cumprob + (1 - w) * (1 - res2$cumprob[k:1])

plot(res)
abline(a = 0, b = 1, col = "green") 
lines(-res2$x, 1 - res2$cumprob, type = "s", col = "blue", lty = 2)
lines(res$x, Fw, type = "s", col = 2)


# Using res$P and res$L to compute the estimator:

k <- length(res$x)
F <- rep(1, k)
for (i in 2:k) {
F[i] <- (F[i - 1] - res$P[i - 1]) / res$L[i - 1] + res$P[i - 1]
}

F0 <- F / max(F)  # This is equal to res$cumprob

Author(s)

Maintainer: José Carlos Soage González (jsoage@uvigo.es)

Acknowledgements

References

de Uña-Álvarez J. (2018) A Non-iterative Estimator for Interval Sampling and Doubly Truncated Data. In: Gil E., Gil E., Gil J., Gil M. (eds) The Mathematics of the Uncertain. Studies in Systems, Decision and Control, vol 142. Springer, Cham



Try the DTDA.ni package in your browser

Any scripts or data that you put into this service are public.

DTDA.ni documentation built on April 12, 2022, 9:05 a.m.