import statsmodels.api as sm
# 计算AIC
model = sm.GLM(df_in_cdz_IID["当日平均体重"], sm.add_constant(df_in_cdz_IID["日龄"]), family=sm.families.Gaussian())
result = model.fit()
for j in ["gompertz","logistic","bertanlanffy"]:
residuals = df_in_cdz_IID["当日平均体重"] - df_in_cdz_IID["估计体重_"+j]
sse = sum(residuals ** 2)
n = len(df_in_cdz_IID["当日平均体重"])
k = len(result.params)
aic = n * np.log(sse/n) + 2 * k
exec(f"{j}_aic = aic")
AIC越小,模型的偏差越小,相当于R2越大,认为模型越准确。