/ Funkcja / ANOVA podczas porównywania modeli logistycznych nie ma wartości p dla Deviance - r, statystyki, regresja logistyczna, anova, dopasowanie modelu

Funkcja ANOVA przy porównywaniu modeli logistycznych nie ma wartości p dla Deviance - r, statystyki, regresja logistyczna, anova, modelowanie

Pracuję z zestawem danych biopsji z MASSbiblioteki w R. Jestem na początkowych etapach tworzenia modelu regresji logistycznej, aby zobaczyć, jakie zmienne mają wpływ na prawdopodobieństwo wystąpienia nowotworu złośliwego. Usunąłem wszystkie wiersze z brakującymi danymi (około 16 obserwacji). Wszystkie zmienne są znaczące same, więc zacząłem od najpełniejszego modelu ze wszystkimi zmiennymi, a trzecia zmienna (V3 - Jednorodność wielkości komórki) była najmniej znacząca w tym najpełniejszym możliwym modelu.

Stworzyłem inny model z usuniętą wersją V3. Następnie chciałem użyć funkcji anova (), aby sprawdzić, czy istnieje znacząca różnica w dopasowaniach dwóch modeli. Jednak nie otrzymuję wartości p z mojego testu anova. Czy to oznacza, że ​​wartość p jest prawie równa 1? Czy popełniłem błąd w konfiguracji mojego modelu?

Wszystkie dane wejściowe są mile widziane!

#post removal of rows with missing data from biopsy in library(MASS)
relevel(biopsy$class, ref = "malignant")
#assigns value of interst to malignant instead of benign.
fullest.model = glm(biopsy$class~biopsy[,2]+biopsy[,3]+biopsy[,4]+biopsy[,5]+
biopsy[,6]+biopsy[,7]+biopsy[,8]+biopsy[,9]+biopsy[,10]
,family = binomial(link = "logit"))
model1 = glm(biopsy$class~biopsy[,2]+biopsy[,4]+biopsy[,5]+
biopsy[,6]+biopsy[,7]+biopsy[,8]+biopsy[,9]+biopsy[,10]
,family = binomial(link = "logit"))
anova(model1, fullest.model)

Otrzymuję wynik:

      Resid. Df Resid. Dev Df   Deviance
1       674     102.89
2       673     102.89  1 0.00090001

^ Nie widzę żadnej wartości !!

Odpowiedzi:

0 dla odpowiedzi № 1
  1. Generujemy niektóre przykładowe dane, zakładając GLM y = 0.5 * x1 + 4 * x2.

    # Generate some sample data
    x1 <- 1:100;
    x2 <- gl(2, 50, 100);
    set.seed(2017);
    y <- 0.5 * x1 + 4 * as.numeric(x2) + rnorm(100);
    
  2. Teraz pasujemy do dwóch modeli:

    • fit1 szacuje współczynniki dla modelu y = beta0 + beta1 * x1,
    • fit2 szacuje współczynniki dla modelu y = beta0 + beta1 * x1 + beta2 * x2.

    # Fit two models
    fit1 <- glm(y ~ x1 + x2);
    fit2 <- glm(y ~ x1);
    
  3. Wykonaj analizy ANOVA.

    # Default ANOVA (note this does not perform any hypothesis test)
    anova(fit1, fit2);
    #Analysis of Deviance Table
    #
    #Model 1: y ~ x1 + x2
    #Model 2: y ~ x1
    #  Resid. Df Resid. Dev Df Deviance
    #1        97     112.11
    #2        98     213.39 -1  -101.28
    
    # ANOVA with likelihood ratio test
    anova(fit1, fit2, test = "Chisq");
    #Analysis of Deviance Table
    #
    #Model 1: y ~ x1 + x2
    #Model 2: y ~ x1
    #  Resid. Df Resid. Dev Df Deviance  Pr(>Chi)
    #1        97     112.11
    #2        98     213.39 -1  -101.28 < 2.2e-16 ***
    #---
    #Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    

    Zauważ, że pierwsze porównanie ANOVA nie przeprowadza testu hipotez. Po prostu oblicza zmianę odchylenia między dwoma modelami. Druga analiza ANOVA anova(..., test = "Chisq") wykonuje test współczynnika wiarygodności (jest taki sam jak anova(..., test = "LRT")), obliczając prawdopodobieństwo zaobserwowania statystyki testu rozproszonego chi-kwadrat (tj zmiana w dewiacji) jako ekstremalne lub bardziej ekstremalne. Ta ostatnia ilość odpowiada wartości p twojego testu hipotez.

  4. Na koniec spójrz na ten link. Zawiera więcej szczegółów na temat wykonywania i interpretacji wyników analizy ANOVA.