R中的逻辑回归返回NA值

机器算法验证 r 广义线性模型 物流
2022-03-28 20:49:39

首先,我会说我是一名生物学家,对统计方面的事物很陌生,所以请原谅我的无知

我有一个数据集,其中包含一个二元结果,然后是一堆看起来像这样的三元解释变量:

head()
 Category block21_hap1 block21_hap2 block21_hap3 block21_check
1        1            1            1            0             2
2        1            2            0            0             2
3        1            1            0            1             2
4        1            1            0            1             2
5        1            1            1            0             2
6        1            1            1            0             2

数据的快速总结

summary()
Category block21_hap1 block21_hap2 block21_hap3 block21_check
 1:718    0:293        0:777        0:1026       2:1467       
 0:749    1:709        1:577        1: 390                    
          2:465        2:113        2:  51  

以及按结果级别分组的另一个摘要

by(hap.ped.final, hap.ped.final$Category, summary)
hap.ped.final$Category: 1
 block21_hap1 block21_hap2 block21_hap3 block21_check
 0:146        0:374        0:518        2:718        
 1:336        1:286        1:174                     
 2:236        2: 58        2: 26                     
---------------------------------------------------------------------------- 
hap.ped.final$Category: 0
 block21_hap1 block21_hap2 block21_hap3 block21_check
 0:147        0:403        0:508        2:749        
 1:373        1:291        1:216                     
 2:229        2: 55        2: 25          

所以我试图对这些数据进行逻辑回归。当我这样做时:

fit = glm(Category~ block21_hap1 + block21_hap2 + block21_hap3, data = hap.ped.final ,family = "binomial")
summary(fit)

Deviance Residuals: 
   Min      1Q  Median      3Q     Max  
-1.301  -1.177   1.059   1.177   1.200  

Coefficients: (1 not defined because of singularities)
                             Estimate Std. Error z value Pr(>|z|)
(Intercept)                 -0.039221   0.280110  -0.140    0.889
hap.ped.final$block21_hap11  0.123555   0.183087   0.675    0.500
hap.ped.final$block21_hap12  0.009111   0.295069   0.031    0.975
hap.ped.final$block21_hap21 -0.084334   0.183087  -0.461    0.645
hap.ped.final$block21_hap22 -0.013889   0.337468  -0.041    0.967
hap.ped.final$block21_hap31  0.201113   0.183087   1.098    0.272
hap.ped.final$block21_hap32        NA         NA      NA       NA

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2033  on 1466  degrees of freedom
Residual deviance: 2028  on 1461  degrees of freedom
AIC: 2040

Number of Fisher Scoring iterations: 3

所以我真的不知道奇点是什么,或者我的分析结果导致这里出了什么问题。是我的数据,还是我正在对它做什么。我尝试用谷歌搜索警告(或任何你可能称之为的警告),我得到了一些关于共线性和多重线性的页面,我根本不明白。再次,抱歉这里缺乏知识。我希望我在本科时做更多的数学。

1个回答

奇异性意味着您的预测变量是线性相关的,即其中一个变量可以表示为其他变量的线性组合。看到您的预测变量是虚拟变量,您可能遇到了虚拟变量陷阱问题。