programmation R: Utilisation varfun pour préciser la fonction de la variance dans la famille GLM quasi

StackOverflow https://stackoverflow.com/questions/5375021

  •  28-10-2019
  •  | 
  •  

Question

Je veux utiliser varfun pour spécifier mes propres fonctions de la variance dans la famille quasi de GLM, mais je ne peux pas trouver toute la documentation sur l'utilisation de la fonction. Est-ce que quelqu'un a une idée sur la façon d'utiliser cette fonction?

Était-ce utile?

La solution

Comme il est mis en place, quasi() ne prend ses propres fonctions de variance prédéfinies, qui sont "mu (1 mu)", "mu", "mu ^ 2", "mu ^ 3" et "constante". Si vous voulez utiliser l'un de ceux-ci, il vous suffit de le spécifier comme chaîne à l'argument variance =.

Si vous souhaitez spécifier une fonction de la variance de votre propre: « La famille quasi acceptera le cahier des charges chaîne de caractères littérale (ou non cotées comme un nom / expression) « constante », « mu (1 mu) », » mu », "mu ^ 2" et "mu ^ 3", un vecteur de caractères longueur une prise de l'une de ces valeurs, ou une liste contenant varfun des composants, validmu, dev.resids, initialisation et le nom . «

C'est du fichier d'aide! Comment ai-je pu rater ça avant? Quoi qu'il en soit, il pourrait encore être utile d'examiner la fonction quasi lui-même pour voir comment il précise chacun de ces composants pour ses fonctions de variance prédéfinies.

Si vous souhaitez spécifier une fonction de la variance de votre propre création, vous devez regarder ce que le rendement de la fonction quasi():

structure(list(family = "quasi", link = linktemp, linkfun = stats$linkfun,
          linkinv = stats$linkinv, variance = varfun, dev.resids = dev.resids, 
          aic = aic, mu.eta = stats$mu.eta, initialize = initialize, 
          validmu = validmu, valideta = stats$valideta, varfun = variance_nm), 
          class = "family")

Si vous tapez quasi dans la console (sans parenthèses), vous pouvez voir comment cette fonction va sur la création de cette structure. Vous pouvez créer fondamentalement ce que la « famille » que vous souhaitez en modifiant cette structure et le passage à l'argument de glm() de votre family =. En fait, la création d'une nouvelle famille qui fonctionne comme désiré est sortie de ma profondeur, mais est comment as-tu le faire. Caveat lector.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top