温馨提示
本公众号名称由趣味数据周刊更名为:数据指象。
指象:谓天以景象示意,出自于《汉书》;希望以数据指象为言语,得一类而达之。感谢一路走路,不离不弃的你们,谢谢。
收到一位知友的求助:我对一组模型进行了计算,获取了每个模型的残差,残差(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 -