哦-用残差分布选择最优模型?

2022-04-27 18:59:25 浏览数 (1)

温馨提示

本公众号名称由趣味数据周刊更名为:数据指象。

指象:谓天以景象示意,出自于《汉书》;希望以数据指象为言语,得一类而达之。感谢一路走路,不离不弃的你们,谢谢。

收到一位知友的求助:我对一组模型进行了计算,获取了每个模型的残差,残差(misfit-data$X2)的频次直方图:

perform a goodness of fit test (using residuals and a chi2 distribution) and select models that pass the test at a certain confidence level (e.g., 95%).

这个我不是很明白怎么进行操作分析,能请您解答一下吗?

收到数据:发现数据包含60个模型,每一个模型有33个实验残差。如果通过残差分布来选择模型,需要我们完成第一步检验:模型与残差的相关性的检验,这是我们能否根据残差来选择模型的依据;

这里我们选择用卡方检验,置信水平为95%;

假设检验:

原假设-模型与残差的频次分布没有关系

备择假设-模型与残差的频次分布有关系

1,统计描述(mode-模型,misfit-残差)

代码语言:javascript复制
summary(misfit)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
0.3322  0.3888  0.4818  0.5033  0.5954  0.8329 

对misfit进行分组:优,良,差

misfit>=0.3 and misfit<0.5 as 优 ,

misfit>=0.5 and misfit<0.7 as 良,

misfit>=0.7 and misfit<0.9 as 差

2,得到模型分组数据

代码语言:javascript复制
library(sqldf)
载入需要的程辑包:gsubfn
载入需要的程辑包:proto
载入需要的程辑包:RSQLite
Warning message:
程辑包‘RSQLite’是用R版本3.5.2 来建造的 
a<-sqldf("select X1 as mode, count(1) as 实验次数, 
sum(case when X2>=0.3 and X2<0.5 then 1 else 0 end) as 优 ,
sum(case when X2>=0.5 and X2<0.7 then 1 else 0 end) as 良, 
sum(case when X2>=0.7 and X2<0.9 then 1 else 0 end) as 差 
from data group by X1")

3,运用卡方检验:模型的优劣与残差的相关行

代码语言:javascript复制
chisq.test(a) ## 去除多余的列:实验次数
 Pearson's Chi-squared test
data:  a
X-squared = 211.04, df = 177, p-value = 0.04097

自由度为:177,p值:0.04097, 可以拒绝原假设的模型与残差分布没有关系,而选择假设:二者存在相关性。

由此,我们可以通过残差的分布来选择模型

得知:模型30-41都是比较优的模型。

如果要继续优中选优,可以对比模型残差变量的集中程度与离散度。

- END -

0 人点赞