matlab - 在matlab中拟合单变量数据的自定义分布
问题描述
我有一维数据,如Y=[ . . . .. ]
. 我想将自定义分布 Porter-Thomas 拟合到数据直方图并找到它的参数v
。我尝试使用mle
,但它给了我以下错误:“pdf 函数返回负值或零值”。
我的代码:
f=@(v,y)((v./(2*0.99)).^(v/2)).*(y.^(v/2 -1)).*exp(-v.*y./(2*0.99))./gamma(v/2);
V=mle(Y,'pdf',f,'Start',rand,'lowerbound',[0],'upperbound',[1]);
h=histfit(Y,50);
hold on
bins=linspace(min(Y),max(Y),105);
plot(bins,f(bins,V),'r--')
我怎样才能适应这个分布?
解决方案
推荐阅读
- html - 重新启动后标题元素字体大小更改
- sql-server - SQL:将数据类型 nvarchar 转换为作为联合的一部分的浮点数时出错
- amazon-web-services - 使用 aws-amplify 联合登录
- javascript - 使用 javascript async/await 语法时出现奇怪的错误
- javascript - v-autocomplete 在 vuetify 中全选并清除
- python - Kraken Exchange Private REST 调用返回“无效参数”Python
- xcode - 如何使用“使用 Apple 登录”按钮对 macOS 应用程序进行 Beta 测试?
- microsoft-edge - 作为网站作者,如何选择退出 Microsoft Edge 浏览器的 IE 模式?
- typescript - 如何从 Vue 中的 onSubmit 函数调用方法?
- java - Java:使用 substring() 和 length() 对字符串输入中的数字进行交叉总和