# Expanding Log[Product[…]]

I'm trying to get the log-likelihood of a Gaussian in the form

$$p(\textbf{x}|u,\sigma^2)=\prod_{n=1}^{N}\mathcal{N}(x_n|\mu,\sigma^2) \quad (1)$$

$$\ln\ p(\textbf{x}|\mu,\sigma^2)=-\frac{1}{2\sigma^2}\sum_{n=1}^N{(x_n-\mu)^2}-\frac{N}{2}\ln\ \sigma^2-\frac{N}{2}\ln\ (2\pi) \quad (2)$$

I've have

Log[Product[PDF[NormalDistribution[μ, σ], Subscript[x, n]], {n, 1, bigN}]]


which outputs

$$\ln(\prod_{n=1}^{bigN}\frac{\mathrm e^{\frac{(-\mu+x_n)^2}{2\sigma^2}}}{\sqrt{2\pi}\sigma}).$$

I tried Expand, ExpandAll, PowerExpand, but I can't seem to get it to display like in Equation (2 RHS).

From

Product[Log[PDF[NormalDistribution[μ, σ], Subscript[x, n]]], {n, 1, bigN}] // PowerExpand


I get closer with

$$\prod_{n=1}^{bigN}\left[\frac{1}{2}(-\ln 2-\ln\pi)-\ln\sigma-\frac{(-\mu+x_n)^2}{2\sigma^2}\right]$$

• Looks like there's a typo in your first line of code -- x_n should be Subscript[x, n]. Though be careful, because using subscripts as variables can get you into trouble. – jjc385 Sep 12 '18 at 15:26
• – chris Sep 13 '18 at 8:45

logProd = Log[Product[PDF[NormalDistribution[μ, σ], Subscript[x, n]], {n, 1, bigN}]];
$Assumptions = {σ > 0}; product /: Log[product[a_, b_]] := Sum[FunctionExpand @ Log @ a, b] Block[{Product = product}, logProd]  % // TeXForm $\sum _{n=1}^{\text{bigN}} \left(\log \left(e^{-\frac{\left(x_n-\mu \right){}^2}{2 \sigma ^2}}\right)-\log (\sigma )-\frac{1}{2} \log (2 \pi )\right)\$
logProduct /. Log[Product[expr_, spec_]] :> Sum[Log[expr], spec]

• Since spec can be more than one argument, the matching pattern should probably be spec__` (with 2 blanks). – Sjoerd Smit Sep 13 '18 at 14:51