通过实验,我获得了响应变量y和预测变量x1和x2的实验数据,根据自己的专业知识建立了如下数学模型:
其中a、b、c、d为待估计的参数。
如何对上式参数进行估计和显著性检验?
exp1 <- function(x){exp(x)/(exp(x)+1)}
model1 <- function(p,data){
(exp1(p[1] * data$x1+p[2]))*(p[3]*(data$x2)^2+p[4]*(data$x2))
}
ssq <- function(p,funk,data,observed){
predval <- funk(p,data)
return(sum((observed-predval)^2))
}
p=rep(2,4)
bestmodel <- nlm(f=ssq,funk=model1,observed=data$y,p=p,data=data,
iterlim = 1000)
outfit(bestmodel,backtran=FALSE,title="vB")
pred <- model1(bestmodel$estimate,data)
plot(pred,pred-data$y)
qqnorm(pred-data$y)
#Compare fitted value and observed value
plot(data$x2,data$y,type="p",pch=16, col=ifelse(data$x1<0.2,"red","blue"),
cex=1.2,yaxs="i",xlab="x2",
xlim=c(0,getmax(data$x2)),ylim=c(-1,getmax(data$y)),
ylab="y",panel.first=grid())
points(data$x2,pred,lwd=2,col=ifelse(data$x1<0.2,"black","gray"))
qqnorm(pred-data$y)
模型拟合与实验结果对比,其中黑色和灰色是模型拟合的点,红色和蓝色是实验结果
模型QQplot
如何用R语言或python获得参数a、b、c、d的估计值及其显著性分析
这里面的内容希望对你会有一些帮助。