R中的非线性约束优化

新手25

我正在尝试预测特定疾病的存活率。我仅有的信息是诊断后1年,3年,5年和10年的生存率。

例如:

S,即生存率

S<-c(81,78,72,65)

x,诊断后的时间

x<-c(1,3,5,10)

我正在尝试测试一些功能,这些功能可以让我估算20年后的存活率。

我的功能之一被定义为

f(x)= exp(ax ^ b),a和b未知,但需要为正。我已经使用了fmarm提供的代码,但是已经测试了另一个功能。

f(x)=(1 +(x / a)^ b)^-1

但是,我得到了非常奇怪的值,所有值都小于1,而且我似乎无法弄清楚为什么。我错过了什么吗?

S<-c(81,78,72,65)
x<-c(1,3,5,10)

f<-function(ab)
{
  a <- ab[1]
  b <- ab[2]
  return(sum((((1+(x/a)**b)**-1)-S)**2))
}

minim <- nlm(f,p=c(1,1))

ab <- minim$estimate

a_opt <- ab[1]
b_opt <- ab[2]

prediction_exp <- function(x){
  return((1+(x/a_opt)**b_opt)**-1)
}
prediction_exp(20)

plot(prediction_exp(1:20), type="l", col="blue", xlab="Nb d'années après diagnostic", ylab="survie nette en %")
lines(x,S,col="black")

PS:我发现了我的错误。S向量必须小于1,并且该函数假定为x * a,而不是(x / a)。再次感谢fmarm帮助我!

fmarm

在您的情况下,S和x是固定的,您想找到最小化sum(i = 1到4)exp(a * x [i] ** b)-S [i])** 2的a和b

您可以创建一个函数

f <- function(ab){
  a <- ab[1]
  b <- ab[2]
  return(sum((exp(a*x**b)-S)**2))
}  

ab是长度为2的向量,其中第一位为a,第二位为b

要最小化此功能,您可以使用 nlm

minim <- nlm(f,p=c(0,0))

您必须提供p:ab的起始参数。因为我不知道什么会是好的,所以我只输入了a = 0和b = 0

ab <- minim$estimate

然后可以从a提取a和b

a_opt <- ab[1]
b_opt <- ab[2]

您可以创建预测功能

prediction_exp <- function(x){
  return(exp(a_opt*x**b_opt))
}
prediction_exp(20)

20年后预测的存活率约为63%

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Matlab中求解非线性约束优化?

来自分类Dev

在非线性优化函数“ nloptr”中传递参数

来自分类Dev

Python约束的非线性优化

来自分类Dev

优化问题,非线性:R中的目标和约束条件自动分析Jacobian / Hessian

来自分类Dev

在R中拟合广义非线性模型

来自分类Dev

无约束非线性优化函数

来自分类Dev

多变量约束非线性极小化

来自分类Dev

使用优化的R中的非线性优化

来自分类Dev

非线性函数的Scipy约束优化

来自分类Dev

旋转的非线性优化

来自分类Dev

在R中绘制非线性回归

来自分类Dev

R中非线性Langmuir参数估计的优化

来自分类Dev

约束非线性优化,值应为0.125的倍数

来自分类Dev

如何在python中优化非线性方程?

来自分类Dev

cvxpy:将非线性约束转换为等效线性约束

来自分类Dev

从Excel到R的非线性优化

来自分类Dev

R中的非线性有界优化

来自分类Dev

通过GEKKO中的L0范数/非零元素数约束混合整数非线性优化问题

来自分类Dev

R中的非线性曲线拟合

来自分类Dev

如何在Matlab中求解非线性约束优化?

来自分类Dev

R中的非线性优化

来自分类Dev

R中具有二次约束的单变量非线性优化

来自分类Dev

R中的单变量非线性优化

来自分类Dev

向R中的非线性模型添加约束

来自分类Dev

非线性函数的Scipy约束优化

来自分类Dev

约束线性优化设置

来自分类Dev

非线性约束 Cplex

来自分类Dev

GRG 非线性 R

来自分类Dev

线性方程组中的非线性约束