原标题:R语言进行数值模拟:模拟泊松回归模型的数据

原文链接:http://tecdat.cn/?p=6751

模拟回归模型的数据

验证回归模型的首选方法是模拟来自它们的数据,并查看模拟数据是否捕获原始数据的相关特征。感兴趣的基本特征是平均值。我喜欢这种方法,因为它可以扩展到广义线性模型(logistic,Poisson,gamma,...)和其他回归模型,比如t -regression。

您的标准回归模型假设存在将预测变量与结果相关联的真实/固定参数。但是,当我们执行回归时,我们只估计这些参数。因此,回归软件返回表示系数不确定性的标准误差。

我将用一个例子来证明我的意思。

示范

我将使用泊松回归来证明这一点。我模拟了两个预测变量,使用50的小样本。

n

# Exponentiate prediction and pass to rpois() summary(dat) xc xb y Min. :-2.903259 Min. :0.00 Min. :0.00 1st Qu.:-0.648742 1st Qu.:0.00 1st Qu.:1.00 Median :-0.011887 Median :0.00 Median :2.00 Mean : 0.006109 Mean :0.38 Mean :2.02 3rd Qu.: 0.808587 3rd Qu.:1.00 3rd Qu.:3.00 Max. : 2.513353 Max. :1.00 Max. :7.00

接下来是运行模型。

Call: glm(formula = y ~ xc + xb, family = poisson, data = dat) Deviance Residuals: Min 1Q Median 3Q Max -1.9065 -0.9850 -0.1355 0.5616 2.4264 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 0.20839 0.15826 1.317 0.188 xc 0.46166 0.09284 4.973 6.61e-07 *** xb 0.80954 0.20045 4.039 5.38e-05 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for poisson family taken to be 1) Null deviance: 91.087 on 49 degrees of freedom Residual deviance: 52.552 on 47 degrees of freedom AIC: 161.84 Number of Fisher Scoring iterations: 5

估计的系数与人口模型相距不太远,.21代表截距而不是0,.46而不是.5,而0.81而不是1。

接下来模拟模型中的数据,我想要10,000个模拟数据集,为了捕捉回归系数的不确定性,我假设系数来自多元正态分布,估计系数作为均值,回归系数的方差 - 协方差矩阵作为多元正态分布的方差 - 协方差矩阵。

coefs

检查模拟系数与原始系数的匹配程度。

coefficients(fit.p) (Intercept) xc xb 0.2083933 0.4616605 0.8095403 colMeans(coefs) # means of simulated coefficients (Intercept) xc xb 0.2088947 0.4624729 0.8094507

标准错误:

sqrt(diag(vcov(fit.p))) (Intercept) xc xb 0.15825667 0.09284108 0.20044809 apply(coefs, 2, sd) # standard deviation of simulated coefficients (Intercept) xc xb 0.16002806 0.09219235 0.20034148

下一步是模拟模型中的数据。我们通过将模拟系数的每一行乘以原始预测变量来实现。然后我们传递预测:

# One row per case, one column per simulated set of coefficients # Cross product of model matrix by coefficients, exponentiate result, # then use to simulate Poisson-distributed outcome for (i in 1:nrow(coefs)) { sim.dat[, i]

现在一个是完成模拟,将模拟数据集与原始数据集至少比较结果的均值和方差:

c(mean(dat$y), var(dat$y)) # Mean and variance of original outcome [1] 2.020000 3.366939 c(mean(colMeans(sim.dat)), mean(apply(sim.dat, 2, var))) # average of mean and var of 10,000 simulated outcomes [1] 2.050724 4.167751

模拟结果的平均值略高于原始数据,平均方差更高。平均而言,可以预期方差比平均值更偏离目标。方差也将与一些极高的值正偏差,同时,它的界限为零,因此中位数可能更好地反映了数据的中心:

[1] 3.907143

中位数方差更接近原始结果的方差。

这是模拟均值和方差的分布:

绘制10,000个模拟数据集中的一些数据集的直方图并将其与原始结果的直方图进行比较也是有用的。还可以测试原始数据和模拟数据集中xb = 1和xb = 0之间结果的平均差异。

回到基础R,它具有simulate()执行相同操作的功能:

sim.default

此代码相当于:

sim.default

fitted(fit.p)是响应尺度的预测,或指数线性预测器,因为这是泊松回归。因此,我们将使用模型中的单组预测值来重复创建模拟结果。

c(mean(colMeans(sim.default)), mean(apply(sim.default, 2, var)), [1] 2.020036 3.931580 3.810612

与忽略系数不确定性时相比,均值和方差更接近原始结果的均值和方差。与考虑回归系数的不确定性时相比,这种方法总是会导致方差较小。它要快得多,并且需要零编程来实现,但我不习惯忽略回归系数的不确定性,使模型看起来比它更充分。返回搜狐,查看更多

责任编辑:

计算机模拟泊松分布,R语言进行数值模拟:模拟泊松回归模型的数据相关推荐

  1. R语言进行数值模拟:模拟泊松回归模型的数据

    模拟回归模型的数据 验证回归模型的首选方法是模拟来自它们的数据,并查看模拟数据是否捕获原始数据的相关特征.感兴趣的基本特征是平均值.我喜欢这种方法,因为它可以扩展到广义线性模型(logistic,Po ...

  2. R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等

    R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录

  3. R语言使用broom包将回归模型(线性回归、逻辑回归、比例风险回归)的结果整理成dataframe并导出到excel等文件中:基于mtcars和colon数据集

    R语言使用broom包将回归模型(线性回归.逻辑回归.比例风险回归)的结果整理成dataframe并导出到excel等文件中:基于mtcars和colon数据集 目录

  4. R语言无序多分类Logistic回归模型实战

    R语言无序多分类Logistic回归模型实战 目录 R语言无序多分类Logistic回归模型实战 #导入包 #加载数据数据编码

  5. R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值

    R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值 Glmnet主要用于拟合广义线性模型.筛选可以使loss达到最小的正则化参数lambda.该算法非常快 ...

  6. R语言使用lm函数构建回归模型、使用broom包的augmented函数将模型结果存入dataframe中、使用ggplot2可视化回归残差图(拟合值和残差值的关系图)

    R语言使用lm函数构建回归模型.使用broom包的augmented函数将模型结果存入dataframe中.使用ggplot2可视化回归残差图(拟合值和残差值的关系图) 目录

  7. R语言使用lm函数构建回归模型、使用MASS包的boxcox函数寻找最佳幂变换提高模型拟合度、可视化boxcox曲线并获取最佳lambda值

    R语言使用lm函数构建回归模型.使用MASS包的boxcox函数寻找最佳幂变换提高模型拟合度.可视化boxcox曲线并获取最佳lambda值 目录

  8. R语言使用glm构建logistic回归模型,构建多个协变量和分组变量之间的关系模型进行倾向性评分计算、估计(Propensity score)、预测倾向性评分并可视化不同分组倾向性评分的分布

    R语言使用glm构建logistic回归模型,构建多个协变量和分组变量之间的关系模型进行倾向性评分计算.估计(Propensity score).预测倾向性评分并可视化不同分组倾向性评分的分布 目录

  9. R语言使用glm构建logistic回归模型,构建多个协变量和分组变量之间的关系模型进行倾向性评分计算、使用predict函数预测倾向性评分并将结果整合到dataframe中

    R语言使用glm构建logistic回归模型,构建多个协变量和分组变量之间的关系模型进行倾向性评分计算.估计(Propensity score).使用predict函数预测倾向性评分并将结果整合到da ...

  10. R语言使用glm构建logistic回归模型,构建多个协变量和分组变量之间的关系模型进行倾向性评分计算、估计(Propensity score)

    R语言使用glm构建logistic回归模型,构建多个协变量和分组变量之间的关系模型进行倾向性评分计算.估计(Propensity score) 目录

最新文章

  1. Python3数据分析与挖掘建模实战
  2. Tomca的启动与关闭
  3. FFmpeg转HTML5支持的视频格式
  4. (收藏)Html相关网址
  5. txt文件可存储最大值_403元可存储22.5TB文件 Quantom LTO-7磁带开售
  6. python图标的演变_把Python脚本生成exe文件并添加版本信息和自定义图标
  7. win11很卡怎么办 windows11很卡的解决方法
  8. POJ 1755 Triathlon(半平面交)
  9. Android 中的长度单位详解 dp、sp、px、in、pt、mm 转载
  10. 拓端tecdat|R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测
  11. php tcpdf 分层,PHP 使用tcPdf 生成pdf文件
  12. 利用sklearn进行特征选择
  13. 量化交易接口UFX是什么?
  14. 【C语言】简单的闰年计算
  15. 校内题目T2695 桶哥的问题——吃桶
  16. Image Splicing Forgery Detection Combining Coarse to Refined Convolutional Neural Network and Adapti
  17. 文本编辑器Geany
  18. jq使用请求报405错误
  19. 卡饭PDF转换器之CAJ转换
  20. 数据仓库建设之主题划分

热门文章

  1. C++ 输入输出,IO
  2. a:link,a:visited,a:hover,a:active
  3. linux中执行命令权限不够怎样处理
  4. 依赖注入及AOP简述(四)——“好莱坞原则”和依赖注入框架简介 .
  5. PHP正则表达式完全手册
  6. 在退出作用域时做一些事
  7. 【转】C#通过WMI设置NTFS目录共享和目录安全
  8. 计算机科学与技术专业要选修的课程,计算机科学与技术专业课程探讨
  9. dubbo的线程模型、派发策略、线程池策略
  10. centOS7安装node+mongoDB+redis+express(forerver)+nginx+https