Попытка использовать функцию кумулятивного распределения в GSL - PullRequest
0 голосов
/ 30 июня 2010

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

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

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

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

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

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

Документация гласит только:

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

p (x) dx = {1 \ over 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?

Ответы [ 3 ]

2 голосов
/ 30 июня 2010

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

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

1 голос
/ 11 ноября 2012

Тайлер,

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

Вам нужно gsl_cdf_gaussian_P . Другая вещь ( gsl_ran_lognormal ) не подходит по двум причинам.

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

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

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

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

1 голос
/ 23 мая 2012

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

...