在R中运行qgcomp混合物线性模型分析的代码出现错误:Model aliasing occurred, likely due to perfectly correlated quantized exposures.
我这个代码是按照其他博主的代码修改使用(Y变量与X变量都是数据中的,这里方便大家理解我改成了y、x、covariate),以下是我出错的代码和error详细情况:
Xnm <- c('x1','x2','x3','x4','x5')
covars <- c('covariate1', 'covariate2', 'covariate3')
qc.fit5 <- qgcomp.glm.noboot(y ~x1+x2+x3+x4+x5+covariate1+covariate2+covariate3,
data,expnms=Xnm, family=gaussian(), q=4)
Error in qgcomp.noboot(y ~x1+x2+x3+x4+x5+covariate1+ :
Model aliasing occurred, likely due to perfectly correlated quantized exposures.
Try one of the following:
1) set 'bayes' to TRUE in the qgcomp function (recommended)
2) set 'q' to a higher value in the qgcomp function (recommended)
3) check correlation matrix of exposures, and drop all but one variable in each highly correlated set (not recommended)
我尝试按照这个报错进行修改,添加了 bayes = TRUE,依然出现了以下错误:
Error in qgcomp.noboot(y ~x1+x2+x3+x4+x5+covariate1+ :
Model aliasing occurred, likely due to perfectly correlated quantized exposures.
Try one of the following:
1) set 'bayes' to TRUE in the qgcomp function (recommended)
2) set 'q' to a higher value in the qgcomp function (recommended)
3) check correlation matrix of exposures, and drop all but one variable in each highly correlated set (not recommended)
In addition: Warning messages:
1: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, :
variable 'sex' converted to a factor
2: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, :
variable 'zhongzu' converted to a factor
然后我尝试在网上搜索这个错误,找到了两种新的代码,目前是我不确定这两个代码是否正确,但这两种代码确实能够运行,两种代码运行qgcomp的结果存在差异。
第一个,网页找到的,以下是代码的运行结果,但是有22个warning,需要注意的是我的性别和种族已经是分类变量了:
> qcboot.fit3 <- qgcomp.glm.boot(y ~x1+x2+x3+x4+x5+covariate1+covariate2+covariate3,
+ expnms=Xnm, bayes=TRUE,
+ data1, family=gaussian(), q=4, B=10,# B should be 200-500+ in practice
+ seed=125)
There were 22 warnings (use warnings() to see them)
> warnings()
警告信息:
1: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'sex' converted to a factor
2: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'zhongzu' converted to a factor
3: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'sex' converted to a factor
4: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'zhongzu' converted to a factor
5: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'sex' converted to a factor
6: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'zhongzu' converted to a factor
7: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'sex' converted to a factor
8: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'zhongzu' converted to a factor
9: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'sex' converted to a factor
10: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'zhongzu' converted to a factor
11: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'sex' converted to a factor
12: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'zhongzu' converted to a factor
13: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'sex' converted to a factor
14: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'zhongzu' converted to a factor
15: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'sex' converted to a factor
16: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'zhongzu' converted to a factor
17: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'sex' converted to a factor
18: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'zhongzu' converted to a factor
19: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'sex' converted to a factor
20: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'zhongzu' converted to a factor
21: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'sex' converted to a factor
22: In model.matrixBayes(object = mt, data = data, contrasts.arg = contrasts, ... :
variable 'zhongzu' converted to a factor
第二个:是在github上找到的fixing aliasing,运行后没有出现任何的warning和error,下面是它的网页截图,具体修改后的代码是这样的:
qc.fit5 <- qgcomp.glm.noboot(y ~x1+x2+x3+x4+x5+covariate1+covariate2+covariate3,
data,expnms=Xnm, family=gaussian(), q=4,
breaks = NULL,
id = NULL,
alpha = 0.05,
bayes = FALSE,)
以上是全部的情况了,现在是不清楚这两个代码的改动是否正确,以及是否能用。希望大家能帮我看看这两个代码哪个能用,如果这两种都不能用的话,希望能给出新的解决办法,非常感谢!如果有不清楚的欢迎来问。非常感谢大家!