Computing 4th cumulant of Gaussian variable

14 visualizzazioni (ultimi 30 giorni)
Divij Gupta
Divij Gupta il 19 Giu 2021
Risposto: Chunru il 19 Giu 2021
I am trying to write a program to compute the 4th cumulant for a given array of numbers. For a test, I'm generating an array of numbers distributed as a Gaussian distribution. The expected 4th order cumulant is 0. However, I am getting a wildly oscillating value, wildly oscillating around 0. Here is the code, I have no idea what is going wrong (if anything):
function cu4 = fourthCumulantReal(a)
cu4 = moment(a,4) - 3*(moment(a,2))^2;
end
Test Data: fourthCumulantReal(normrnd[0,1,[1,50]])

Risposte (1)

Chunru
Chunru il 19 Giu 2021
When number of samples is sufficiently large, the sample mean (your fucntion output) is approaching to the true expected value (0).
fourthCumulantReal(normrnd(0,1,[1,500000]))
ans = -0.0036
function cu4 = fourthCumulantReal(a)
cu4 = moment(a,4) - 3*(moment(a,2))^2;
end

Categorie

Scopri di più su Descriptive Statistics and Visualization in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by