请问您对我下面的问题有什么意见?我是做线性回归的,想用似然比检验来比较我的模型。但是,1. 似然比检验 lrtest()
似乎不为我工作。我的意思是,我打了 ?lrtest
并无法在R中得到任何文档。
然后,我转移到ANOVA(model1, model2, test ="LRT")。然而,它给了我一个错误。"Error in UseMethod("anova"):no applicable method for 'anova' applied to an object of class "list "I used a data set of the iris as follows.
data <- data.frame(B = c("m","m","m","m","m", "m", "f","f","f","f","f"),
G = c("s","s","s","u","u", "u", "k","k","k","r","r"),
ZN =c(78,82,34,67,98,56,37,45,27,18,34),
GFR=c(120,100,90,60,100,110,100,90,95,87,96),
g1 = c(35, 2, 3, 4, 5, 6, 7, 10, 12, 41, 76),
g2 = c(20, 2, 7, 2, 8, 5, 5, 3, 7, 2, 12),
g3 = c(5, 0, 4, 5, 2, 4, 8, 9, 20, 1, 11),
g4 = c(1,3,4,5,7,3,1,5,7,3,10),
g5 = c(20,23, 27, 35, 12, 10, 17, 24, 21, 15, 16),
g6 = c(13,13,115,17,14,12,19,6,7,8,4),
g7 = c(5, 0, 4, 5, 2, 4, 8, 9, 20, 1, 11),
g8 = c(1,3,4,5,7,3,1,5,7,3,10),
g9 = c(20,23, 27, 35, 12, 10, 17, 24, 21, 15, 16),
g10 =c(13,13,115,17,14,12,19,6,7,8,4));
zn12 <- lapply(data[,-c(1,2,4)], function(x) lm(GFR ~ x + ZN, data = data))
zn13 <- lm(GFR ~ ZN, data = data)
anova(zn12,zn13, test="LRT")
任何建议将是有帮助的,谢谢你
你可以用评论中介绍的方法,或者用一个 tidyverse
library(tidyverse)
data %>%
gather(EP, value, -B:-GFR) %>%
split(.$EP) %>%
map(~anova(lm(GFR ~ ZN, data =.),
lm(GFR ~ value + ZN, data =.),
test="LRT"))
当你在找p.value的时候,可以试试
data %>%
gather(Fac, value, -B:-GFR) %>%
split(.$Fac) %>%
map(~anova(lm(GFR ~ ZN, data =.),
lm(GFR ~ value + ZN, data =.),
test="LRT") %>%
broom::tidy(.) %>%
select(p.value) %>%
slice(2)) %>%
bind_rows(.id = "Factor")
# A tibble: 10 x 2
Factor p.value
<chr> <dbl>
1 g1 0.467
2 g10 0.797
3 g2 0.0323
4 g3 0.783
5 g4 0.403
6 g5 0.00556
7 g6 0.797
8 g7 0.783
9 g8 0.403
10 g9 0.00556