2012-04-16 14 views
5

Chcę użyć interpolacji funkcji jako PDF i móc korzystać z narzędzi takich jak Mean, Probability, CDF i tak dalej. Zrobiłem, co następuje:Funkcja interpolująca jako PDF w Mathematica

f = Interpolation[data]; 
dist = ProbabilityDistribution[f[x], {x,0,1000}]; 

I na przykład, kiedy próbuję:

Mean[dist] //N 

po prostu zwraca wejście. To samo z innymi funkcjami.

Odpowiedz

2

Można użyć dyskretnego rozkładu:

data = {1, 2, 1, 3, 4}; 
data = data/[email protected]; 
f = Interpolation[data]; 
dist = ProbabilityDistribution[f[x], {x, 1, 5, 1}]; 
Mean[dist] // N 
1

Można również eksperymentować z SmoothKernelDistrubution.

d = SmoothKernelDistribution[data]; 

cdf=CDF[d] 

Plot[cdf[x], {x, -1, 1}] 

Quantile[d, 0.95] 

Moment[d, 2] 
1

Można użyć EmpiricalDistribution:

f = EmpiricalDistribution[data] 

Mean[f] 
(* 1/5 *) 

Expectation[x^3, x \[Distributed] f] 
(* 101/6655 *) 

Moment[f, 2] 
(* 31/605 *)