嗨,我在数据框中运行gee回归并得出了结果。
library(geepack)
rightwmen<-coef(summary(geeglm(Ideo_Ordinal ~Machiavellianism+Psychopathy+Narcissism ,data = RightMen, id = Ideo_Ordinal,
corstr = "independence"))) %>%
rownames_to_column() %>%
mutate(lowerWald = Estimate-1.96*Std.err, # Lower Wald CI
upperWald=Estimate+1.96*Std.err, # Upper Wald CI
df=1,
ExpBeta = exp(Estimate)) %>% # Transformed estimate
mutate(lWald=exp(lowerWald), # Upper transformed
uWald=exp(upperWald)) # Lower transformed
rightwmen
rowname Estimate Std.err Wald Pr(>|W|) lowerWald upperWald df ExpBeta
1 (Intercept) 5.7656276 0.03107560 34423.423510 0.000000000 5.70471944 5.8265358 1 319.1392808
2 Machiavellianism 0.1319520 0.10168671 1.683851 0.194413479 -0.06735392 0.3312580 1 1.1410536
3 Psychopathy -0.4449102 0.15069337 8.716788 0.003152931 -0.74026922 -0.1495512 1 0.6408818
4 Narcissism 0.2291297 0.07617612 9.047429 0.002630645 0.07982453 0.3784349 1 1.2575051
lWald uWald
1 300.2812223 339.1816504
2 0.9348643 1.3927190
3 0.4769855 0.8610943
4 1.0830970 1.4599978
这对我来说很正常。
当我在初始数据帧的子集中(大约1300次观察)运行相同的代码时,我会采取以下措施:
rowname Estimate Std.err Wald Pr(>|W|) lowerWald upperWald df ExpBeta lWald uWald
1 (Intercept) 6.000000e+00 NaN NaN NaN NaN NaN 1 403.4288 NaN NaN
2 Machiavellianism -2.051668e-16 NaN NaN NaN NaN NaN 1 1.0000 NaN NaN
3 Psychopathy 1.303711e-16 NaN NaN NaN NaN NaN 1 1.0000 NaN NaN
4 Narcissism 4.350156e-17 NaN NaN NaN NaN NaN 1 1.0000 NaN NaN
请注意,我已省略了NA。可能有什么解释?
#SAMPLE DATASET
A tibble: 588 x 4
Ideo_Ordinal Machiavellianism Narcissism Psychopathy
<int> <dbl> <dbl> <dbl>
1 5 0.0360 -0.0144 0.106
2 5 -0.425 -0.302 -0.259
3 5 -0.216 0.125 0.0879
4 5 -0.776 -0.562 -0.488
5 5 -0.225 0.167 0.0309
6 5 -0.167 0.107 0.0539
7 5 -0.464 -0.00283 -0.150
8 5 -0.102 0.141 -0.0487
9 5 0.237 0.676 0.399
10 5 0.0220 0.00337 0.0293
# ... with 578 more rows
答案 0 :(得分:1)
由于我没有您的数据,这是(荒唐的)猜测。如果那不能解决您的问题,我将删除答案。
geeglm()
和geepack
经常遇到的一个问题是,群集必须井井有条。因此,如果您将群集识别为
1 1 1 2 2 2 3 3 3 4 4 4
那么您有4个集群。但是,如果聚类为
1 2 3 4 1 2 3 4 1 2 3 4
那么您有12个集群。 geepack
将群集标识为群集变量中的更改(在您的情况下为Ideo_Ordinal
)。如果从数据中对行进行采样,则实际上可能会得到太多的簇,这些簇会导致EE算法的某些部分无法正常运行,因为数据不再有序。
这是IMO的超级烦人的“特征”,以至于我专门编写了一个函数来检查集群的顺序。检出MESS::ordered.clusters()
,如果集群已订购,则返回TRUE
,否则返回FALSE
。