晚期黑瘤症患者生存时间分布分析:指数、威布尔和对数正态分布比较
(1) /n/n指数分布概率图:/n/npython/nimport matplotlib.pyplot as plt/nimport numpy as np/nfrom scipy.stats import expon/n/ndata = [26.3, 16.1, 24.0, 4.3, 31.3, 94.0, 49.6, 77.9, 97.6, 17.6, 9.1, 27.3, 16.6, 7.3, /n 16.3, 34.6, 61.9, 3.4, 75.6, 9.4, 46.6, 10.9, 14.3, 25.7, 22.4, 13.0, 56.4, 88.7, /n 7.1, 64.4, 9.1]/n/nplt.hist(data, bins=10, density=True)/nplt.plot(np.linspace(0, 100, 100), expon.pdf(np.linspace(0, 100, 100), scale=np.mean(data)), 'r-', lw=2, label='Exponential')/nplt.legend()/nplt.show()/n/n/n结果:/n/n
/n/n威布尔分布概率图:/n/npython/nfrom scipy.stats import weibull_min/n/nplt.hist(data, bins=10, density=True)/nshape, loc, scale = weibull_min.fit(data)/nplt.plot(np.linspace(0, 100, 100), weibull_min.pdf(np.linspace(0, 100, 100), shape, loc=loc, scale=scale), 'r-', lw=2, label='Weibull')/nplt.legend()/nplt.show()/n/n/n结果:/n/n
/n/n对数正态分布概率图:/n/npython/nfrom scipy.stats import lognorm/n/nplt.hist(data, bins=10, density=True)/nshape, loc, scale = lognorm.fit(data)/nplt.plot(np.linspace(0, 100, 100), lognorm.pdf(np.linspace(0, 100, 100), shape, loc=loc, scale=scale), 'r-', lw=2, label='Lognormal')/nplt.legend()/nplt.show()/n/n/n结果:/n/n
/n/n(2) 从概率图来看,对数正态分布似乎更好地拟合了数据。根据对数正态分布的概率密度函数:/n/n$$f(x)=/frac{1}{x/sigma /sqrt{2/pi}}e^{-/frac{(/ln x - /mu)^2}{2/sigma^2}}$$/n/n其中,$/mu$为对数正态分布的均值,$/sigma$为对数正态分布的标准差,我们可以使用最大似然估计法来估计参数。代码如下:/n/npython/nshape, loc, scale = lognorm.fit(data)/nprint('mu:', np.log(scale))/nprint('sigma:', shape)/n/n/n结果:/n/n/nmu: 3.157651179624838/nsigma: 0.9353772539246678/n/n/n因此,我们可以使用对数正态分布来拟合这些数据,其中均值$/mu$约为3.16,标准差$/sigma$约为0.94。
原文地址: https://www.cveoy.top/t/topic/nUrw 著作权归作者所有。请勿转载和采集!