200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python使用t检验和F检验验证模型好坏

python使用t检验和F检验验证模型好坏

时间:2023-03-22 11:26:40

相关推荐

python使用t检验和F检验验证模型好坏

要在某个指标上对比两个模型的好坏,我们可以直接进行比较,同时为了使比较结果更具说服力,我们可以使用统计检验的方法,即将两个模型分别跑k次,使用t检验比较这两组k个样本的均值、使用F检验比较这两组k个样本的方差,均值越大、方差越小说明在当前指标上该模型更好更稳定(这里说的指标是正向指标)。那么下面我们以具体代码来进行说明。

from scipy.stats import ttest_rel, fimport numpy as np# 模型一10组实验结果x = [44.2, 36.1, 46.5, 40.7, 61.6, 55.4, 59.9, 55.2, 65.5, 58.5]# 模型二10组实验结果y = [44.1, 35.9, 45.6, 39.5, 60.1, 55.1, 59.9, 54.2, 65.6, 58.2]print('t检验结果:p值')print(ttest_rel(x, y))# 计算组内样本方差var1 = np.var(x, ddof=1)var2 = np.var(y, ddof=1)# 计算统计量FF = var1 / var2# 计算自由度df1 = len(x) - 1df2 = len(y) - 1# 计算p值p_value = 1 - 2 * abs(0.5 - f.cdf(F, df1, df2))print('F检验结果:p值')print(p_value)

t检验和F检验结果如下:

t检验结果:p值Ttest_relResult(statistic=3.048475214454681, pvalue=0.013826970451693616)F检验结果:p值0.9824793107664767

可以看到t检验的p值小于0.05,说明拒绝原假设,即两个模型在该指标上取值的均值有差异;F检验的p值大于0.05,说明接受原假设,即两个模型10组结果的稳定程度一致。

我们通过查看均值进一步对两个模型进行比较:

# 模型一实验结果均值print(np.mean(x))# 模型二实验结果均值print(np.mean(y))

结果为:

52.3651.82000000000001

通过上述比较,我们可以看到模型一和模型二实验结果稳定程度差不多,但模型一在当前指标上实验结果均值更大,说明模型一优于模型二。

参考

Python统计分析-配对样本t检验

在Python中使用P值进行F检验

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。