我正在寻找一个软件(python首选,但实际上是一个jupyter内核存在的任何东西)来将数据样本拟合为t分布的混合。
我已经搜索了很长一段时间,似乎这是一个不起眼的努力,因为大多数搜索结果都出现在高斯混合物中(我对此不感兴趣)。
迄今为止最有希望的候选人是“AdMit”和“MitSEM”R套餐。然而,我不知道R并且发现这些包的描述相当复杂,似乎它们的核心目标不是t的混合物的拟合,而是用它作为完成其他事情的一步。这简直就是我希望软件完成的任务:
将t分布的混合拟合到某些数据并估算每个数据的“位置”“比例”和“自由度”。
我希望有人能指出我一个简单的包,我不敢相信这是一个如此模糊的用例。
答案 0 :(得分:5)
这似乎有效(在R中):
模拟示例:
set.seed(101)
x <- c(5+ 3*rt(1000,df=5),
10+1*rt(10000,df=20))
适用于:
library(teigen)
tt <- teigen(x,
Gs=2, # two components
scale=FALSE,dfupdate="numeric",
models=c("univUU") # univariate model, unconstrained scale and df
# (i.e. scale and df can vary between components)
)
参数都相当接近(除了第二个组件的df,但这是一个非常难以估计的事情......)
tt$parameters[c("df","mean","sigma","pig")]
## $df ## degrees of freedom
## [1] 3.578491 47.059841
## $mean ## ("location")
## [,1]
## [1,] 4.939179
## [2,] 10.002038
## $sigma ## reporting variance rather than sd (I think?)
## , , 1
## [,1]
## [1,] 8.763076
## , , 2
## [,1]
## [1,] 1.041588
## $pig ## mixture probabilities
## [1] 0.09113273 0.90886727
答案 1 :(得分:1)
迟到这个派对,但因为你更喜欢 Python 的东西,pypi 上似乎有几个包适合有限的学生 t 混合,包括:
https://pypi.org/project/studenttmixture/
https://pypi.org/project/student-mixture/
所以所有这些都可以用 pip 安装。
Scikit-learn 和其他常见的嫌疑人目前显然没有这个功能。