【发布时间】:2016-05-05 17:42:51
【问题描述】:
我有:
from scipy import stats
data = stats.gamma.rvs(2, loc=1.5, scale=2, size=100000)
所以我很适合
fitted_params = scipy.stats.gamma.fit(data)
我如何从中计算 AIC?
AIC = 2*k - 2*ln(L) 其中 k 是拟合的参数个数,L 是最大对数似然函数
k = len(fitted_params)
aic = 2*k - 2*(logLik)
logLik 会是?
我找到了这个 sn-p:
logLik = -np.sum( stats.norm.logpdf(data, loc=yPred, scale=sd) )
我的功能将是:
# calc SD of fitted distribution
sd = std(loc=fitted_params[1], scale=fitted_params[2])
# sample values from fitted dist same length as original data array
yPred = rvs(fitted_params[0], loc=fitted_params[1], scale=fitted_params[2], size=len(data), random_state=None)
# calc the log likelihood
logLik = -np.sum( stats.gamma.logpdf(data, loc=yPred, scale=sd) )
【问题讨论】:
标签: python scipy statistics