Thank you for suggesting other functions, I will look into them. When I read the deriv() function, it did mention partial, but I (being a newbie) wasn't able to get partials for a simple MNL equation. I'm sure I did something wrong then, but here's what I tried the following and got different answers, concluding prematurely maybe that deriv actually just gives regular derivatives. Thanks for looking:
### Variables for an observation x01 <- rnorm(1,0,1) x02 <- rnorm(1,0,1) ### Parameters for an observation b00.1 <- rnorm(1,0,1) b00.2 <- rnorm(1,0,1) b00.3 <- 0 b01.1 <- rnorm(1,0,1) b01.2 <- rnorm(1,0,1) b01.3 <- 0 b02.1 <- rnorm(1,0,1) b02.2 <- rnorm(1,0,1) b02.3 <- 0 ### Predicted Probabilities for an observation phat1 <- 0.6 phat2 <- 0.3 phat3 <- 0.1 ### Correct way to calculate a partial derivative for MNL partial.b01.1 <- phat1 * (b01.1 - (b01.1*phat1+b01.2*phat2+b01.3*phat3)) partial.b01.2 <- phat2 * (b01.2 - (b01.1*phat1+b01.2*phat2+b01.3*phat3)) partial.b01.3 <- phat3 * (b01.3 - (b01.1*phat1+b01.2*phat2+b01.3*phat3)) partial.b01.1; partial.b01.2; partial.b01.3 partial.b02.1 <- phat1 * (b02.1 - (b01.1*phat1+b01.2*phat2+b01.3*phat3)) partial.b02.2 <- phat2 * (b02.2 - (b01.1*phat1+b01.2*phat2+b01.3*phat3)) partial.b02.3 <- phat3 * (b02.3 - (b01.1*phat1+b01.2*phat2+b01.3*phat3)) partial.b02.1; partial.b02.2; partial.b02.3 ### Derivatives for MNL according to (my interpretation of) the deriv() function dp1.dx <- deriv(phat1 ~ exp(b00.1+b01.1*x01+b02.1*x02) / (exp(b00.1+b01.1*x01+b02.1*x02)+exp(b00.2+b01.2*x01+b02.2*x02)+ exp(b00.3+b01.3*x01+b02.3*x02)), c("x01","x02")) dp2.dx <- deriv(phat2 ~ exp(b00.2+b01.2*x01+b02.2*x02) / (exp(b00.1+b01.1*x01+b02.1*x02)+exp(b00.2+b01.2*x01+b02.2*x02)+ exp(b00.3+b01.3*x01+b02.3*x02)), c("x01","x02")) dp3.dx <- deriv(phat3 ~ exp(b00.3+b01.3*x01+b02.3*x02) / (exp(b00.1+b01.1*x01+b02.1*x02)+exp(b00.2+b01.2*x01+b02.2*x02)+ exp(b00.3+b01.3*x01+b02.3*x02)), c("x01","x02")) attr(eval(dp1.dx), "gradient") attr(eval(dp2.dx), "gradient") attr(eval(dp3.dx), "gradient") -- View this message in context: http://www.nabble.com/Partial-Derivatives-in-R-tp23470413p23475411.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.