使用 nls 函数进行模型拟合变量维度不匹配

问题描述

我在此请教一些关于使用nls函数进行模型拟合的问题。我的工作表 1、工作表 2 和工作表 3 的 Excel 电子表格包含 75 个变量。首先,我使用 nls 函数修改后的公式拟合模型以获得我的参数值。获得参数值后,我将它插入到我的“普遍性”中以获得我的目标,即估计 P、Q 和 R 的未知参数。但是,结果带有一些不匹配维度,未知参数值不适合75 个变量的长度。我希望得到一些建议来解决这个问题。谢谢。

代码如下:

#Install Package
library(readxl)
library(MASS)
library(nlstools)

#Read Excel Spreadsheet
Sheet1 <- read_excel("Modelling (1).xlsx",sheet = "stroke (Male)")
Sheet2 <- read_excel("Modelling (1).xlsx",sheet = "HA (Male)")
Sheet3 <- read_excel("Modelling (1).xlsx",sheet = "Prevalence Rate (stroke Male)")

#Parameter values obtained from modelling after using nls function for Sheet1 and Sheet2

a1 <- (exp(-1.377957e+01)/1.284528e-01)*(exp(1.284528e-01*20))*(1-(1+0)*exp(1.284528e-01*1))
a2 <- (exp(-1.377957e+01)/1.284528e-01)*(0*exp(1.284528e-01*(20+(1/2))))*(1-1.284528e-01*(1/2))
a <- exp(a1+a2)

b1 <- (-1*exp(-13.684962266)/0.117514215)*(exp(0.117514215*(20+1)))

b2 <- (exp(-13.684962266)/0.117514215)*(exp(0.117514215*(20+(1/2))))*(1-(1/2)*0.117514215)

b <- exp(b1+b2)

c <- exp(-1*0.005378528)

d1 <- -1.377957e+01*0*exp(1.284528e-01*(20+(1/2)))
d2 <- exp(-13.684962266)*exp(0.117514215*(20+(1/2)))
d3 <- -1*6.808971e-04+0.005378528

d <- d1+d2+d3

g1 <- (-1*exp(-14.92307280)/0.13325161)*(exp(0.13325161*(20+1)))
g2 <- (exp(-14.92307280)/0.13325161)*(exp(0.13325161*(20+(1/2))))*(1-(1/2)*0.13325161)

g <- exp(g1+g2)

h <- exp(-1*0.01204073)

i2 <- exp(-14.92307280)*exp(0.13325161*(20+(1/2)))
i3 <- -1*6.808971e-04+0.01204073
i <- d1+i2+i3

#Model Fitting using nls function

prevalence <- nls(Prevalence ~ (P*C*(1-exp(-1*(P+Q+R+E)))/(P+Q+R+E))/((P*C*(1-exp(-1* (P+Q+R+E)))/(P+Q+R+E))+Q*a*g*h*((exp((-P-Q-R+i)*1)-1)/(-P-Q-R+i)),data=Sheet5,start=list(P=0.01,Q=0.01,R=0.01),trace=TRUE)

结果

qr(.swts * gr) 中的错误:dims [产品 3] 与对象 [75]* 的长度不匹配

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)