2017-09-28 5 views
1

J'ai exécuté la fonction "aictab" dans R sur une liste de six modèles GLM candidats (neuf fois pour neuf variables de réponse différentes). Mes variables de réponse sont distribuées soit en gamma, soit en binôme négatif. (J'utilise des structures d'erreurs binomiales négatives car j'ai des données de comptage trop dispersées.) La fonction aictab a bien fonctionné et m'a donné une table avec des valeurs AICc, des poids de modèle, etc. sur mes modèles avec des structures d'erreur Gamma, mais quand J'ai essayé d'exécuter la fonction sur mes modèles avec des structures d'erreur binomiales négatives, j'ai réalisé que ce type de structure d'erreur n'est pas supporté pour aictab() et je ne peux pas obtenir de poids AICc ou de modèle.Obtenir AICc pour plusieurs modèles GLM binomiaux négatifs

Ma question est la suivante: quelles autres fonctions ou code puis-je utiliser pour obtenir la sortie équivalente de la fonction aictab pour mes modèles GLM binomiaux négatifs? Exemple de code/erreur est ci-dessous.

setwd('C:/Users/Laura/Desktop/') 
library(ggplot2) 
library(Hmisc) 
library(psych) 
library(multcomp) 
library(gridExtra) 
library(lmerTest) 
library(plotrix) 
library(stats) 
library(stats4) 
library(gplots) 
library(sciplot) 
library(lme4) 
library(lmerTest) 
library(AICcmodavg) 
library(glmulti) 

########################################## 
indi<-read.csv("trait_data_all_years.csv", header=T) 
indi$year<-as.factor(indi$year) 
str(indi) 
summary(indi$tot.sil) 
hist(indi$tot.sil, breaks=20) 
indi<-subset(indi, tot.sil!="NA") 
summary(indi$tot.sil) 

year_site<-glm.nb(tot.sil~year + site, data=indi) 
year_site_hab<-glm.nb(tot.sil~year + site + hab, data=indi) 
yearhabinteract_plus_site<-glm.nb(tot.sil~year*hab + site, data=indi) 
yearsiteinteract_plus_hab<-glm.nb(tot.sil~year*site + hab, data=indi) 
habsiteinteract_plus_year<-glm.nb(tot.sil~year + site*hab, data=indi) 
threewayinteract<-glm.nb(tot.sil~site*hab*year, data=indi) 

model.set<- list(year_site, year_site_hab, yearhabinteract_plus_site, yearsiteinteract_plus_hab, habsiteinteract_plus_year, threewayinteract) 

aictab (model.set) 

Je reçois cette erreur lors de l'exécution aictab (model.set)

aictab (model.set) 
Error in aictab.default(model.set) : 
Function not yet defined for this object class 

Répondre

0

Il n'y a pas une telle fonction appelée aictab.default() que je suis au courant, ni avez-vous défini une telle fonction dans votre programme.

Vous devriez être en mesure d'utiliser quelque chose comme

model.set <- c(year_site, year_site_hab, yearhabinteract_plus_site, yearsiteinteract_plus_hab, habsiteinteract_plus_year, threewayinteract) 

AIC(model.set) 

Sinon, year_site aic de $ renverra l'AIC pour le GLM binomial year_site. Vous pouvez faire la même chose avec les autres modèles pour extraire les AIC individuels.

+0

Dans l'erreur, il s'appelle "aictab.default", mais la fonction que j'ai exécutée était en fait aictab(). Désolé pour la confusion ... J'ai mis à jour la question pour être plus clair. Merci pour votre réponse! De plus, pour autant que je sache, les fonctions AIC() ou AICc() renvoient uniquement la valeur AIC ou AICc respectivement (pas de poids de modèle, etc.) et ne peuvent être utilisées que sur un seul modèle et non sur un ensemble de modèles. c'est ce dont j'ai besoin. – Laura