Ampliaré la respuesta de soakley para desarrollar las fórmulas que describen la media condicional del producto de dos distribuciones uniformes.
La media condicional es la integral de $z$ por la PDF desde el límite inferior hasta $z$, dependiendo del caso, y dividido por la CDF en ese punto: $$ \mathbb{E}[Z|Z \le z]=\frac{\int^z z f_{Z}(z)dz}{F_Z(z)} $$.
Esto dará como resultado las fórmulas que buscaba en esta pregunta: $$ \mathbb{E}[Z|Z \le z]= \begin{cases} \frac{- \frac{a^{2} c^{2}}{4} + \frac{z^{2}}{2} \log{\left (a \right )} - \frac{z^{2}}{2} \log{\left (\frac{z}{c} \right )} + \frac{z^{2}}{4}}{- a c + z \log{\left (a \right )} - z \log{\left (\frac{z}{c} \right )} + z} &, ac \le z \le bc \\ \frac{- \frac{a^{2} c^{2}}{4} + \frac{b^{2} c^{2}}{4} + \frac{z^{2}}{2} \log{\left (a \right )} - \frac{z^{2}}{2} \log{\left (b \right )}}{- a c + b c + z \log{\left (a \right )} - z \log{\left (b \right )}} &, bc \le z \le ad\\ \frac{\frac{a^{2} c^{2}}{4} - \frac{a^{2} d^{2}}{4} - \frac{b^{2} c^{2}}{4} + \frac{z^{2}}{2} \log{\left (b \right )} - \frac{z^{2}}{2} \log{\left (\frac{z}{d} \right )} + \frac{z^{2}}{4}}{a c - a d - b c + z \log{\left (b \right )} - z \log{\left (\frac{z}{d} \right )} + z} &, ad \le z \le bd \end{cases} $$
Lo que me ayudó a resolver esto fue la biblioteca simbólica sympy. Adjunté algo de código en python destacando los pasos:
from sympy import *
from sympy.stats import *
init_printing()
x,y,z,u,v,a,b,c,d = symbols('x y z u v a b c d')
k = (b-a)*(d-c)
F_uv = integrate(z/x-v,(x,u,z/v))
F_uv
Derivación del primer caso:
F_Z = (F_uv.subs([(u,a),(v,c)]))/k
F_Z
f_Z = diff(F_Z,z)
f_Z
cond_F_Z = integrate(z*f_Z,(z,a*c,z))/F_Z
simplify(cond_F_Z)
N(cond_F_Z.subs([(a, .5), (b, 1.5), (c, .4), (d, 1.6), (z,.55 )]))
Derivación del segundo caso:
F_Z2 = (F_uv.subs([(u,a),(v,c)])-F_uv.subs([(u,b),(v,c)]))/k
F_Z2
f_Z2 = diff(F_Z2,z)
f_Z2
cond_F_Z2 = (integrate(z*f_Z,(z,a*c,b*c))+integrate(z*f_Z2,(z,b*c,z)))/F_Z2
simplify(cond_F_Z2)
N(cond_F_Z2.subs([(a, .5), (b, 1.5), (c, .4), (d, 1.6), (z,.7 )]))
Derivación del tercer caso:
F_Z3 = (F_uv.subs([(u,a),(v,c)])-F_uv.subs([(u,a),(v,d)])-F_uv.subs([(u,b),(v,c)]))/k
simplify(F_Z3)
f_Z3 = diff(F_Z3,z)
f_Z3
cond_F_Z3 = (integrate(z*f_Z,(z,a*c,b*c))+integrate(z*f_Z2,(z,b*c,a*d))+integrate(z*f_Z3,(z,a*d,z)))/F_Z3
simplify(cond_F_Z3)
N(cond_F_Z3.subs([(a, .5), (b, 1.5), (c, .4), (d, 1.6), (z,1)]))