Попытка использовать кумулятивную функцию распределения в GSL

Привет, ребята, я пытаюсь вычислить кумулятивную функцию распределения стандартного нормального распределения для формулы на C, используя GSL (библиотека статистики Gnu)

Я установил и включил gsl, но не понимаю, как его использовать.

Я думаю, что мне нужна следующая функция:

double gsl_ran_lognormal (const gsl_rng * r, double zeta, double sigma)

У меня есть только одно число, которое я передал бы в функцию cdf, поэтому я не совсем уверен, что здесь делать. (Вероятно, это из-за моего дерьмового понимания статистики)

Я был бы признателен, если бы кто-нибудь помог мне узнать, как получить cdf с помощью gsl с одной входной переменной.

В документации только сказано:

Эта функция возвращает случайную величину из логнормального распределения. Функция распределения:

p (x) dx = {1 \ над x \ sqrt {2 \ pi \ sigma ^ 2}} \ exp (- (\ ln (x) - \ zeta) ^ 2/2 \ sigma ^ 2) dx

для x> 0.

В принципе, может кто-нибудь объяснить, какими должны быть gsl_rng, zeta и sigma?

РЕДАКТИРОВАТЬ: Хорошо, я думаю, что дзета должна быть 0 (мю), а сигма должна быть 1 (стандартное отклонение), чтобы сделать это нормально? Это правильно? Что такое gsl_rng?


person Tyler Brock    schedule 30.06.2010    source источник
comment
но GSL - это научная библиотека GNU, а не статистика   -  person ShinTakezou    schedule 30.06.2010


Ответы (3)


gsl_rng - это указатель на инициализированный (и, возможно, настраиваемый) генератор случайных чисел.

См., Например, http://www.csse.uwa.edu.au/programming/gsl-1.0/gsl-ref_16.html.

person Schedler    schedule 30.06.2010
comment
Руководство GSL - еще одно хорошее место для начала. - person wjl; 30.05.2011

Тайлер,

Надеюсь, ваша проблема уже решена. Сам я не гуру программирования, но стараюсь помочь. Думаю, есть несколько моментов.

Вам понадобится gsl_cdf_gaussian_P. Другой вариант (gsl_ran_lognormal) неуместен по двум причинам.

1) Это генератор случайных чисел, а не кумулятивное распределение. Это означает, что он дает вам числа, соответствующие определенному распределению, а не вероятность, когда вам это нужно.

2) Это относится к логнормальному распределению, в то время как вы хотите нормальное.

Получив нормальное кумулятивное распределение, вы можете установить среднее значение 0, а дисперсию - единицу, чтобы сделать его стандартным нормальным.

Надеюсь, это проясняет ситуацию. Если нет, я снова здесь утром.

person Ludi    schedule 11.11.2012
comment
Хорошо, спасибо. С тех пор я отказался от этой проблемы, но уверен, что эта информация поможет другим. - person Tyler Brock; 11.11.2012

Ваша функция предназначена для генерации случайного числа с логнормальным распределением. Если вы ищете кумулятивный дистрибутив, вам нужно заглянуть в раздел «Специальные функции» руководства GSL, раздел 7.15.

person pwaldron    schedule 22.05.2012