Thanks for the tip!
unfortunately though conf limits calculated with Fieller and delta methods do
not seem to be in agreement with (and seem to be worse than..) my SPSS
results.. Am i doing something wrong?
thanks a lot in advance for your help!!
An RSiteSearch on 'Fieller' gave me the following 2 posts
one from S.B.Cox using fieller's conf limits, and one from Varadhan using
delta method:
1-Fieller's Conf Limits and EC50's
From: Stephen B. Cox <stephen.cox>
Date: Wed, 13 Jul 2005 11:42:52 -0500
ec.calc<-function(obj,conf.level=.95,p=.5) {
call <- match.call()
coef = coef(obj)
vcov = summary.glm(obj)$cov.unscaled
b0<-coef[1]
b1<-coef[2]
var.b0<-vcov[1,1]
var.b1<-vcov[2,2]
cov.b0.b1<-vcov[1,2]
alpha<-1-conf.level
zalpha.2 <- -qnorm(alpha/2)
gamma <- zalpha.2^2 * var.b1 / (b1^2)
eta = family(obj)$linkfun(p) #based on calcs in V&R's dose.p
EC50 <- (eta-b0)/b1
const1 <- (gamma/(1-gamma))*(EC50 + cov.b0.b1/var.b1)
const2a <- var.b0 + 2*cov.b0.b1*EC50 + var.b1*EC50^2 -
gamma*(var.b0 - cov.b0.b1^2/var.b1)
const2 <- zalpha.2/( (1-gamma)*abs(b1) )*sqrt(const2a)
LCL <- EC50 + const1 - const2
UCL <- EC50 + const1 + const2
conf.pts <- c(LCL,EC50,UCL)
names(conf.pts) <- c("Lower","EC50","Upper")
return(conf.pts,conf.level,call=call)
}
#when i apply it to my data (see below)
# i get with Fieller's method by Cox
# Lower EC50 Upper
#11.47628 140.8351 8423.78
# while SPSS gives me:
# Lower EC50 Upper
#98,37857 140,83525 205,34483
library(MASS)
Response<-c(0,7,26,27,0,5,13,29,0,4,11,25)
Tot<-rep(30.5,12)
Dose<-rep(c(10,40,160,640),3)
probit<-glm(formula = Response/Tot~ log10(Dose), family=quasibinomial
(link=probit))
ec.calc(probit,conf.level=.95,p=.5)
$conf.pts
Lower EC50 Upper
1.059801 2.148711 3.925507
$conf.level
[1] 0.95
$call
ec.calc(obj = probit, conf.level = 0.95, p = 0.5)
Warning message:
multi-argument returns are deprecated in: return(conf.pts, conf.level, call =
call)
2-Fieller's Conf Limits and EC50's
From: Ravi Varadhan <rvaradha>
Date: Thu, 14 Jul 2005 09:44:47 -0400
varEC50 <- 1/b1^2 * (var.b0 + EC50^2*var.b1 + 2*EC50*cov.b0.b1)
LCL <- EC50 - zalpha.2 * sqrt(varEC50)
UCL <- EC50 + zalpha.2 * sqrt(varEC50)
#when i apply it to my data
# i get with delta method by varadhan
# Lower EC50 Upper
# 46.15749 140.8351 429.7151
# while SPSS gives me:
# Lower EC50 Upper
#98,37857 140,83525 205,34483
"i.m.s.white" <[EMAIL PROTECTED]> wrote:
Finney's method for finding the confidence interval for a ratio of
parameters is quite simple and is probably described in his book
'Probit analysis'. It is also known as Fieller's method so an
RSiteSearch on 'Fieller' might show something useful.
On Mon, Aug 21, 2006 at 08:46:24AM -0700, carlos riveira wrote:
> thanks a lot Renaud.
> but i was interested in Finney's fiducial confidence intervals of LD50 so to
> obtain comparable results with SPSS.
>
> But your reply leads me to the next question: does anybody know what is the
> best method (asymptotic, bootstrap etc.) for calculating confidence intervals
> of LD50?
>
> i could "get rid" of Finney's fiducial confidence intervals but only if there
> was a better method..
>
> any idea?
>
>
>
> Renaud Lancelot wrote:
> Date: Mon, 21 Aug 2006 16:35:49 +0200
> From: "Renaud Lancelot"
> To: "carlos riveira"
> Subject: Re: [R] Finney's fiducial confidence intervals of LD50
> CC: [email protected]
>
> Sorry there was a typo in my previous reply:
>
> > D50 <- 10^c(logD50 + c(0, -1.96, 1.96) * attr(logD50, "SE"))
> > names(D50) <- c("D50", "lower", "upper")
> > D50
> D50 lower upper
> 140.8353 103.3171 191.9777
>
> Best,
>
> Renaud
>
> 2006/8/21, Renaud Lancelot :
> > I don't know what Finney's fiducial confidence interval is but if your
> > problem is to handle the output of dose.p (from MASS), you can do as
> > follows:
> >
> > > library(MASS)
> > > Response <- c(0, 7, 26, 27, 0, 5, 13, 29, 0, 4, 11, 25)
> > > Tot <- rep(30.5, 12)
> > > Dose <- rep(c(10, 40, 160, 640), 3)
> > > fm <- glm(Response/Tot ~ log10(Dose), family = quasibinomial(link =
> > > probit))
> > > logD50 <- dose.p(fm, cf = 1:2, p = 0.5)
> > > D50 <- 10^c(logD50 + c(1, -1.96, 1.96) * attr(logD50, "SE"))
> > > names(D50) <- c("D50", "lower", "upper")
> > > D50
> > D50 lower upper
> > 164.9506 103.3171 191.9777
> >
> > Best,
> >
> > Renaud
> >
> > 2006/8/21, carlos riveira :
> > > I am working with Probit regression (I cannot switch to logit) can
> > > anybody help me in finding out how to obtain with R Finney's fiducial
> > > confidence intervals for the levels of the predictor (Dose) needed to
> > > produce a proportion of 50% of responses(LD50, ED50 etc.)?
> > > If the Pearson chi-square goodness-of-fit test is significant (by
> > > default), a heterogeneity factor should be used to calculate the limits.
> > >
> > > Response<-c(0,7,26,27,0,5,13,29,0,4,11,25)
> > > Tot<-rep(30.5,12)
> > > Dose<-rep(c(10,40,160,640),3)
> > > probit<-glm(formula = Response/Tot~ log10(Dose), family=quasibinomial
> > > (link=probit))
> > > D50<- round(10^(dose.p(probit,cf=1:2,p=0.5)))
> > >
> > > #This is what SPSS calculates. I would like to reproduce these results
> > > with R:
> > > #SPSS RESULTS:
> > > #D50= 140,83525
> > > #CI = 98,37857;205,34483
> > > #Regr.coeff= 1,91676 (S.E.=0,16765)
> > > #Intercept=-4,11856 (S.E.=0,36355)
> > > Thanks a lot for your help.
> > >
> > > Carlos
> > >
> > > __________________________________________________
> > >
> > >
> > >
> > > [[alternative HTML version deleted]]
> > >
> > > ______________________________________________
> > > [email protected] 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.
> > >
> >
> >
> > --
> > Renaud LANCELOT
> > D?partement Elevage et M?decine V?t?rinaire (EMVT) du CIRAD
> > Directeur adjoint charg? des affaires scientifiques
> >
> > CIRAD, Animal Production and Veterinary Medicine Department
> > Deputy director for scientific affairs
> >
> > Campus international de Baillarguet
> > TA 30 / B (B?t. B, Bur. 214)
> > 34398 Montpellier Cedex 5 - France
> > T?l +33 (0)4 67 59 37 17
> > Secr. +33 (0)4 67 59 39 04
> > Fax +33 (0)4 67 59 37 95
> >
>
>
> --
> Renaud LANCELOT
> D?partement Elevage et M?decine V?t?rinaire (EMVT) du CIRAD
> Directeur adjoint charg? des affaires scientifiques
>
> CIRAD, Animal Production and Veterinary Medicine Department
> Deputy director for scientific affairs
>
> Campus international de Baillarguet
> TA 30 / B (B?t. B, Bur. 214)
> 34398 Montpellier Cedex 5 - France
> T?l +33 (0)4 67 59 37 17
> Secr. +33 (0)4 67 59 39 04
> Fax +33 (0)4 67 59 37 95
>
>
>
> ---------------------------------
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [email protected] 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.
--
************************************************
* I.White *
* University of Edinburgh *
* Ashworth Laboratories, West Mains Road *
* Edinburgh EH9 3JT *
* Fax: 0131 650 6564 Tel: 0131 650 5490 *
* E-mail: [EMAIL PROTECTED] *
************************************************
---------------------------------
Stay in the know. Pulse on the new Yahoo.com. Check it out.
[[alternative HTML version deleted]]
______________________________________________
[email protected] 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.