我编写了以下代码来绘制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非常相似。
答案 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