2010-06-30 3 views
0

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

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

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

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

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

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

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

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

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

при х> 0.

в принципе, может кто-нибудь объяснить, что gsl_rng, дзета и сигма должны быть?

EDIT: Хорошо, я думаю, что zeta должно быть 0 (mu), а сигма должна быть 1 (std dev), чтобы сделать ее нормальной? Это правильно? Что такое gsl_rng?

+0

но GSL - это научная библиотека GNU, а не статистика – ShinTakezou

ответ

2

gsl_rng является указателем на инициализированный (и возможный выборочный) случайный генератор чисел.

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

+0

[Руководство GSL] (http://www.gnu.org/software/gsl/manual/html_node/) - еще одно хорошее место для начала. – wjl

1

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

1

Tyler,

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

Что вам нужно, это gsl_cdf_gaussian_P. Другое дело (gsl_ran_lognormal) неприемлемо по двум причинам.

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

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

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

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

+0

Прохладный, спасибо. С тех пор я перешел от этой проблемы, но я уверен, что эта информация поможет другим. –

Смежные вопросы