Программирование на R: использование varfun для определения функции дисперсии в квази семейства glm - PullRequest
2 голосов
/ 21 марта 2011

Я хочу использовать varfun для указания моих собственных функций дисперсии в квази-семействе glm, но я не могу найти никакой документации о том, как использовать эту функцию. У кого-нибудь есть идеи о том, как использовать эту функцию?

1 Ответ

2 голосов
/ 21 марта 2011

Как установлено, quasi() принимает только свои предопределенные функции дисперсии, которые являются "mu (1-mu)", "mu", "mu ^ 2", "mu ^ 3" и "constant».Если вы хотите использовать один из них, вам просто нужно указать его в виде строки для аргумента variance =.

Если вы хотите указать собственную функцию дисперсии: «Квази-семейство приметбуквенная символьная строка (или без кавычек как имя / выражение) спецификации "константа", "му (1-му)", "му", "му ^ 2" и "му ^ 3", символьный вектор длины один, принимающий единицуиз этих значений или список, содержащий компоненты varfun, validmu, dev.resids, initialize и name . "

Это из файла справки!Как я пропустил это раньше?В любом случае, все равно было бы полезно взглянуть на саму функцию quasi, чтобы увидеть, как она определяет каждый из этих компонентов для своих предварительно установленных функций дисперсии.

Если вы хотите указать функцию дисперсиисвоего собственного создания, вам нужно посмотреть, что возвращает функция 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")

Если вы наберете quasi в консоли (без скобок), вы сможете увидеть, как эта функция создаетэта структура.Вы можете создать практически любое «семейство», которое захотите, изменив эту структуру и передав ее в аргумент glm() family =.На самом деле создание новой семьи, которая работает, как хотелось бы, - путь из моей глубины, но вот как ты это сделал.Будьте лектором.

...