[R] Non-linear maximization function in R
peter dalgaard
pdalgd at gmail.com
Wed Oct 19 15:49:32 CEST 2011
On Oct 18, 2011, at 20:12 , aazaff wrote:
>
> # My understanding of how this is supposed to work is that the final line of
> the HOF function:
> "sum(-dbinom(y,M,fv,log=TRUE))" is supposed to give the negative log-odds of
> that function being a good fit.
>
>> HOF(p,x=Sample,y=Aequipecten,model=4)
> [1] 63.38763
>
> # Notice, however, that it returns a positive value, when it is supposed to
> be negative. What does this mean? What am I doing wrong?
Not reading up on the theory.
a: That looks like a negative log likelihood. "Log odds of being a good fit" makes no sense (to me at least).
b: Likelihoods for discrete data are probabilities, hence the log likelihood is negative and the negative log likelihood is positive.
c: You usually want to maximize the likelihood, hence minimize the negative log likelihood.
d: Your "gaussian logistic regression" below, isn't. It's a binary logistic regression, basically doing what HOF.start does, but calculating a different set of transformed parameters.
e: The names on the return value from HOF.start doesn't seem to match the function definition???
> #Furthermore, if I attempt a non-linear maximization on this function, I
> continue to get a positive negative log-odds and what I think are
> unreasonable looking parameter estimates. What does this mean?
>
>> sol<-nlm(HOF,p,x=Sample,y=Aequipecten,model=4)
>> sol
> $minimum
> [1] 32.72701
>
> $estimate
> [1] -8.751336 12.687632 8.281556
>
> $gradient
> [1] -4.640475e-07 -5.290583e-07 5.618925e-08
>
> $code
> [1] 1
>
> $iterations
> [1] 16
>
>
> # If I compare these results to simply doing a straight gaussian logistic
> regression on the vectors I get quite a different result. I'm very confident
> that this equation is working properly. I would expect the outputs of this
> function to be roughly equivalent to the results from object "p" as seen
> above, but they don't look similar at all. I'm not sure what this means.
>
> tBLparamsForOneSpecies <- function(theData) {
> x <- theData[ ,1]
> y <- theData[ ,2]
> logitReg <- glm(y ~ x + I(x^2), family=binomial)
> b0 <- logitReg$coefficients[1]
> b1 <- logitReg$coefficients[2]
> b2 <- logitReg$coefficients[3]
> opt <- (-b1)/(2*b2)
> tol <- 1 / sqrt(-2*b2)
> pmax<-1/(1+exp(b1^2/(4*b2)-b0))
> theParams <- cbind(opt, tol, pmax)
> theParams
> }
>
>> theData<-cbind(Sample,Aequipecten)
>> tBLparamsForOneSpecies(theData)
>> tBLparamsForOneSpecies(theData)
> opt tol pmax
> x 0.6337473 0.1468823 0.2433407
>
> #Nor do to the coefficients look similar to p either.
>
>> glm(Aequipecten~Sample+I(Sample^2),family=binomial)
>
> Call: glm(formula = Aequipecten ~ Sample + I(Sample^2), family = binomial)
>
> Coefficients:
> (Intercept) Sample I(Sample^2)
> -10.44 29.37 -23.18
>
> Degrees of Freedom: 86 Total (i.e. Null); 84 Residual
> Null Deviance: 73.38
> Residual Deviance: 68.07 AIC: 74.07
>
>
> # So anyway, to sum up my problem, I'm concerned that the results of my
> function HOF and of my non-linear maximization of HOF keep giving me a
> positive log-odds. I'm not sure if this is a result of a bug in the code
> somewhere, or if I actually just don't understand what I'm doing in terms of
> the statistics. I've tried to provide as much information as possible, but I
> really don't know where or what the problem is.
>
> Thank you for any help,
>
> Andrew
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Non-linear-maximization-function-in-R-tp3916240p3916240.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at 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.
--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
More information about the R-help
mailing list