Ошибка в eval (семейство $ initialize): значения y должны быть 0 <= y <= 1 - PullRequest
0 голосов
/ 18 марта 2019

В учебнике упоминалось, что мне нужно преобразовать спутниковые данные в нули и единицы (если 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)

Эта проблема из задачи «Введение в анализ категориальных данных» 2-го издания 3.8, если это помогает. Моя задача - сообщить о соответствии пробной модели с весом в качестве предиктора.

1 Ответ

1 голос
/ 18 марта 2019

Поскольку вы используете пробитную модель, ваш ответ должен быть двоичным (т.е. он должен быть либо 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 и рассмотрим Да = 1 и Нет = 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

Примечание: Как уже упоминалось ранее, это всего лишь пример, и он может оказаться для вас неподходящей моделью.Это было создано в иллюстративных целях, чтобы продемонстрировать, как использовать пробитную модель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...