R语言BradleyTerry2包如何将零假设作为参考替代数据集首项?
BradleyTerry2包参考项调整与零假设检验方案
核心原理
默认首个条目为参考项的问题,本质是R中分类变量默认采用治疗对照(contr.treatment)的编码逻辑,Matchup作为分类变量时,首个水平被强制设为参考组,系数赋值为0,其余水平系数均为与该参考组的差值。
具体实现方法
方法1:调整分类变量编码,以总体平均效应为参考(即零假设基准)
使用和对照(contr.sum,也叫偏差编码)替换默认编码,该编码规则下所有Matchup水平的系数和为0,模型截距项对应所有对阵的平均效应,也就是对阵无影响的零假设基准,单个对阵的系数代表该类对阵与平均效应的偏差。
操作代码如下:
# 调整Matchup变量的对照方式 btmdata$Matchup <- factor(btmdata$Matchup, contrasts = "contr.sum") # 重新拟合模型 BTv1 <- BTm(player1=winner,player2=loser,id="ID",formula=~Matchup+(1|ID),data=btmdata)
结果解读:此时若所有Matchup的系数均不显著异于0,即可验证对阵无影响的零假设。如果需要获取最后一个Matchup水平的系数,可通过-sum(其余Matchup系数)计算得到。
方法2:直接通过似然比检验验证零假设(更适配研究需求)
如果核心目标是验证对阵对结果无影响的零假设,无需手动调整参考项,直接拟合不含Matchup项的空模型,和原模型做似然比检验即可直接判断对阵的整体效应是否显著:
操作代码如下:
# 拟合零假设模型:对阵不影响结果,仅保留选手能力随机效应 BT_null <- BTm(player1=winner,player2=loser,id="ID",formula=~(1|ID),data=btmdata) # 似然比检验对比两个模型的拟合度差异 anova(BT_null, BTv1, test = "LRT")
结果解读:若检验返回的p值小于设定的显著性水平(通常为0.05),则拒绝零假设,说明对阵情况对比赛结果存在显著影响;反之则无法拒绝零假设。
补充说明
如果需要输出每个对阵的绝对能力值,可在使用sum对照的基础上,将模型截距项加到每个Matchup的系数上即可,所有对阵的能力值均值即为零假设对应的基准值。
内容的提问来源于stack exchange,提问作者Invisi
相关产品推荐
相关产品推荐

