Description Details Author(s) References See Also Examples
Uncertainty estimation and contribution analysis implemented by 4 methods: the Gaussian method of first, the Gaussian method of second order, the Kragten numerical method and the Monte Carlo simulation method
Package: | uncertainty |
Type: | Package |
Version: | 0.1.1 |
Date: | 2014-06-12 |
License: | GPL (>=2) |
Define an "uncertainty budget" object, including all the involved variables. Then estimate the "uncertainty" object by defining a measurand model, using the "uncertainty budget" and applying an estimation method. Print or plot the measurand estimates or create a "summary uncertainty" object to print or plot the uncertainty contributions to the measurand model.
H. Gasca-Aragon
Maintainer: H. Gasca-Aragon <hugo_gasca_aragon@hotmail.com>
JCGM 100:2008. Guide to the expression of uncertainty of measurement
JCGM 100:2005. Supplement 1 Propagation of distributions usign a Monte Carlo method
EURACHEM/CITAC Guide CG 4. Quantifying Uncertainty in Analytical Measurement
Becker, R.A., Chambers, J.M. and Wilks, A.R. (1988) The New S Language. Wadsworth & Brooks/Cole.
uncertaintyBudget
, print.uncertaintyBudget
, uncertainty
, print.uncertainty
, plot.uncertainty
, summary.uncertainty
, print.summary.uncertainty
, plot.summary.uncertainty
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | require(mvtnorm)
cor.mat<- matrix(c(1,-0.7,-0.7,1),2,2)
u.budget<- uncertaintyBudget(x=list(name=c("x0","x1"),
mean=c(10,20), u=c(1,5), dof=c(10,10),
label=c("x[0]", "x[1]"), distribution=c("normal","normal")), y=cor.mat)
u.budget
## Gaussian first order estimates
GFO.res<- uncertainty(x=u.budget,
y=list(measurand_name="ratio.GFO",
measurand_label=expression(ratio[GFO]),
measurand_model="x0/x1",
method="GFO", alpha=0.05))
contr.GFO<- summary.uncertainty(GFO.res)
## Monte Carlo estimates
MC.res<- uncertainty(x=u.budget,
y=list(measurand_name="ratio.MC",
measurand_label=expression(ratio[MC]),
measurand_model="x0/x1",
method="MC", alpha=0.05, B=1e5))
contr.MC<- summary.uncertainty(MC.res)
## print the estimates
MC.res
GFO.res
## print the uncertainty summary
contr.MC
contr.GFO
## Displaying both estimated distributions
## Not run:
plot(MC.res, col=4, xlab=MC.res$measurand_model)
plot(GFO.res, lty=2, col=2, add=T)
legend(0.7, 2.5, legend=c("Monte Carlo", "Gaussian First Order"),
lty=c(1,2), col=c(4,2), lwd=2, bg="white")
## End(Not run)
## Display both uncertainty summaries
## Not run:
barplot(cbind(contr.GFO$budget$contrib, contr.MC$budget$contrib),
beside=TRUE, horiz=TRUE, main="Uncertainty contribution by method",
xlab="percent Variance",
names.arg=c(GFO.res$measurand_label, MC.res$measurand_label))
## End(Not run)
##########################
## Example H.1 from GUM ##
##########################
# define the uncertainty budget
u.budget<- uncertaintyBudget(
x=list(
name=c("lambda.s", "alpha.s", "theta.bar", "Delta", "delta.alpha",
"delta.theta", "d.bar", "d.cr",
"d.cnr"),
label=c("lambda[s]", "alpha[s]", "bar(theta)", "Delta", "delta[alpha]",
"delta[theta]", "bar(d)", "d[cr]", "d[cnr]"),
mean=c(50.000623,11.5e-6,-1e-1, 0, 0, 0, 2.15e-4, 0, 0),
units=c("mm", "oC^-1","oC","oC", "oC^-1", "oC", "mm", "mm", "mm"),
u=c(25e-6, 1.2e-6, 0.2, 0.35, 0.58e-6, 0.029, 5.8e-6, 3.9e-6, 6.7e-6),
distribution=c("t","unif","unif","arcsine","unif","unif","t","t","t"),
dof=c(18, 1, 1, 1, 50, 2, 24, 5, 8)
),
y=diag(1, 9)
)
# define the measurand
measurand_name<- "lambda"
measurand_label<- "lambda"
measurand_model<- paste("(lambda.s*(1+alpha.s*(theta.bar+Delta+delta.theta))",
"+d.bar+d.cr+d.cnr)/(1+(alpha.s+delta.alpha)*(theta.bar+Delta))", sep="")
# estimate the measurand using the Gaussian First Order method (GUM)
u.GFO<- uncertainty(
x=u.budget,
y=list(measurand_name=measurand_name,
measurand_label=measurand_label,
measurand_model=measurand_model,
alpha=0.01,
method="GFO"
)
)
u.GFO
# same result as reported in Table H.1
# estimate the measurand using the Gaussian Second Order method
u.GSO<- uncertainty(
x=u.budget,
y=list(measurand_name=measurand_name,
measurand_label=measurand_label,
measurand_model=measurand_model,
alpha=0.01,
method="GSO"
)
)
u.GSO
# same results as reported in section H.1.6, U(99) = 93 nm,
# the difference is due to rounding error.
# u = 34 nm, but dof are updated to 21 instead of keeping 16.
# estimate the measurand using the Monte Carlo method (GUM supplement 1)
u.MC<- uncertainty(
x=u.budget,
y=list(measurand_name=measurand_name,
measurand_label=measurand_label,
measurand_model=measurand_model,
alpha=0.01,
method="MC", B=1e6
)
)
u.MC
# this result is not reported in the GUM
# estimate the measurand using the Kragten method
u.Kragten<- uncertainty(
x=u.budget,
y=list(measurand_name=measurand_name,
measurand_label=measurand_label,
measurand_model=measurand_model,
alpha=0.01,
method="Kragten"
)
)
u.Kragten
# same as GFO results
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.