Writing a new link for a GLM.

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Writing a new link for a GLM.

Jan Graffelman
Hi,

I wish to write a new link function for a GLM. R's glm routine does
not supply the "loglog" link. I modified the make.link function adding
the code:

     }, loglog = {
         linkfun <- function(mu) -log(-log(mu))
         linkinv <- function(eta) exp(-exp(-eta))
         mu.eta <- function(eta) exp(-exp(-eta)-eta)
         valideta <- function(eta) all(eta != 0)
     }, stop(sQuote(link), " link not recognised"))
     structure(list(linkfun = linkfun, linkinv = linkinv, mu.eta = mu.eta,
         valideta = valideta, name = link), class = "link-glm")
}


and then call glm with argument

glm(y~x1+x2+x3,family=binomial(link=make.link("loglog")),data=X)

and that seems to work.

Is this the way to include a new link function? Any other suggestions?

Jan.

--
------------------------------------------------------------------------
|Jan Graffelman                          |tel:   +34-93-4011739        |
|Dpt. of Statistics & Operations Research|fax:   +34-93-4016575        |
|Universitat Politecnica de Catalunya    |email: [hidden email]|
|Av. Diagonal 647, 6th floor             |www:                         |
|08028 Barcelona, Spain                  |  http://www-eio.upc.es/~jan/|

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: Writing a new link for a GLM.

RKoenker
I wrote an R-news note about this sort of thing in 2006, you can
navigate there via CRAN...

url:    www.econ.uiuc.edu/~roger            Roger Koenker
email    [hidden email]            Department of Economics
vox:     217-333-4558                University of Illinois
fax:       217-244-6678                Champaign, IL 61820


On Jun 13, 2008, at 4:54 AM, Jan Graffelman wrote:

> Hi,
>
> I wish to write a new link function for a GLM. R's glm routine does
> not supply the "loglog" link. I modified the make.link function adding
> the code:
>
>    }, loglog = {
>        linkfun <- function(mu) -log(-log(mu))
>        linkinv <- function(eta) exp(-exp(-eta))
>        mu.eta <- function(eta) exp(-exp(-eta)-eta)
>        valideta <- function(eta) all(eta != 0)
>    }, stop(sQuote(link), " link not recognised"))
>    structure(list(linkfun = linkfun, linkinv = linkinv, mu.eta =  
> mu.eta,
>        valideta = valideta, name = link), class = "link-glm")
> }
>
>
> and then call glm with argument
>
> glm(y~x1+x2+x3,family=binomial(link=make.link("loglog")),data=X)
>
> and that seems to work.
>
> Is this the way to include a new link function? Any other suggestions?
>
> Jan.
>
> --
> ------------------------------------------------------------------------
> |Jan Graffelman                          |tel:    
> +34-93-4011739        |
> |Dpt. of Statistics & Operations Research|fax:    
> +34-93-4016575        |
> |Universitat Politecnica de Catalunya    |email: [hidden email]
> |
> |Av. Diagonal 647, 6th floor             |
> www:                         |
> |08028 Barcelona, Spain                  |  http://www-eio.upc.es/~jan/ 
> |
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.