r - 使用蒙特卡罗模拟的错误传播数据帧
问题描述
我正在对预测模型进行误差分析,我需要计算全局误差,也就是说,我需要计算间接测量误差传播的结果误差。我的数据“df”看起来像这样
其中“x”和“y”是测量变量,“x_se”和“y_se”是这些测量的标准误差
我在第一行使用了包'qpcR'中的函数'propagate'
EXPR <- expression((0.1*x)*(y/(y+0.1)))
x <- c(1.43, 2)
y <- c(0.64, 0.09)
DF <- cbind(x, y)
res <- propagate(expr = EXPR, data = DF, type = "stat",do.sim = TRUE, verbose = TRUE)
res$summary
或者这个来自“metRology”包
expr <- expression((0.1*a)*(b/(b+0.1)))
x <- list(a=1.43, b=0.64)
u <- list(2,0.1)
u.expr<-uncert(expr, x, u, method="MC",B=200)
u.expr
它们都可以工作,但我不知道如何将这些函数中的任何一个应用于整个 df。谢谢你的帮助
解决方案
这是获取res$summary
数据框每一行的一种可能的解决方案。
您首先创建一个自定义函数my_fun
,该函数执行您尝试对数据框的单行执行的操作。然后,您apply
将此函数应用于数据框的每一行。最终结果将是一个list
与您的数据框行一样多的元素。
my_fun <- function(r){
EXPR <- expression((0.1 * x) * (y / (y + 0.1)))
x <- c(r[["x"]], r[["x_se"]])
y <- c(r[["y"]], r[["y_se"]])
DF <- cbind(x, y)
res <- propagate(expr = EXPR, data = DF, type = "stat", do.sim = TRUE, verbose = TRUE)
return(res$summary)
}
set.seed(1)
apply(df, 1, my_fun)
输出
[[1]]
Sim Perm Prop
Mean 0.1233798 NaN 0.1233898
Std.dev. 0.1726114 NA 0.1730206
Median 0.1234929 NA NA
MAD 0.1708902 NA NA
Conf.lower -0.2153721 NA -0.2157244
Conf.upper 0.4686238 NA 0.4625041
[[2]]
Sim Perm Prop
Mean 0.1849104 NaN 0.1849310
Std.dev. 0.1645677 NA 0.1650419
Median 0.1851380 NA NA
MAD 0.1652076 NA NA
Conf.lower -0.1401244 NA -0.1385452
Conf.upper 0.5155102 NA 0.5084072
[[3]]
Sim Perm Prop
Mean 0.2070037 NaN 0.2070098
Std.dev. 0.1754712 NA 0.1756395
Median 0.2057387 NA NA
MAD 0.1768489 NA NA
Conf.lower -0.1308923 NA -0.1372374
Conf.upper 0.5528197 NA 0.5512569
[[4]]
Sim Perm Prop
Mean 0.1766511 NaN 0.1766596
Std.dev. 0.1723788 NA 0.1726441
Median 0.1744966 NA NA
MAD 0.1736575 NA NA
Conf.lower -0.1552201 NA -0.1617167
Conf.upper 0.5203006 NA 0.5150359
[[5]]
Sim Perm Prop
Mean 0.1384704 NaN 0.1384753
Std.dev. 0.1798246 NA 0.1800144
Median 0.1376255 NA NA
MAD 0.1782177 NA NA
Conf.lower -0.2151249 NA -0.2143465
Conf.upper 0.4946514 NA 0.4912970
[[6]]
Sim Perm Prop
Mean 0.1182867 NaN 0.1182874
Std.dev. 0.1805740 NA 0.1807828
Median 0.1184392 NA NA
MAD 0.1805303 NA NA
Conf.lower -0.2378475 NA -0.2360404
Conf.upper 0.4731363 NA 0.4726152
[[7]]
Sim Perm Prop
Mean 0.1287621 NaN 0.1287730
Std.dev. 0.1740355 NA 0.1743982
Median 0.1256472 NA NA
MAD 0.1740543 NA NA
Conf.lower -0.2106699 NA -0.2130411
Conf.upper 0.4720430 NA 0.4705872
推荐阅读
- javascript - 将元素添加到您的预期值
- flutter - 展开时如何更改 ExpansionTile 标题?
- javascript - 如何将背景 url 传递给:在 React 中的 OnVisible 之后
- python - OSERROR WINERROR [10049] 它适用于我的 ipv4,但是当我尝试使用公共时会发生这种情况
- html - Django模板中的for循环
- python - 更好地理解 mainloop()
- arrays - 是否可以从另一个对象数组的 ID 中找到对象数组中的值?
- java - 运行时错误:找不到启动意图的活动。我正在尝试查看和检索存储在 FirebaseStorage 上的 pdf 文档
- latex - 在我的投影仪演示文稿上打印参考书目的问题
- javascript - 想要在 3 个标签之后隐藏所有标签并与所有其他标签一起使用,就像我再使用一次 HTML 代码一样,它适用于第一个标签,也适用于第二个标签