 Limiting time on Survival Analysis

I am attempting to follow the tutorial here to do parametric survival analysis. This works to some extent but the predictive posterior on the y (time to failure) gives large numbers with the median time going well into 10’s years whereas I expect a machine to last at most 5 years.

I attempted to circumvent this by introducing an intermediary variable called mean (see model below) to restrict how far out this model can predict the mode time for a gumbel distribution.

``````def gumbel_sf(y, μ, σ):
"""
Survival function of Gumbel distribution. (1 - cdf)
"""
return 1. - tt.exp(-tt.exp(-(y - μ) / σ))

with pm.Model() as weibull_model:
β = pm.Normal('β', 0., 1, shape=D)
μ = X_.dot(β)
s = pm.Bound(pm.Normal, lower=0, upper=0.1)('s', 5.)
mean = pm.Bound(pm.Normal, lower=ymin, upper=ymax)('μ', μ, 0.05, shape=N)

# Likelihood
y_obs = pm.Gumbel('y_obs', mean[death_], s, observed=Y_[death_])
y_cens = pm.Potential('y_cens', gumbel_sf(Y_[~death_], mean[~death_], s))

# sample from posterior
trace = pm.sample(tune=1000)
``````

The derivative of RV `μ_interval__`.ravel() is zero.
2. If I don’t include `shape=N` in the line for `mean` I get the error: `IndexError: too many indices for array`. I’m a bit surprised that I needed to include that, comments?
4. I get the warning `FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use arr[tuple(seq)]`. What does this mean. It is referring to my `y_obs...` line.