Тест Хосмера-Лемешова о соответствии пригодности к ошибкам Линейная модель Y ответ NULL - PullRequest
0 голосов
/ 29 марта 2020

Хосмер-Лемешоу тест на пригодность. Полученная ошибка.

Я удалил NA с complete.cases (), затем запустил модель lm (): model.farm; затем вызвал тест Хосмера-Лемешова о соответствии качества [hoslem.test ()]. ​​

По-прежнему получаю ошибку на model.frame для переменных длин, найденных для 'cutyhat'; проверил загрузку стека, что указывает на то, что модель имела NA, поэтому я вызвал другую модель с удаленным NA с помощью complete.cases (). Застрял в этом выпуске hoslem.test () ..

df_farmpond <- df_farmpond[complete.cases(df_farmpond),]
hl_test <- hoslem.test(model.farm.lm$y, fitted(model.farm.lm), g = 5)

> hl_test

    Hosmer and Lemeshow goodness of fit (GOF) test

data:  model.farm.lm$y, fitted(model.farm.lm)
X-squared = 3.705, df = 3, p-value = 0.2951

Детали модели:

model.farm.lm$y [ notice below that for the attr(response) is 1
model.farm.lm$coefficients
model.farm.lm$residuals
model.farm.lm$terms

Выходы:

> model.farm.lm$y
NULL
> model.farm.lm$coefficients
  (Intercept)       TOTNITR  W_DEPTH_MEAN          TURB        DISOXY 
 0.9418943249  0.0379515587 -0.0063822052 -0.0066322266 -0.0001687033 
         COND          TEMP     POND_AREA 
-0.0010308852  0.0125638141 -0.1234772509 
> model.farm.lm$residuals
          1           2           3           4           5           6 
 0.13858538  0.38573515 -0.73602796 -0.04587555  0.04449845  0.22675387 
          7           8           9          10          11          12 
 0.10548684 -0.71244779 -0.84780380 -0.46894026  0.27773610 -0.35107919 
         13          14          15          16          17          18 
-0.54448867 -0.36493492  0.30847012  0.64836035  0.08619462  0.19139021 
         19          20          21          22          23          24 
 0.14290952  0.36942073 -0.78639655  0.24397498  0.08221528  0.30072828 
         25          26          27          28          29          30 
 0.35988554  0.33902600  0.14086306  0.09742289  0.03935141  0.27621187 
         31          32          33          34          35          36 
 0.09366211  0.32327669  0.15211771  0.11306520  0.07397839  0.39980076 
         37          38          39          40 
 0.12688801 -0.57702384  0.04345443 -0.69644542 
> model.farm.lm$terms
RICH ~ TOTNITR + W_DEPTH_MEAN + TURB + DISOXY + COND + TEMP + 
    POND_AREA
attr(,"variables")
list(RICH, TOTNITR, W_DEPTH_MEAN, TURB, DISOXY, COND, TEMP, POND_AREA)
attr(,"factors")
             TOTNITR W_DEPTH_MEAN TURB DISOXY COND TEMP POND_AREA
RICH               0            0    0      0    0    0         0
TOTNITR            1            0    0      0    0    0         0
W_DEPTH_MEAN       0            1    0      0    0    0         0
TURB               0            0    1      0    0    0         0
DISOXY             0            0    0      1    0    0         0
COND               0            0    0      0    1    0         0
TEMP               0            0    0      0    0    1         0
POND_AREA          0            0    0      0    0    0         1
attr(,"term.labels")
[1] "TOTNITR"      "W_DEPTH_MEAN" "TURB"         "DISOXY"       "COND"        
[6] "TEMP"         "POND_AREA"   
attr(,"order")
[1] 1 1 1 1 1 1 1
attr(,"intercept")
[1] 1
attr(,"response")
[1] 1
attr(,".Environment")
<environment: R_GlobalEnv>
attr(,"predvars")
list(RICH, TOTNITR, W_DEPTH_MEAN, TURB, DISOXY, COND, TEMP, POND_AREA)
attr(,"dataClasses")
        RICH      TOTNITR W_DEPTH_MEAN         TURB       DISOXY         COND 
   "numeric"    "numeric"    "numeric"    "numeric"    "numeric"    "numeric" 
        TEMP    POND_AREA 
   "numeric"    "numeric" 
> 

Проблеск данных:

glimpse(df_farmpond)
Observations: 40
Variables: 9
$ RICH         <int> 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, …
$ FISH         <int> 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, …
$ TOTNITR      <dbl> 0.56485714, 0.78157143, 0.84057143, 0.14528571, 0.1934…
$ W_DEPTH_MEAN <dbl> 26.56, 27.61, 13.95, 7.10, 7.54, 26.39, 16.66, 8.20, 9…
$ TURB         <dbl> 9.900000, 38.416667, 15.533333, 17.400000, 20.542857, …
$ DISOXY       <dbl> 9.639286, 11.457143, 9.871429, 13.085714, 10.292857, 1…
$ COND         <dbl> 91.87500, 173.83333, 262.50000, 333.65476, 67.46429, 1…
$ TEMP         <dbl> 22.30357, 22.83929, 22.75000, 23.42857, 22.71429, 22.2…
$ POND_AREA    <dbl> 0.41, 0.26, 0.48, 5.58, 0.19, 0.04, 0.12, 0.30, 0.06, …

Модель:

formula_farm_AIC <- RICH ~ TOTNITR + W_DEPTH_MEAN + TURB + DISOXY + COND + TEMP + POND_AREA
model.farm.lm <- glm(formula = formula_farm_AIC, data = df_farmpond, family = binomial)

Выполнение для создания модели glm:

> formula_farm_AIC <- RICH ~ TOTNITR + W_DEPTH_MEAN + TURB + DISOXY + COND + TEMP + POND_AREA
> model.farm.lm <- glm(formula = formula_farm_AIC, data = df_farmpond, family = binomial)
Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred 
> 

Сводка (model.farm.lm):

> summary(model.farm.lm)

Call:
glm(formula = formula_farm_AIC, family = binomial, data = df_farmpond)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-1.82885  -0.08443   0.31020   0.53238   1.52997  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)  
(Intercept)   5.998810   5.925687   1.012   0.3114  
TOTNITR      -3.141090   1.776385  -1.768   0.0770 .
W_DEPTH_MEAN -0.039468   0.074696  -0.528   0.5972  
TURB         -0.025171   0.035452  -0.710   0.4777  
DISOXY       -0.155921   0.214229  -0.728   0.4667  
COND         -0.008091   0.003886  -2.082   0.0373 *
TEMP          0.053846   0.249877   0.215   0.8294  
POND_AREA    -0.733638   0.739312  -0.992   0.3210  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 50.446  on 39  degrees of freedom
Residual deviance: 30.048  on 32  degrees of freedom
AIC: 46.048

Number of Fisher Scoring iterations: 8

1 Ответ

0 голосов
/ 29 марта 2020

Решение для hoslam.test () запускается из модели glm.

hl_test <- hoslem.test (model.farm.lm $ y, установлено (model.farm.lm), g = 5) </p>

Итог:

> hl_test

    Hosmer and Lemeshow goodness of fit (GOF) test

data:  model.farm.lm$y, fitted(model.farm.lm)
X-squared = 3.705, df = 3, p-value = 0.2951

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