Mike Lawrence <mike <at> thatmike.com> writes: > Where f(x) is a logistic function, I have data that follow: > g(x) = f(x)*.5 + .5
> How would you suggest I modify the standard glm(..., family='binomial') > function to fit this? Here's an example of a clearly ill-advised attempt to > simply use the standard glm(..., family='binomial') approach: > #define the scale and location of the modified logistic to be fit > location = 20 > scale = 30 > x = runif(200,-200,200) > x.noise = runif(length(x),-10,10) > prob.success = plogis(x+x.noise,location,scale)*.5 + .5 > y = rep(NA,length(x)) > for(i in 1:length(x)){ > y[i] = sample( > x = c(1,0) > , size = 1 > , prob = c(prob.success[i], 1-prob.success[i]) > ) > } > plot(x,y) > curve(plogis(x,location,scale)*.5 + .5,add=T) Hi, You might try the link mafc.logit(m = 2) defined in the psyphy package. Continuing with your example, library(psyphy) fit <- glm(y ~ x, binomial(mafc.logit(2)), control = glm.control(maxit = 100)) # default didn't converge x.ord <- order(x) lines(x[x.ord], fitted(fit)[x.ord], col = "red", lwd = 3) HTH, Ken -- Ken Knoblauch Inserm U846 Institut Cellule Souche et Cerveau Département Neurosciences Intégratives 18 avenue du Doyen Lépine 69500 Bron France tel: +33 (0)4 72 91 34 77 fax: +33 (0)4 72 91 34 61 portable: +33 (0)6 84 10 64 10 http://www.sbri.fr ______________________________________________ R-help@r-project.org 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.