python区间分布统计,Python t分布
请告诉我t分布最大似然估计的以下算法。
函数va=ml _ t(数据)
[m,n]=大小(数据);
n=max(m,n);
syms v x;
tmp=(v1)/2)/(v/2);
f=tmp/(sqrt(v * pi))1)x^2)/v)^)v1)/2);
log _ f=log(f);
dog_f=diff(log_f, v );
l=sym( 0);
对于k=1:n,
L=subs(dlog_f,x,data(k)k);
L=L l
目标
va=solve(L;
这是我自己写的程序。我使用trnd命令来生成和验证数据。例如,在trnd (3,30,1)中,生成30条遵循自由度为3的T分布的数据,然后使用该函数来估计参数是否接近3。这样一来,这个方案才能顺利通过。但是,出现了以下问题:
1.程序运行非常慢!虽然我们一个一个查了,但是“瓶颈”在for循环和最后一次求解两个阶段,之所以在这两个地方出现“瓶颈”,是因为“l=subs(dlog_f,x,data(k) k)”。
2.结果,它似乎大大偏离了最初设定的自由度。比如上面的trnd (3,30,1),生成了30个遵循自由度为3的T分布的数据,结果好像离3很远!但是,我很少尝试,因为每次运行这个程序都要花很多时间。另外,每次的数据量也不多)
我想简化这个过程,但我想知道这是否可能?你有其他更好的主意吗?
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。