I am trying to run a likelihood ratio test in R using lrtest() but it has been giving me errors that I haven't been able to fix:
dat<-read.csv("file.csv", header=TRUE)
dat1<-glm(Contact~Density + Species, data=dat, family=binomial)
dat2<-glm(Contact~Density + Species + Mass, data=dat, family = binomial)
lrtest(dat1, dat2)
Error in UseMethod("logLik") :
no applicable method for 'logLik' applied to an object of class "data.frame"
> dat1
Call: glm(formula = Contact ~ Density + Species, family = binomial,
data = dat)
Coefficients:
(Intercept) Density SpeciesNN
-2.0615 0.2522 1.3870
Degrees of Freedom: 39 Total (i.e. Null); 37 Residual
Null Deviance: 54.55
Residual Deviance: 41.23 AIC: 47.23
> dat2
Call: glm(formula = Contact ~ Density + Species + Mass, family = binomial,
data = dat)
Coefficients:
(Intercept) Density SpeciesNN Mass
-2.5584 0.2524 1.4258 0.2357
Degrees of Freedom: 39 Total (i.e. Null); 36 Residual
Null Deviance: 54.55
Residual Deviance: 41.11 AIC: 49.11
According to this link, either ANOVA or lrtest can be used for the likelihood ratio test. I tried the ANOVA method and the test produced results, unlike when I tried using lrtest(). Are both of these interchangeable, or would I miss out on any useful analysis by using ANOVA instead of lrtest?
Edit: Here is a sample of the data set from file.csv.
Density Species Mass Contact
1 2 NN 1.29 0
2 2 NN 2.84 1
3 2 NN 2.58 0
4 2 NN 2.81 1
5 2 NN 2.69 0
6 2 N 2.12 1
7 2 N 2.30 1
8 2 N 1.95 0
9 2 N 2.35 0
10 2 N 2.28 1
11 4 NN 0.90 0
12 4 NN 2.33 0
13 4 NN 0.81 1
14 4 NN 1.37 1
15 4 NN 1.01 1
16 4 N 1.94 0
17 4 N 2.49 0
18 4 N 2.13 0
19 4 N 1.90 0
20 4 N 1.46 0
I don't think there's a problem with your code. The error you're getting suggests that dat1 and dat2 are not models but data frames. Perhaps you didn't execute lines 2 and 3 of your code correctly?
Suggesting you restart your R completely and try this:
If it doesn't work, the only place where something could have happened differently is when you read in the csv file.
This shows why you should make it easier for others to reproduce your problem. In particular you should allow others to easily load some sample data. Ale even gave you a link explaining how to do it.