In the case of censored data, I would strongly suggest not caring about the mean so much but rather consider quantiles, i.e. the survival function if this ok in terms of the research question being asked. Outliers can have a strong influence on the mean and are more likely to be censored. So if your normal assumption is incorrect, you can add a lot of bias to the estimate of the mean. For example, if you assume your data is normal, but it's really a t-distribution, the left censoring will introduce a right-side bias to your estimate because on average, you'll assume your left censored values are higher than the really are.
However, estimators like the Kaplan Meier estimator will be a consistent estimator for the median and other quantiles. As long as your outcome is independent of your censoring mechanism, this will be consistent and as long as the censoring isn't too extreme, the estimate of the median should be minimal bias.
In your case of a constant left censoring at $U$, this will be dependent on whether $U < \mu$, in which case you case you can just use the the median directly, ignoring censoring. You can estimate whether $U < \mu$ by simply checking if less than half the values are censored. On the other hand, if you have constant censoring and more than half of your data is censored, you don't really have any hope of getting a reliable estimate of the median (or mean!) without extremely strong assumptions of the distribution which you can't really check!
To circle back to your question, if you still want to estimate the mean and if you are willing to make the strong assumption that your data is normal, the median will be equal to the mean, so you can just use your standard estimator of the median given above. But this is leaning for on assumptions than I would be comfortable with.
EDIT:
In the comments, there was discussion of using the "redistribute to the right" (or left in this case) method. Reading up about this, redistributing to the right will result in the Kaplan Meier curves (see background here). Unfortunately, the Kaplan Meier curves can lead to heavily biased estimates of the mean! As a simulation, see this R code:
library(survival)
# Simulating right censored data
sim_surv_data = function(n = 100){
t_time = rexp(n)
c_time = rexp(n)
is_observed = t_time < c_time
y = c_time
y[is_observed] = t_time[is_observed]
ans = data.frame(y = y, obs = is_observed)
return(ans)
}
# Compute mean from KM curve
km_to_mean = function(km_fit){
sum_obj = summary(km_fit)
times = sum_obj$time
# Convert survival function to PMF
surv = sum_obj$surv
shifted_survs = c(1, head(surv, length(surv) - 1))
pmf = shifted_survs - surv
ans = sum(pmf * times)
return(ans)
}
sim_once = function(n = 100){
df = sim_surv_data(n)
km_fit = survfit(Surv(df$y, event=df$obs, type='right')~1)
ans = km_to_mean(km_fit)
return(ans)
}
res = NULL
for(i in 1:400){
res[i] = sim_once()
}
estimated_mean = round(mean(res), 3)
se = round(sd(res) / sqrt(length(res) - 1), 3)
msg = "Estimated Mean From KM Curve\n True mean = 1"
msg = paste0(msg, "\nEstimate = ", estimated_mean, " SE = ", se)
hist(res,
main = msg,
xlab = "Estimated Mean")
This results in the following: