Working with sums/products of lists
I need to work symbolically with expressions such as this
$L(x; a,b) = \prod_{i=1}^n{abx_i^{a-1}(1-x_i^a)^{b-1}}$
where $x$ would be a random sample of size $n$.
I don't know of any way to express the indexing of the sample $x$ by each element...
The closest I got was defining the variables $n$ and $i$ and representing $x$ as a function
var('a','b','x','n','i')
assume(x>0,a>0,b>0,i>0,n>0)
X = function('X',nargs=1)
L = product(a*b*X(i)^(a-1)*(1-X(i)^a)^(b-1), i, 1, n)
But this seems to inmediately assume that $X(i) = i$ and $L$ is represented as:
$-\frac{\left(-1\right)^{n} a^{n} b^{n} X\left(0\right) X\left(-1\right) X\left(-2\right) X\left(-3\right) X\left(-4\right) X\left(-5\right) X\left(-6\right) X\left(-7\right) X\left(-8\right) X\left(-9\right) {\prod_{i=1}^{n} {\left(-X\left(i\right)^{a} + 1\right)}^{b}} {\prod_{i=1}^{n} X\left(i\right)^{a}}}{X\left(n - 1\right) X\left(n - 2\right) X\left(n - 3\right) X\left(n - 4\right) X\left(n - 5\right) X\left(n - 6\right) X\left(n - 7\right) X\left(n - 8\right) X\left(n - 9\right) X\left(n\right) {\prod_{i=1}^{n} X\left(i\right)^{a} - 1} {\prod_{i=1}^{n} X\left(i - 10\right)}}$
I don't know how to deal with this expression, and it seems to me like it should be straight forward.
In case it's meaningful, after defining the expression, I will be differentiating it with respect to both $a$ and $b$.
Very strange behavior. It seems to have something to do with the minus signs in the exponents. A workaround is to change variables:
a
toa+1
andb
tob+1
(and hencea>=0, b>=0
):L = product((a+1)*(b+1)*X(i)^a*(1-X(i)^(a+1))^b, i, 1, n)
works fine.Why do you think it's assuming that $X(i)=i$? I see no indication of that. It is doing some ill-advised simplification (by the looks of it, an invalid one--Bug report?), apparently triggered by the $b-1$ exponent. So if you're willing to shift b, you can use
However, you'll quickly find that sage currently doesn't know how to differentiate symbolic products, so you might want to do this yourself via a logarithmic derivative.
That is very strange... However you found an issue with my code. $a$ and $b$ should be greater than or equal to 0, not strictly greater. In that case the result remains the same.
@nbruin I thought it assumed $X(i) = i$ from the expansion to $(-1)^n ... X(0)X(1)...$ but now that I see it again, it might have come to mind from some other tests I run (but can't replicate now). The next thing I'll do is take the logarithm of $L$, so differentiating shouldn't be a problem so long as it understands the product will turn into a sum (not sure it will since log of the product simply puts a log around the whole expression even when simplified). Perhaps you could expand on an answer? Thanks