2014-05-21 3 views
1

J'ai une matrice Expr avec des lignes représentant des variables et des échantillons de colonnes. J'ai un vecteur catégoriel appelé groups (contenant "A", "B", ou "C") Je veux tester quelle variable 'Expr' peut s'expliquer par le fait que l'échantillon appartient à un group. Ma stratégie serait de modéliser le problème avec un modèle additif généralisé (avec une distribution binomiale négative). Et puis je veux utiliser un test de rapport de vraisemblance d'une manière variable pour obtenir une valeur de p pour chaque variable. je:Comparer les ajustements de deux GAM

require(VGAM) 
m <- vgam(Expr ~ group, family=negbinomial) 
m_alternative <- vgam(Expr ~ 1, family=negbinomial) 

puis:

lr <- lrtest(m, m_alternative) 

La dernière étape est erroné car il teste le rapport de vraisemblance global du modèle à deux pas sage la variable. Au lieu d'une seule valeur p je voudrais obtenir un vecteur des p-values ​​pour chaque variable.

Comment dois-je faire? (Je suis très nouveau à R, alors pardonnez-moi ma stupidité)

+0

Pouvez-vous expliquer un peu plus pourquoi cela ne fonctionne pas? Ou ce que vous attendez de faire? –

+0

Essentiellement, vous testez si un modèle avec 'group' est meilleur qu'un modèle sans. C'est un test global pour 'group'. On dirait que tu fais ce que tu veux. – MrFlick

+0

@MrFlick habituellement c'est ce que l'on veut faire, mais ce que j'essaie de faire ici est un peu différent. Je veux tester pour chaque variable de Expr si le modèle avec le groupement est meilleur qu'Expr ~ 1 qui est fondamentalement juste le bruit. J'utiliserai les p-values ​​pour déterminer quelle variable change entre les groupes – Gioelelm

Répondre

0

Il semble que vous voulez utiliser Expr comme prédicteurs Il pense que vous pouvez avoir votre formule en arrière. La réponse devrait être sur la gauche, donc je suppose que ce sont des groupes dans votre cas.

Si Expr est un data.frame, vous pouvez faire une régression sur toutes les variables avec

m <- vgam(group ~ ., Expr, family=negbinomial) 

Si class(Expr)=="matrix", puis

m <- vgam(group ~ Expr, family=negbinomial) 

devrait probablement travailler, mais vous pouvez juste obtenir un peu bizarre regarder des étiquettes de coefficient .