-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmetrics_sm.R
65 lines (43 loc) · 1.69 KB
/
metrics_sm.R
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
library("sdcMicro")
# https://sdctools.github.io/sdcMicro/articles/sdcMicro.html#risk_utility
original <- as.data.frame(sat)
synthetic <- as.data.frame(result)
original$sex <- as.factor(original$sex)
original$sat_v <- as.numeric(original$sat_v)
original$sat_m <- as.numeric(original$sat_m)
original$sat_sum <- as.numeric(original$sat_sum)
synthetic$sex <- as.factor(synthetic$sex)
synthetic$sat_v <- as.numeric(synthetic$sat_v)
synthetic$sat_m <- as.numeric(synthetic$sat_m)
synthetic$sat_sum <- as.numeric(synthetic$sat_sum)
sdcMicro::measure_risk()
#
# RISK
#
######k-ANONYMITY
# Es wird ermittelt, wie oft es für die Var Kombi k violations gibt
sdcMicro::freqCalc(original, keyVars = c('sex','sat_v'))
# das gleiche nicht als print ausgabe
qq <- sdcMicro::freqCalc(original, keyVars = c('sex','sat_v'))
qq$n1
qq$n2
ii <- sdcMicro::indivRisk(qq)
## keine metrik - tranformation um k-anon zu erreichen
xx <- sdcMicro::kAnon(original, keyVars = c('sex','sat_v'))
xx$anonymity
sdc <- createSdcObj(original,
keyVars=c('sex'),
numVars=c('sat_v','sat_m','sat_sum', 'hs_gpa','fy_gpa'))
yy <- sdcMicro::dRisk(obj = sdc)
qq <- sdcMicro::freqCalc(original, keyVars = c('sex','sat_v'))
addNoise(obj = yy, variables = c('sat_v','sat_m','sat_sum', 'hs_gpa','fy_gpa'))
# Additional Information-Loss measures
# (only numeric values)
sdcMicro::IL_variables(x = original, xm = synthetic)
#library("sdcMicro")
#data(testdata)
#sdc <- createSdcObj(testdata,
# keyVars=c('urbrur','roof','walls','water','electcon','relat','sex'),
# numVars=c('expend','income','savings'), w='sampling_weight')
#sdc <- addNoise(sdc, noise=0.2)
#sdc <- dRisk(sdc)