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 № 1Generujemy 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);
Teraz pasujemy do dwóch modeli:
fit1
szacuje współczynniki dla modeluy = beta0 + beta1 * x1
,fit2
szacuje współczynniki dla modeluy = beta0 + beta1 * x1 + beta2 * x2
.
# Fit two models fit1 <- glm(y ~ x1 + x2); fit2 <- glm(y ~ x1);
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 jakanova(..., 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.Na koniec spójrz na ten link. Zawiera więcej szczegółów na temat wykonywania i interpretacji wyników analizy ANOVA.