DTDAni {DTDA.ni}R Documentation

Doubly Truncated Data Analysis, Non Iterative

Description

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

Usage

DTDAni(x, u, tau)

Arguments

x

Numeric vector corresponding the variable of ultimate interest.

u

Numeric vector corresponding to the left truncation variable.

tau

Sampling interval width. The right truncation values will be internally calculated as v = u + tau.

Details

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 = w*Fd + (1-w)*Fr with 0<w<1 are valid too, the choice w=1/2 being recommended in practice (de Uña-Álvarez, 2018).

Value

A list containing:

x

The distinct values of the variable of interest.

nx

The absloute frequency of each x value.

cumprob

The estimated cumulative probability for each x value.

P

The auxiliary Pi used in the calculation of the estimator.

L

The auxiliary Li used in the calculation of the estimator.

Acknowledgements

Author(s)

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

Examples

## Not run: 
# 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 with DTDAni function
res <- DTDAni(x, u, tau)
plot(res)

abline(a = 0, b = 1, col = "green")  #the true cumulative distribution

# Calculating the reverse estimator:
res2 <- DTDAni(-x, -u - tau, tau)
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])
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

## End(Not run)


[Package DTDA.ni version 1.0.1 Index]