Existe-t-il un moyen simple de combiner deux modèles GLM dans R?

9

J'ai deux modèles de régression logistique en R réalisés avec glm(). Ils utilisent tous deux les mêmes variables, mais ont été créés en utilisant différents sous-ensembles d'une matrice. Existe-t-il un moyen facile d'obtenir un modèle moyen qui donne les moyennes des coefficients et de l'utiliser ensuite avec la fonction Predict ()?

[désolé si ce type de question doit être posté sur un site de programmation faites le moi savoir et je le posterai là-bas]

Merci

Andrew
la source
1
Vous pouvez trouver des informations utiles dans le fil associé à stats.stackexchange.com/q/8502/919 .
whuber
Dans R, le caretpackage a quelques fonctionnalités intéressantes pour combiner des modèles.
screechOwl

Réponses:

2

Voulez-vous prendre la moyenne des probabilités prédites ou la moyenne des coefficients? Ils donneront des résultats différents, car une régression logistique implique une transformation non linéaire du prédicteur linéaire.

Une fonction à effectuer serait quelque chose comme ça. Prêt avgà "prob"récupérer le premier, ou autre chose pour le second.

pred_comb <- function(mod1, mod2, dat, avg="prob", ...)
{
    xb1 <- predict(mod1, dat, type="link", ...)
    xb2 <- predict(mod2, dat, type="link", ...)
    if(avg == "prob")
        (plogis(xb1) + plogis(xb2))/2
    else plogis((xb1 + xb2)/2)
}
Hong Ooi
la source
@Hong Ooi: Merci! Ce code est vraiment utile, et fera l'affaire, mais ce que je visais principalement était une fonction qui donnerait un nouveau modèle R que je pourrais ensuite mettre en Predict () plus tard dans le flux de travail. Cependant, je pense que votre fonction est assez élégante, et comme la façon dont vous pouvez la définir pour donner des probabilités.
Andrew
@Andrew vous pouvez profiter de la programmation orientée objet de R pour cela. Mettez vos deux modèles dans une liste et donnez-lui une classe, par exemple glm_2. Appelez la fonction ci-dessus predict.glm_2et vous pourrez ensuite l'utiliser predict()sur votre objet selon vos besoins.
Hong Ooi
2
Pourquoi la moyenne des coefficients est-elle appropriée? Si les deux ensembles de données ont des tailles différentes, alors au moins une certaine forme de moyenne pondérée devrait être utilisée.
whuber
@ Hong - merci, je vais essayer ça. @whuber - merci de l'avoir signalé. Si mes deux jeux de données sont de la même taille, cela pèse un problème (je n'y avais pas pensé auparavant). S'ils sont différents, est-ce que je pèse simplement par le rapport des tailles (par exemple, si l'un est deux fois plus grand, est-ce que je lui donne le double du poids)?
Andrew
@Andrew Il est correct de pondérer par le nombre de données uniquement si les valeurs des variables indépendantes sont les mêmes dans les deux sous-ensembles. Pour une meilleure approche (qui est également théoriquement valide), consultez le fil auquel j'ai fait référence dans un commentaire à votre question.
whuber