MATLAB:如何绘制Probit函数?

时间:2015-10-13 04:02:02

标签: matlab

我编写了以下代码来绘制Logit函数,其中beta = 1。

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

据我所知,看起来很好,但我不知道如何添加Probit功能。我理解如何在一个图中绘制图,但我不明白如何从这个分布生成数据。在MATLAB中有一些方便的方法吗?

最终,我希望创建类似下面的内容,其中可以看出Probit和Logit非常相似。

Probit vs Logit

1 个答案:

答案 0 :(得分:3)

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