/ / MATLAB: Як я можу побудувати функцію Probit? - MATLAB

MATLAB: Як я можу побудувати функцію Probit? - MATLAB

Я написав наступний код, щоб побудувати функцію Logit, де бета = 1.

beta = 1
e(:,1) = 0:0.01:1;
e(:,2) = log(e(:,1)./(1-e(:,1)))+beta;
plot(e(:,2),e(:,1))

Наскільки я можу сказати, що виглядає добре, але я не "тзнати, як додати функцію Probit. Я розумію, як покласти на ділянки в одній фігурі, але я не розумію, як генерувати дані з цього дистрибутива.

У кінцевому підсумку я прагну створити щось на зразок наступного, в якому видно, що Probit і Logit дуже схожі.

Probit vs Logit

Відповіді:

3 для відповіді № 1
beta = 1
e(:,1) = 0:0.01:1;
e(:,2) = log(e(:,1)./(1-e(:,1)))+beta; % logit fn + beta
e(:,3) = sqrt(2) * erfinv(2*e(:,1) - 1) ; % probit fn
plot(e(:,1),e(:,2:3))

Як запропонував @patrick, якщо у вас є "Машинне навчання та статистичний інструментарій", було б чистіше використовувати norminv функція, тобто замінити 4-й рядок на:

e(:,3) = norminv(e(:,1)) ; % probit fn