道阻且长1994
2022-05-09 10:05
采纳率: 0%
浏览 164
已结题

自定义模型的参数估计与显著性检验

问题描述

通过实验,我获得了响应变量y和预测变量x1和x2的实验数据,根据自己的专业知识建立了如下数学模型:

img

其中a、b、c、d为待估计的参数。

如何对上式参数进行估计和显著性检验?

我的解答思路和尝试过的方法
  1. 利用R语言中的nlm()函数(Newton-type algorithm)获得了参数估计,但不知如何对其进行显著性检验。
  2. 利用自助法随机抽样,然后利用(1)中的方法进行了参数估计,获得参数分布,然后进行区间估计;但问题是第一次抽样和第二次抽样的数据会有重叠,其结果并不独立,该方法可能并不可行。
  3. 看文献有很多模型使用MCMC进行参数的点估计和区间估计,但该函数的后验概率不会求。
  4. 不论何种方法,如何实现该模型的参数估计和区间估计
我使用的代码
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)

模型拟合与实验结果对比,其中黑色和灰色是模型拟合的点,红色和蓝色是实验结果

img

模型QQplot

img

我想要达到的结果

如何用R语言或python获得参数a、b、c、d的估计值及其显著性分析

模拟数据下载

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题