Интерполирующая функция как PDF в Mathematica

Я хочу использовать интерполяцию функции в формате PDF и иметь возможность использовать такие инструменты, как Mean, Probability, CDF и т. д. Я сделал следующее:

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

И, например, когда я пытаюсь:

Mean[dist] //N

он просто возвращает ввод. То же самое и с другими другими функциями.


person vitalik    schedule 16.04.2012    source источник


Ответы (3)


Вы можете использовать дискретное распределение:

data = {1, 2, 1, 3, 4};
data = data/Total@data;
f = Interpolation[data];
dist = ProbabilityDistribution[f[x], {x, 1, 5, 1}];
Mean[dist] // N
person Dr. belisarius    schedule 16.04.2012

Вы также можете поэкспериментировать с SmoothKernelDisstrubution.

d = SmoothKernelDistribution[data];

cdf=CDF[d]

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

Quantile[d, 0.95]

Moment[d, 2]
person image_doctor    schedule 16.04.2012

Вы можете использовать EmpiricalDistribution :

f = EmpiricalDistribution[data]

Mean[f]
(* 1/5 *)

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

Moment[f, 2]
(* 31/605 *)
person b.gatessucks    schedule 16.04.2012