eval(family $ initialize)中的错误:y值必须为0 <= y <= 1

时间:2019-03-18 20:01:34

标签: r data-analysis categorical-data

在教科书中提到我需要将Satellite数据转换为零和一(如果Y = 0,则Y = 0。但是,如果Y大于或等于1,则Y = 1),但是我不知道该怎么做。我想念什么吗?

这是我的代码:

library(icda)
data(horseshoecrabs)
crab=horseshoecrabs
head(crab)
??horeshoecrabs
probit=glm(Satellites ~ Weight, family=binomial(link="probit"), data=horseshoecrabs )
summary(probit)

该问题来自“分类数据分析简介”第二版问题3.8,以帮助解决问题。我的任务是报告以重量为预测因子的概率模型的拟合度。

1 个答案:

答案 0 :(得分:1)

由于您使用的是Probit模型,因此您的响应必须为二进制(即,它必须为0或1)。 Satellites不是二进制。

> horseshoecrabs$Satellites
  [1]  8  0  9  0  4  0  0  0  0  0  0  0 11  0 14  8  1  1  0  5  4  3  1  2  3  0  3  5  0  0  4  0  0  8  5  0  0  6  0  6  3
 [42]  5  6  5  9  4  6  4  3  3  5  5  6  4  5 15  3  3  0  0  0  5  3  5  1  8 10  0  0  3  7  1  0  6  0  0  3  4  0  5  0  0
 [83]  0  4  0  3  0  0  0  0  5  0  0  0  0  1  0  1  1  1  1  1  1  4  1  1  1  1  2  4  3  6  0  2  2  0 12  0  5  6  6  2  0
[124]  2  3  0  3  4  2  6  6  0  4 10  7  0  5  5  6  6  7  3  3  0  0  8  4  4 10  9  4  0  0  0  0  4  0  2  0  4  4  3  8  0
[165]  7  0  0  2  3  4  0  0  0

一个带有二进制数据的概率的示例是考虑以下编码:让我们引入一个新的二进制变量Satellites.binary并考虑Yes = 1和No =0。如果至少有一颗卫星存在(即卫星> 0),我们将认为观测成功,并将值编码为1。如果卫星确实存在,则将值编码为0。

# Consider Satellite to be Yes if Satellite > 0 and No if Satellite = 0
# Code Yes = 1, No = 0
Satellites.binary = ifelse(horseshoecrabs$Satellites > 0, 1, 0)
> Satellites.binary
  [1] 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1
 [63] 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1
[125] 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 0 0

现在有了这个变量,我们可以构建一个概率模型

probit = glm(Satellites.binary ~ horseshoecrabs$Weight, family=binomial(link="probit"))
> summary(probit)
Call:
glm(formula = Satellites.binary ~ horseshoecrabs$Weight, family = binomial(link = "probit"))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.1436  -1.0774   0.5336   0.9196   1.6216  

Coefficients:
                      Estimate Std. Error z value Pr(>|z|)    
(Intercept)            -2.2383     0.5116  -4.375 1.22e-05 ***
horseshoecrabs$Weight   1.0990     0.2151   5.108 3.25e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 225.76  on 172  degrees of freedom
Residual deviance: 195.46  on 171  degrees of freedom
AIC: 199.46

Number of Fisher Scoring iterations: 4

注意:如前所述,这只是一个示例,对于您来说可能不是正确的模型。创建该文件的目的是为了演示如何使用概率模型。