r - Julia中R的模拟功能的模拟?
问题描述
我正在尝试使用 Julia 的 GLM 包。根据我在 R 中的经验,我一直很喜欢它的simulate
功能
simulate(object, nsim = 1, seed = NULL, ...)
它从拟合模型中得出响应。Julia 中是否有任何类似的方法可以应用于其拟合的 GLM 模型?
解决方案
AFAIK 没有这样的功能,但对于您的特殊情况,它应该相对容易实现。
以下是具有高斯(家族Normal()
)假设的未加权 OLS 示例:
function simulate(m, n=1)
predict(m) .+ randn(Int(nobs(m)), n)*sqrt(deviance(m)/dof_residual(m))
end
这相当于 R 实现。
作为旁注:根据我的经验,而不是simulate
R 中使用的分布通常意味着响应或预测响应分布更有用,具体取决于您的需要。
编辑:
可能更朱利安的方法是避免生成样本,而是返回一个可以像这样采样的对象:
simdist(m) = Normal.(predict(m), sqrt(deviance(m)/dof_residual(m)))
现在您可以使用它rand
来执行采样,例如:
sdm = simdist(m)
rand.(sdm)
rand.(sdm, 10)
这样,您通常可以避免分配大内存块。例如,如果您想nobs=10^9
在 R 中使用,您很可能会耗尽内存,使用simdist
您可以在旅途中有效地生成您需要的内容。
推荐阅读
- java - Neo4j“执行架构修改后尝试执行写入查询”错误
- react-native - React Native 中的 Sleep Graph UI
- ffmpeg - 使用ffmpeg将pngs合并为mp4时,透明背景意外变绿
- settings - 如何在暗模式下更改偏好颜色?
- python - 如何打印包含列名的数据框的每一行?
- java - 启动 TAP/TUN Openvpn3 时不允许操作
- javascript - 如何使用 w/Reactjs 从 MySQL 中删除数据?
- javascript - Mat-select 宽度的广义解
- oracle - 高级审计表和访问控制和数据导出
- python-3.x - 通过 Webhooks 和 PubSubHubbub (Python3) 的 YouTube 推送通知在订阅时返回 200,但在视频上传时没有