Skip to main content

evaluation - Expectation of a family of random variables


I did some search here, but seems that no one asked about this.


I want to define a family of independent and identically distributed random variables, $x_1,...,x_n$, and then calculates the expected value of some expressions like $\sum_{i,j=1}^nx_ix_j$. The result would be some function depending on $n$. Is there a way to do this?



Answer



Here is a general solution for any distribution whose moments exist ...


Notation Define the power sum $s_r$:



$$s_r=\sum _{i=1}^n X_i^r$$


The Problem


Let $\left(X_1,\ldots,X_n\right)$ denote $n$ iid random variables. This is the same problem as drawing a random sample of size $n$ from a population random variable $X$. The problem is to find:


$$E\Big(\sum_{i,j=1}^n X_i X_j\Big) = E\Big [\Big (\sum_{i=1}^n X_i\Big)^2\Big ] = E\Big [s_1^2\Big]$$


This is a problem known as finding moments of moments: they can be very difficult to solve by hand, but quite easy to solve with the help of a computer algebra system, for any arbitrary symmetric power sum. In this instance, we seek the expectation of $s_1^2$ ... i.e. the 1st raw moment of $s_1^2$ ... so the solution (expressed ToRaw moments of the population) is:


enter image description here


where RawMomentToRaw is a function from the mathStatica package for Mathematica, and where $\acute{\mu }_1$ and $\acute{\mu }_2$ denote the 1st and 2nd raw moments of random variable $X$, whatever its distribution (assuming they exist). All done.


More detail


There is an extensive discussion of moments of moments in Chapter 7 of our book:




  • Rose and Smith, "Mathematical Statistics with Mathematica", Springer, NY


A free download of the chapter is available here:


http://www.mathstatica.com/book/Rose_and_Smith_2002edition_Chapter7.pdf





Example 1: The Normal Distribution


If $X \sim N(\mu, \sigma^2)$, then: $$\acute{\mu }_1 = E[X] = \mu \quad \text{ and } \quad \acute{\mu }_2 = E[X^2] = \mu^2 + \sigma^2 $$


Substituting in $\acute{\mu }_1$ and $\acute{\mu }_2$ in Out[1] yields the solution: $$E\Big(\sum_{i,j=1}^n X_i X_j\Big) = n \left(n \mu ^2 + \sigma ^2\right)$$


Simple check: The Normal case with $n = 3$



In the case of $n = 3$, the joint pdf of $(X_1, X_2, X_3)$ is say $f(x_1, x_2, x_3)$:


enter image description here


The sum of products we are interested in is:


enter image description here


and the desired expectation is:


enter image description here


which matches perfectly the general $n$-Normal solution derived above, but with $n = 3$.




Example 2: The Uniform Distribution


If $X \sim Uniform(a,b)$ (as considered in both other answers), then: $$\acute{\mu }_1 = E[X] = \frac{a+b}{2} \quad \text{ and } \quad \acute{\mu }_2 = E[X^2] = \frac{1}{3} \left(a^2+a b+b^2\right)$$



Substituting in $\acute{\mu }_1$ and $\acute{\mu }_2$ in Out[1] yields the solution: $$E\Big(\sum_{i,j=1}^n X_i X_j\Big) =\frac{1}{3} n \left(a^2+a b+b^2\right)+\frac{1}{4} (n-1) n (a+b)^2$$


Again, this is different to the other answers posted - and much more complicated. Again, it is easy to perform a quick check:


Simple check: The Uniform case with $n = 3$


In the case of $n = 3$, the joint pdf of $(X_1, X_2, X_3)$ is say $g(x_1, x_2, x_3)$:


enter image description here


and the desired expectation is:


enter image description here


which matches perfectly our general $n$-Uniform solution derived above, with $n = 3$.


Comments

Popular posts from this blog

plotting - How to draw lines between specified dots on ListPlot?

I would like to create a plot where I have unconnected dots and some connected. So far, I have figured out how to draw the dots. My code is the following: ListPlot[{{1, 1}, {2, 2}, {3, 3}, {4, 4}, {1, 4}, {2, 5}, {3, 6}, {4, 7}, {1, 7}, {2, 8}, {3, 9}, {4, 10}, {1, 10}, {2, 11}, {3, 12}, {4,13}, {2.5, 7}}, Ticks -> {{1, 2, 3, 4}, None}, AxesStyle -> Thin, TicksStyle -> Directive[Black, Bold, 12], Mesh -> Full] I have thought using ListLinePlot command, but I don't know how to specify to the command to draw only selected lines between the dots. Do have any suggestions/hints on how to do that? Thank you. Answer One possibility would be to use Epilog with Line : ListPlot[ {{1, 1}, {2, 2}, {3, 3}, {4, 4}, {1, 4}, {2, 5}, {3, 6}, {4, 7}, {1, 7}, {2, 8}, {3, 9}, {4, 10}, {1, 10}, {2, 11}, {3, 12}, {4, 13}, {2.5, 7}}, Ticks -> {{1, 2, 3, 4}, None}, AxesStyle -> Thin, TicksStyle -> Directive[Black, Bold, 12], Mesh -> Full, Epilog -> { Line[ ...

dynamic - How can I make a clickable ArrayPlot that returns input?

I would like to create a dynamic ArrayPlot so that the rectangles, when clicked, provide the input. Can I use ArrayPlot for this? Or is there something else I should have to use? Answer ArrayPlot is much more than just a simple array like Grid : it represents a ranged 2D dataset, and its visualization can be finetuned by options like DataReversed and DataRange . These features make it quite complicated to reproduce the same layout and order with Grid . Here I offer AnnotatedArrayPlot which comes in handy when your dataset is more than just a flat 2D array. The dynamic interface allows highlighting individual cells and possibly interacting with them. AnnotatedArrayPlot works the same way as ArrayPlot and accepts the same options plus Enabled , HighlightCoordinates , HighlightStyle and HighlightElementFunction . data = {{Missing["HasSomeMoreData"], GrayLevel[ 1], {RGBColor[0, 1, 1], RGBColor[0, 0, 1], GrayLevel[1]}, RGBColor[0, 1, 0]}, {GrayLevel[0], GrayLevel...

list manipulation - Selecting multiple columns from a matrix?

Sample data: data = { {{2013, 1, 1}, 24.13, 167.67, 231.82}, {{2013, 1, 2}, 32.15, 170.92, 225.99}, {{2013, 1, 3}, 35.43, 172.68, 221.67}, {{2013, 1, 4}, 36.73, 173.05, 218.32}, {{2013, 1, 5}, 58.19, 165.96, 197.05}, {{2013, 1, 6}, 69.99, 163.50, 187.52}, {{2013, 1, 7}, 71.37, 154.21, 175.58}, {{2013, 1, 8}, 72.51, 149.66, 163.25}}; I want a DateListPlot with three graphs, so for a matrix formed by columns 1 and 2, one for columns 1 and 3, and 1 for columns 1 and 4. At the moment I'm using this code: data2 = Transpose[{data[[All, 1]], data[[All, 2]]}]; data3 = Transpose[{data[[All, 1]], data[[All, 3]]}]; data4 = Transpose[{data[[All, 1]], data[[All, 4]]}]; DateListPlot[{data2, data3, data4}, Joined -> True, Filling -> {3 -> {1}}] but I have a hunch that this can be done more efficiently. I don't like the Transpose s in particular. Any ideas? edit (for extra credit) What if I need to multiply the second column by 2, which in my solution is simp...