2. Measurement Process Characterization
2.6. Case studies
2.6.3. Evaluation of type A uncertainty

## Dataplot macros

Reads data and plots the repeatability standard deviations for probe #2362 and pools standard deviations over days, wafers -- run 1
```reset data
reset plot control
reset i/o
dimension 500 rows
label size 3
read mpc633a.dat run wafer probe y sr
retain run wafer probe y sr    subset probe =  2362
let df = sr - sr + 5.
y1label ohm.cm
characters * all
lines blank all
x2label Repeatability standard deviations for probe 2362 - run 1
plot sr subset run 1
let var = sr*sr
let df11 = sum df subset run 1
let s11 = sum var subset run 1
. repeatability standard deviation for run 1
let s11 = (5.*s11/df11)**(1/2)
print s11 df11
. end of calculations
```
Reads data and plots repeatability standard deviations for probe #2362 and pools standard deviations over days, wafers -- run 2
```reset data
reset plot control
reset i/o
dimension 500 30
label size 3
read mpc633a.dat run wafer probe y sr
retain run wafer probe y sr subset probe 2362
let df = sr - sr + 5.
y1label ohm.cm
characters * all
lines blank all
x2label Repeatability standard deviations for probe 2362 - run 2
plot sr subset run 2
let var = sr*sr
let df11 = sum df subset run 1
let df12 = sum df subset run 2
let s11 = sum var subset run 1
let s12 = sum var subset run 2
let s11 = (5.*s11/df11)**(1/2)
let s12 = (5.*s12/df12)**(1/2)
print s11 df11
print s12 df12
let s1 = ((s11**2 + s12**2)/2.)**(1/2)
let df1=df11+df12
. repeatability standard deviation and df for run 2
print s1 df1
. end of calculations
```
Computes level-2 standard deviations from daily averages and pools over wafers -- run 1
```reset data
reset plot control
reset i/o
dimension 500 rows
label size 3
read mpc633a.dat run wafer probe y sr
retain run wafer probe y sr subset probe 2362
sd plot y wafer subset run 1
let s21 = yplot
let wafer1 = xplot
retain s21 wafer1 subset tagplot = 1
let nwaf = size s21
let df21 = 5 for i = 1 1 nwaf
. level-2 standard deviations and df for 5 wafers - run 1
print wafer1 s21 df21
. end of calculations
```
Computes level-2 standard deviations from daily averages and pools over wafers -- run 2
```reset data
reset plot control
reset i/o
dimension 500 rows
label size 3
read mpc633a.dat run wafer probe y sr
retain run wafer probe y sr subset probe 2362
sd plot y wafer subset run 2
let s22 = yplot
let wafer1 = xplot
retain s22 wafer1 subset tagplot = 1
let nwaf = size s22
let df22 = 5 for i = 1 1 nwaf
. level-2 standard deviations and df for 5 wafers - run 1
print wafer1 s22 df22
. end of calculations
```
Pools level-2 standard deviations over wafers and runs
```reset data
reset plot control
reset i/o
dimension 500 30
label size 3
read mpc633a.dat run wafer probe y sr
retain run wafer probe y sr subset probe 2362
sd plot y wafer subset run 1
let s21 = yplot
let wafer1 = xplot
sd plot y wafer subset run 2
let s22 = yplot
retain s21 s22 wafer1 subset tagplot = 1
let nwaf = size wafer1
let df21 = 5 for i = 1 1 nwaf
let df22 = 5 for i = 1 1 nwaf
let s2a = (s21**2)/5 + (s22**2)/5
let s2 = sum s2a
let s2 = sqrt(s2/2)
let df2a = df21 + df22
let df2 = sum df2a
. pooled level-2 standard deviation and df across wafers and runs
print s2 df2
. end of calculations
```
Computes level-3standard deviations from run averages and pools over wafers
```reset data
reset plot control
reset i/o
dimension 500 rows
label size 3
read mpc633a.dat run wafer probe y sr
retain run wafer probe y sr subset probe 2362
.
mean plot y wafer subset run 1
let m31 = yplot
let wafer1 = xplot
mean plot y wafer subset run 2
let m32 = yplot
retain m31 m32 wafer1 subset tagplot = 1
let nwaf = size m31
let s31 =(((m31-m32)**2)/2.)**(1/2)
let df31 = 1 for i = 1 1 nwaf
. level-3 standard deviations and df for 5 wafers
print wafer1 s31 df31
let s31 = (s31**2)/5
let s3 = sum s31
let s3 = sqrt(s3)
let df3=sum df31
. pooled level-3 std deviation and df over 5 wafers
print s3 df3
. end of calculations
```
Plot differences from the average wafer value for each probe showing bias for probe #2362
```reset data
reset plot control
reset i/o
dimension 500 30
read mpc61a.dat wafer probe d1 d2
let biasrun1 = mean d1 subset probe 2362
let biasrun2 = mean d2 subset probe 2362
print biasrun1 biasrun2
title GAUGE STUDY FOR 5 PROBES
Y1LABEL OHM.CM
lines dotted dotted dotted dotted dotted solid
characters 1 2 3 4 5 blank
xlimits 137 143
let zero = pattern 0 for I = 1 1 30
x1label DIFFERENCES AMONG PROBES VS WAFER (RUN 1)
plot d1 wafer probe and
plot zero wafer
let biasrun2 = mean d2 subset probe 2362
print biasrun2
title GAUGE STUDY FOR 5 PROBES
Y1LABEL OHM.CM
lines dotted dotted dotted dotted dotted solid
characters 1 2 3 4 5 blank
xlimits 137 143
let zero = pattern 0 for I = 1 1 30
x1label DIFFERENCES AMONG PROBES VS WAFER (RUN 2)
plot d2 wafer probe and
plot zero wafer
. end of calculations
```
Compute bias for probe #2362 by wafer
```reset data
reset plot control
reset i/o
dimension 500 30
label size 3
read mpc633a.dat run wafer probe y sr
.
cross tabulate mean y run wafer
retain run wafer probe y sr subset probe 2362
skip 1
print runid wafid ybar
let ngroups = size ybar
skip 0
.
let m3 = y - y
feedback off
loop for k = 1 1 ngroups
let runa = runid(k)
let wafera = wafid(k)
let ytemp = ybar(k)
let m3 = ytemp subset run = runa subset wafer = wafera
end of loop
feedback on
.
let d = y - m3
let bias1 = average d subset run 1
let bias2 = average d subset run 2
.
mean plot d wafer subset run 1
let b1 = yplot
let wafer1 = xplot
mean plot d wafer subset run 2
let b2 = yplot
retain b1 b2 wafer1 subset tagplot = 1
let nwaf = size b1
. biases for run 1 and run 2 by wafers
print wafer1 b1 b2
. average biases over wafers for run 1 and run 2
print bias1 bias2
. end of calculations

```
Compute correction for bias for measurements with probe #2362 and the standard deviation of the correction
```reset data
reset plot control
reset i/o
dimension 500 30
label size 3
read mpc633a.dat run wafer probe y sr
.
cross tabulate mean y run wafer
retain run wafer probe y sr subset probe 2362
skip 1
let ngroups = size ybar
skip 0
.
let m3 = y - y
feedback off
loop for k = 1 1 ngroups
let runa = runid(k)
let wafera = wafid(k)
let ytemp = ybar(k)
let m3 = ytemp subset run = runa subset wafer = wafera
end of loop
feedback on
.
let d = y - m3
let bias1 = average d subset run 1
let bias2 = average d subset run 2
.
mean plot d wafer subset run 1
let b1 = yplot
let wafer1 = xplot
mean plot d wafer subset run 2
let b2 = yplot
retain b1 b2 wafer1 subset tagplot = 1
.
extend b1 b2
let sd = standard deviation b1
let sdcorr = sd/(10**(1/2))
let correct = -(bias1+bias2)/2.
. correction for probe #2362, standard dev, and standard dev of corr
print correct sd sdcorr
. end of calculations
```
Plot differences between wiring configurations A and B
```reset data
reset plot control
reset i/o
dimension 500 30
label size 3
read mpc633k.dat wafer probe a1 s1 b1 s2 a2 s3 b2 s4
let diff1 = a1 - b1
let diff2 = a2 - b2
let t = sequence 1 1 30
lines blank all
characters 1 2 3 4 5
y1label ohm.cm
x1label Config A - Config B -- Run 1
x2label over 6 days and 5 wafers
x3label legend for wafers 138, 139, 140, 141, 142: 1, 2, 3, 4, 5
plot diff1 t wafer
x1label Config A - Config B -- Run 2
plot diff2 t wafer
. end of calculations
```
Compute average differences between configuration A and B; standard deviations and t-statistics for testing significance
```reset data
reset plot control
reset i/o
separator character @
dimension 500 rows
label size 3
read mpc633k.dat wafer probe a1 s1 b1 s2 a2 s3 b2 s4
let diff1 = a1 - b1
let diff2 = a2 - b2
let d1 = average diff1
let d2 = average diff2
let s1 = standard deviation diff1
let s2 = standard deviation diff2
let t1 = (30.)**(1/2)*(d1/s1)
let t2 = (30.)**(1/2)*(d2/s2)
. Average config A-config B; std dev difference; t-statistic for run 1
print d1 s1 t1
. Average config A-config B; std dev difference; t-statistic for run 2
print d2 s2 t2
separator character ;
. end of calculations
```
Compute standard uncertainty, effective degrees of freedom, t value and expanded uncertainty
```reset data
reset plot control
reset i/o
dimension 500 rows
label size 3
let c = a*sz*sz
let d = c*c
let e = d/(df)
let sume = sum e
let u = sum c
let u = u**(1/2)
let effdf=(u**4)/sume
let tvalue=tppf(.975,effdf)
let expu=tvalue*u
.
. uncertainty, effective degrees of freedom, tvalue and
. expanded uncertainty
print u effdf tvalue expu
. end of calculations
```