Para que lo sepas, en principio no hay mucha diferencia entre el truncamiento a la izquierda y a la derecha. Si definimos el tiempo hasta algún evento como una variable aleatoria $T$ entonces la versión truncada por la izquierda de esta variable aleatoria es simplemente
$$T=t\,|\,T>u$$
donde $u$ es algún punto de truncamiento. Si definiéramos algún modelo e intentáramos ajustar los datos a él utilizando, por ejemplo, la máxima verosimilitud, entonces la contribución a la función de verosimilitud para cada punto de datos de la variable aleatoria truncada por la izquierda sería
$$\frac{f(t_{i})}{1-F(t_{i})}$$
en lugar de sólo $f(t_{i})$ para el caso de no truncamiento. Aquí $i$ sólo se refiere a cada punto de datos que tiene y $f$ , $F$ son la función de densidad de probabilidad y la función de distribución acumulativa de $T$ respectivamente.
En R, podríamos implementar algo simple como (como ejemplo):
library(survival)
#Define your likelihood function for a left-truncated log-normal distribution:
lik=function(pars,u,d) {
return(-sum(log(pmin(10^22,pmax(10^-22,dlnorm(d,pars[1],pars[2]))))-log(pmin(10^22,pmax(10^-22,1-plnorm(u,pars[1],pars[2]))))))
}
#Some data:
u=5
d=rlnorm(100,3,0.9)
d=d[d>u]
#Estimate the parameters:
f=stats::optim(c(5,1),
fn=lik,
d=d,
u=u,
lower=c(-10,0),
upper=c(Inf,Inf),
method="L-BFGS-B",
control=list(maxit=10^8))
#Your fit:
f
> f$par
[1] 2.9836623 0.9043515