楼主: 林子里de
8720 9

[程序分享] 通过summary中的回归系数的估计值(Estimate)和(Std. Error)来画概率密度函数图 [推广有奖]

  • 5关注
  • 0粉丝

硕士生

68%

还不是VIP/贵宾

-

威望
0
论坛币
515 个
通用积分
21.8577
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
22690 点
帖子
47
精华
0
在线时间
323 小时
注册时间
2019-10-7
最后登录
2024-12-25

楼主
林子里de 发表于 2021-4-27 18:37:10 |AI写论文
100论坛币
如何通过非线性拟合之后的回归系数的估计值(Estimate)和标准误(Std. Error)(第一张截图),以及confint(d.nls0)置信区间(第二张截图),来画出每个参数估计值的概率密度图(如第三张截图是b1的概率密度图)。并要确定这个概率图是不是正态分布。

@J[[%SPUAQP3@QOG7Q_~QVY.png


}79H~YLO8CP]QKJZG5%L6`8.png





T11S[S5I%DR9$EJ)]9[3Z8Y.png

另外,可以通过confint(d.nls0)中b1的2.5%和97.5%的置信区间以及b1的参数估计值0.884430(均值 ?),来确定b1是不是正态分布吗


}79H~YLO8CP]QKJZG5%L6`8.png (36.38 KB)

}79H~YLO8CP]QKJZG5%L6`8.png

@J[[%SPUAQP3@QOG7Q_~QVY.png (71.88 KB)

@J[[%SPUAQP3@QOG7Q_~QVY.png

最佳答案

zhou1_20 查看完整内容

很好的问题, 做了简单的线性的例子,分别使用lm, bootstrap以及Bayesian拟合然后绘图,结果显示使用lm的结果直接绘图完全满足需要。非线性的情形可类似
关键词:estimate Summary 概率密度函数 Summa Error

回帖推荐

zhou1_20 发表于2楼  查看完整内容

很好的问题, 做了简单的线性的例子,分别使用lm, bootstrap以及Bayesian拟合然后绘图,结果显示使用lm的结果直接绘图完全满足需要。非线性的情形可类似

owenqi 发表于5楼  查看完整内容

根据我的理解,非线性回归实际上也就是因变量做某种变换以后变成线性回归,然后估计的方法常用的有迭代加权最小二乘(Iterated Reweighted Least Squares), 最大释然估计(MLE), 约束下最大释然估计(restricted ML)。这些方法总体上都是根据中心极限定理,求出点估计和标准差(或方差),也就是你summary里面的estimate和standard error,所以你通过这个能画出的参数的密度图一定会是正态分布。另外你也可以看到你的summary里 ...

本帖被以下文库推荐

沙发
zhou1_20 发表于 2021-4-27 18:37:11
很好的问题, 做了简单的线性的例子,分别使用lm, bootstrap以及Bayesian拟合然后绘图,结果显示使用lm的结果直接绘图完全满足需要。非线性的情形可类似
  1. # lm approach
  2. fits <- lm(weight~height, data = women)
  3. # obtain result
  4. fitssum <- summary(fits)
  5. # get coefficients and sd
  6. coes = fitssum$coefficients[,1]
  7. sds = fitssum$coefficients[,2]
  8. # bootrap parameters
  9. f <- function(data, d) coef(lm(weight~height, data = data[d,]))
  10. boot.fit <- boot(women, f, 1000)
  11. height.density <- density(boot.fit$t[,2])
  12. intercept.density <- density(boot.fit$t[,1])
  13. # Bayes approach
  14. library(rstanarm)
  15. fitbys = stan_lm(weight~height, data = women,
  16.                  chains = 2, iter = 5000, seed = 123,
  17.                  prior = R2(0.5, what = 'mean'), refresh = 0)

  18. print(fitbys, digits=5);
  19. coesbys = fitbys$coefficients
  20. sdsbys = fitbys$ses
复制代码

已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
cheetahfly + 10 热心帮助其他会员
llb_321 + 5 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 15  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
林子里de 发表于 2021-4-27 18:42:34
summary(d.nls0)中的标准误Std. Error是Estimate(均值)的均值标准误SEM吗

板凳
zhou1_20 发表于 2021-4-27 21:44:31
  1. # decipt
  2. op = par(mfrow=c(1,2))
  3. # plot the height coef
  4. x.h = seq(3, 4, len=50)
  5. y.h = dnorm(x.h, mean = coes[2], sd = sds[2])
  6. yb.h = dnorm(x.h, mean = coesbys[2], sd = sdsbys[2])
  7. plot(height.density, main = "height coef Density",
  8.      ylim = range(c(y.h, yb.h, height.density$y)))
  9. lines(x.h, y.h, col=2)
  10. lines(x.h, yb.h, col=3)
  11. #abline(v=coes[2],col='blue')
  12. legend('topright',c('bootstrap','lm','Bys'),col=1:3,lty=1,bty='n')
  13. # plot the intercept coef
  14. x.i = seq(-120, -60, len=50)
  15. y.i = dnorm(x.i, mean = coes[1], sd = sds[1])
  16. yb.i = dnorm(x.i, mean = coesbys[1], sd = sdsbys[1])
  17. plot(intercept.density, main = "intercept coef Density",
  18.      ylim=range(c(y.i, yb.i, intercept.density$y)))
  19. lines(x.i, y.i, col=2)
  20. #abline(v=coes[1],col='blue')
  21. lines(x.i, yb.i, col=3)
  22. legend('topright',c('bootstrap','lm','Bys'),col=1:3,lty=1,bty='n')
  23. par(op)
复制代码

已有 2 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员
llb_321 + 5 精彩帖子

总评分: 论坛币 + 15   查看全部评分

报纸
owenqi 在职认证  学生认证  发表于 2021-4-28 00:30:25
根据我的理解,非线性回归实际上也就是因变量做某种变换以后变成线性回归,然后估计的方法常用的有迭代加权最小二乘(Iterated Reweighted Least Squares), 最大释然估计(MLE), 约束下最大释然估计(restricted ML)。这些方法总体上都是根据中心极限定理,求出点估计和标准差(或方差),也就是你summary里面的estimate和standard error,所以你通过这个能画出的参数的密度图一定会是正态分布。另外你也可以看到你的summary里面也对参数做了t检验,t检验是基于正态分布假设。

如果你想要画出所估计参数的概率密度,你可能需要考虑贝叶斯方法,对参数赋予不同的先验分布,然后根据似然函数就可以得到后验分布。
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
cheetahfly + 10 热心帮助其他会员
llb_321 + 5 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 15  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

地板
林子里de 发表于 2021-4-28 14:39:49
owenqi 发表于 2021-4-28 00:30
根据我的理解,非线性回归实际上也就是因变量做某种变换以后变成线性回归,然后估计的方法常用的有迭代加权 ...
好的,谢谢您的回复

7
林子里de 发表于 2021-4-28 15:13:55
zhou1_20 发表于 2021-4-27 18:37
很好的问题, 做了简单的线性的例子,分别使用lm, bootstrap以及Bayesian拟合然后绘图,结果显示使用lm的结 ...
您好,首先谢谢您的回复。我想再问一下,就是您这里使用了bootstrap方法
f <- function(data, d) coef(lm(weight~height, data = data[d,]))
boot.fit <- boot(women, f, 1000)
我对bootstrap方法不太熟,所以想问一下您,用了bootstrap方法之后,它说明了什么吗?或者说表达出了什么吗?
还有就是,在Im和bayes拟合之后,您都是直接将它们按照正态分布来弄的概率
x.h = seq(3, 4, len=50)
y.h = dnorm(x.h, mean = coes[2], sd = sds[2])
yb.h = dnorm(x.h, mean = coesbys[2], sd = sdsbys[2])
这是说明参数的真实的概率密度图也是正态分布的吗,相对于Im,bayes方法得到的概率密度图会与真实的概率密度图更接近吗?
谢谢

8
林子里de 发表于 2021-4-28 20:58:09
zhou1_20 发表于 2021-4-27 18:37
很好的问题, 做了简单的线性的例子,分别使用lm, bootstrap以及Bayesian拟合然后绘图,结果显示使用lm的结 ...
您好,请问您用的bayes拟合中,
fitbys = stan_lm(weight~height, data = women,
                 chains = 2, iter = 5000, seed = 123,
                 prior = R2(0.5, what = 'mean'), refresh = 0)
这里的先验信息您设置的是什么,我第一次接触bayes,对这个程序不太懂。还是说您这里设置的是“无先验信息分布”吗?

9
zhou1_20 发表于 2021-4-28 21:35:06
林子里de 发表于 2021-4-28 20:58
您好,请问您用的bayes拟合中,
fitbys = stan_lm(weight~height, data = women,
                 cha ...
R2用来指定QR分解后预测因子相关系数的先验,比较复杂,但记住两点即可
1. 只有一个预测因子(即只有一个x)时,要更改默认what参数(mode)为其他(mean,log等)
2. 第一个参数l(locate)的取值范围为(0,1)
根据可参考
https://cran.r-project.org/web/p ... m/vignettes/lm.html
希望对你有帮助

10
林子里de 发表于 2021-4-29 19:44:34
zhou1_20 发表于 2021-4-28 21:35
R2用来指定QR分解后预测因子相关系数的先验,比较复杂,但记住两点即可
1. 只有一个预测因子(即只有一个 ...
好的,谢谢您

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-8 04:49