所以我想创建一个同时满足两个约束的逻辑回归。
此处的链接概述了如何使用Excel求解器最大化逻辑回归的Log-Likelihood值,但我想在R中实现类似的功能
我最终要创建的是injury risk function。它们采用S-shape函数。
如我们所见,风险曲线由以下等式计算
让我们从
开始获取一些虚拟数据set.seed(112233)
A <- rbinom(153, 1, 0.6)
B <- rnorm(153, mean = 50, sd = 5)
C <- rnorm(153, mean = 100, sd = 15)
df1 <- data.frame(A,B,C)
假设A
表示骨骼是否断裂,B
是骨密度,C
是施加的力。
因此,我们可以形成一个逻辑回归模型,使用B
和C
能够解释结果变量A
。回归的一个简单例子可能是:
或者
glm(A ~ B + C, data=df1, family=binomial())
现在我们想要做出第一个假设,即零力,我们应该没有风险。这进一步解释为A1。在第124页here
在这里,我们设置A1=0.05
并解决等式
A1 = 1 - (1-P(0))^n
其中P(0)
是伤害相关参数为零且n
为样本大小时受伤的概率。
我们有样本量,可以求解P(0)
。我们得到3.4E-4
。这样:
第二个假设是我们应该最大化回归的对数似然函数
我们希望最大化以下等式
其中 pi 是根据上述等式估算的,而 yi 是每个区间的非中断观测值
我理解的是,我必须使用R中的两个函数之一来定义最大LL的函数。我可以使用基础R中的mle
或mle2
来自bbmle
的<{1}}。
我想我需要沿着这些行写一个函数
log.likelihood.sum <- function(sequence, p) {
log.likelihood <- sum(log(p)*(sequence==1)) + sum(log(1-p)*(sequence==0))
}
但我不确定在哪里应该考虑第一个假设。 IE浏览器。我最好将它构建到上面的代码中,如果是这样,怎么样?或者写一个二级结合来结合这两个假设会更有效率。任何建议都会很棒,因为我在编写和理解函数
方面的经验非常有限