首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不知道方程的情况下,如何在点处取最佳拟合线的导数?

在不知道方程的情况下,如何在点处取最佳拟合线的导数?
EN

Stack Overflow用户
提问于 2021-12-28 18:40:44
回答 1查看 63关注 0票数 4

型号:

代码语言:javascript
复制
mylogit <- glm(Result ~ kickLength, data = RegFg, family = "binomial") 

概率图:

代码语言:javascript
复制
plot.dat <- data.frame(prob = RegFg$NumMade/RegFg$NumKick, 
    kl = RegFg$kickLength, 
    fit = predict(mylogit, RegFg))
代码语言:javascript
复制
plot.dat$fit_prob <- exp(plot.dat$fit)/(1+exp(plot.dat$fit)) 
代码语言:javascript
复制
g1<-ggplot(plot.dat, aes(x=kl, y=prob)) +  
   geom_point() + geom_line(aes(x=kl, y=fit_prob)) 

概率拟合线(我认为):

代码语言:javascript
复制
geom_line(aes(x=kl, y=fit_prob))

我正在寻找概率的导数,在每一个踢长度与踢长度有关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-28 19:34:00

如果你想在不知道公式的情况下做这件事,那就意味着数值微分。现在问题中缺少了输入,所以让我们在最后的Note中使用这个例子,这样它就可以实际运行了--下次请提供一个完整的可运行示例。然后使用与numDeriv包的数字区分。

代码语言:javascript
复制
library(numDeriv)

prob <- function(x) predict(fm, list(x = x), type = "response")
grad1 <- grad(prob, x)  # find derivative at each x value

# check against formula in Ben Bolker's comment
grad2 <- coef(fm)["x"] * binomial()$mu.eta(predict(fm, list(x = x), type = "link"))
all.equal(grad1, grad2, check.attributes = FALSE)
## [1] TRUE

备注

代码语言:javascript
复制
set.seed(123)
success <- rep(0:1, each = 3)
x <- rnorm(6)
fm <- glm(success ~ x, family = binomial)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70511208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档