建立具有多(8)个预测变量的负二项式GLMM

  • 本文关键字:变量 GLMM 二项式 建立 java
  • 更新时间 :
  • 英文 :


我对R很陌生,我正在尝试使用负二项式GLMM创建模型。问题是,我有1个响应变量,我想测试8个预测变量的多重共线性。例如,当只有3个预测变量时,这似乎很容易,因为这意味着只有4个可能的组合。然而,我想知道在测试多重共线性时,是否有一种更简单的方法可以为8个不同的预测变量设置所有可能的组合,而无需手工检查每个组合,这意味着8个预测变量的50多种不同组合将与响应变量进行测试。

我一直在MASS软件包中使用glm.nb函数,我不确定它与glmmTMB软件包之间是否有很大区别。

基本上,您似乎对生成至少有两个值的所有组合感兴趣。一个非常巧妙的方法是创建一个地图,就像这样:

Map<ValueType,Boolean> items = new Map<ValueType,Boolean>();

其中ValueType是您的值的类型。让我们假设您有一个名为values的数组,其中有您想要使用的实际值。让我们用来填充地图

for (int index = 0; index < values.length; index++) {
map.put(index, false);
}

非常好。现在,让我们创建一个跟踪真实值数量的数值:

int combinationCount = 0;

这就是生成和处理组合的方法,其中n个值表示为n个数字的布尔值,其中每个数字都在当前组合中,当且仅当其在映射中的代表为true时。

int top = 0;
while (top < values.length) {
boolean stop = false;
for (top = 0; (!stop) && (top < values.length); top++) {
stop = !map.get(top);
stop ? combinationCount++ : combinationCount--;
map.put(stop);
if (combinationCount >= 2) {
for (int innerIndex = 0; innerIndex < values.length; innerIndex++) {
if (map.get(innerIndex)) {
//values[innerIndex] is inside the current combination
}
}
}
}
}

最新更新