You can use a grid of events to estimate multiple deflection scores simultaneously.
act
#>
#> ── Interact Analysis ───────────────────────────────────────────────────────────
#> ℹ Dictionary: usfullsurveyor2015 (group: all)
#> ℹ Equations: us2010
#> impressionabo (group: all)
For example, the following events
object contains 4
million ABO events randomly created from the
usfullsurveyor2015
dictionary.
events <- tidyr::crossing(
A = dplyr::filter(act$dictionary, component == "identity")[["term"]] |> sample(200),
B = dplyr::filter(act$dictionary, component == "behavior")[["term"]] |> sample(100),
O = dplyr::filter(act$dictionary, component == "identity")[["term"]] |> sample(200)
)
glimpse(events)
#> Rows: 4,000,000
#> Columns: 3
#> $ A <chr> "accountant", "accountant", "accountant", "accountant", "accountant"…
#> $ B <chr> "abhor", "abhor", "abhor", "abhor", "abhor", "abhor", "abhor", "abho…
#> $ O <chr> "accused", "actor", "adopted_child", "adopted_son", "adult", "adulte…
Every method is designed to work in bulk. However, only the
$deflection()
method will work very fast with millions of
observations.
d <- act$deflection(events)
d
#> # Event deflection
#> # A data frame: 4,000,000 × 4
#> A B O deflection
#> * <chr> <chr> <chr> <dbl>
#> 1 accountant abhor accused 16.4
#> 2 accountant abhor actor 22.9
#> 3 accountant abhor adopted_child 24.3
#> 4 accountant abhor adopted_son 22.8
#> 5 accountant abhor adult 22.6
#> 6 accountant abhor adulteress 26.8
#> 7 accountant abhor advertising_copy_writer 18.9
#> 8 accountant abhor aide 27.2
#> 9 accountant abhor alumnus 24.1
#> 10 accountant abhor ambassador 25.9
#> # ℹ 3,999,990 more rows
get_fundamentals(d)
#> # A tibble: 4,000,000 × 9
#> Ae Ap Aa Be Bp Ba Oe Op Oa
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 1.03 1.16 -0.48 -2.13 0.9 0.62 -1.46 -1.38 -0.09
#> 2 1.03 1.16 -0.48 -2.13 0.9 0.62 0.82 1.36 1.68
#> 3 1.03 1.16 -0.48 -2.13 0.9 0.62 1.97 -0.1 0.18
#> 4 1.03 1.16 -0.48 -2.13 0.9 0.62 1.65 0.41 0.28
#> 5 1.03 1.16 -0.48 -2.13 0.9 0.62 1.06 1.81 0.29
#> 6 1.03 1.16 -0.48 -2.13 0.9 0.62 -2.43 0.45 0.96
#> 7 1.03 1.16 -0.48 -2.13 0.9 0.62 0.65 0.55 0.66
#> 8 1.03 1.16 -0.48 -2.13 0.9 0.62 2 1.41 0.21
#> 9 1.03 1.16 -0.48 -2.13 0.9 0.62 1.53 1.39 0.32
#> 10 1.03 1.16 -0.48 -2.13 0.9 0.62 1.46 2.28 0.31
#> # ℹ 3,999,990 more rows
get_transients(d)
#> # A tibble: 4,000,000 × 9
#> Ae Ap Aa Be Bp Ba Oe Op Oa
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 0.672 2.05 0.850 0.561 1.73 0.950 -1.87 -2.29 -2.25
#> 2 -0.848 1.50 0.850 -1.55 1.73 1.11 -0.641 -0.936 -1.30
#> 3 -2.07 1.80 0.850 -2.61 1.73 0.974 -0.0196 -1.59 -2.11
#> 4 -1.79 1.69 0.850 -2.31 1.73 0.983 -0.193 -1.36 -2.05
#> 5 -1.31 1.41 0.850 -1.77 1.73 0.984 -0.512 -0.717 -2.05
#> 6 1.66 1.69 0.850 1.46 1.73 1.04 -2.40 -1.46 -1.69
#> 7 -0.905 1.67 0.850 -1.39 1.73 1.02 -0.733 -1.32 -1.85
#> 8 -2.09 1.49 0.850 -2.64 1.73 0.977 -0.00342 -0.877 -2.09
#> 9 -1.69 1.50 0.850 -2.20 1.73 0.987 -0.258 -0.900 -2.03
#> 10 -1.63 1.32 0.850 -2.14 1.73 0.986 -0.295 -0.484 -2.04
#> # ℹ 3,999,990 more rows
get_element_wise_deflection(d)
#> # A tibble: 4,000,000 × 9
#> Ae Ap Aa Be Bp Ba Oe Op Oa
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 0.128 0.797 1.77 7.24 0.686 0.109 0.172 0.831 4.68
#> 2 3.53 0.119 1.77 0.339 0.686 0.239 2.14 5.27 8.86
#> 3 9.63 0.406 1.77 0.231 0.686 0.125 3.96 2.21 5.23
#> 4 7.97 0.286 1.77 0.0342 0.686 0.132 3.40 3.12 5.44
#> 5 5.48 0.0650 1.77 0.130 0.686 0.132 2.47 6.39 5.47
#> 6 0.403 0.278 1.77 12.9 0.686 0.180 0.000978 3.65 7.00
#> 7 3.74 0.257 1.77 0.547 0.686 0.158 1.91 3.50 6.29
#> 8 9.75 0.112 1.77 0.259 0.686 0.127 4.01 5.23 5.29
#> 9 7.39 0.115 1.77 0.00548 0.686 0.134 3.20 5.25 5.53
#> 10 7.09 0.0259 1.77 0.0000868 0.686 0.134 3.08 7.64 5.51
#> # ℹ 3,999,990 more rows
Other methods might require a few minutes, so let’s take a sample of 10,000 events instead…
d_sub <- dplyr::slice_sample(d, n = 10000) # sample 10000 event deflections
d_sub
#> # Event deflection
#> # A data frame: 10,000 × 4
#> A B O deflection
#> * <chr> <chr> <chr> <dbl>
#> 1 blue_collar_worker ask_about_something divorce 2.88
#> 2 imam yield_to thief 4.65
#> 3 wallflower ask_out clerical_worker 10.4
#> 4 shoe_repairman nudge catholic 1.24
#> 5 manager defend mormon 7.17
#> 6 private_eye scrutinize husband 13.6
#> 7 follower disgrace mormon 12.3
#> 8 intimate exploit cpa 53.5
#> 9 divorce reproach immigration_officer 3.55
#> 10 baby freak_out fisherman 28.5
#> # ℹ 9,990 more rows
act$reidentify(d_sub, who = "actor")
#> # A tibble: 10,000 × 3
#> Ae Ap Aa
#> <dbl> <dbl> <dbl>
#> 1 0.732 0.898 0.156
#> 2 0.518 -0.924 -0.940
#> 3 0.309 1.57 0.217
#> 4 0.140 -0.149 0.0192
#> 5 0.198 2.62 1.65
#> 6 -1.08 -0.412 0.479
#> 7 -1.05 0.614 0.986
#> 8 -1.14 1.03 1.28
#> 9 -0.890 0.130 0.805
#> 10 -0.666 0.794 1.58
#> # ℹ 9,990 more rows
act$optimal_behavior(d_sub, who = "actor")
#> # A tibble: 10,000 × 3
#> Be Bp Ba
#> <dbl> <dbl> <dbl>
#> 1 0.0809 -0.0169 0.404
#> 2 0.159 0.971 0.0598
#> 3 -0.149 -0.425 -2.13
#> 4 1.01 0.489 -0.419
#> 5 -0.0513 1.79 0.410
#> 6 0.629 -0.962 -0.752
#> 7 -0.101 -1.01 -1.07
#> 8 0.494 0.622 1.12
#> 9 -0.171 -0.541 0.606
#> 10 2.19 -1.02 1.60
#> # ℹ 9,990 more rows
act$reidentify(d_sub, who = "object")
#> # A tibble: 10,000 × 3
#> Oe Op Oa
#> <dbl> <dbl> <dbl>
#> 1 2.46 0.260 2.82
#> 2 1.13 0.0536 -0.371
#> 3 1.86 1.16 1.81
#> 4 -1.75 -0.173 -0.454
#> 5 4.42 -2.06 4.20
#> 6 -0.648 -1.62 -1.23
#> 7 -0.386 -1.76 -1.13
#> 8 -0.804 -3.28 -6.33
#> 9 -0.914 -0.999 0.0195
#> 10 -0.826 -0.536 -4.41
#> # ℹ 9,990 more rows
act$optimal_behavior(d_sub, who = "object")
#> # A tibble: 10,000 × 3
#> Be Bp Ba
#> <dbl> <dbl> <dbl>
#> 1 -0.557 -0.0244 0.245
#> 2 -0.738 -0.542 -0.838
#> 3 -0.556 0.619 -0.913
#> 4 0.783 0.642 -0.151
#> 5 0.329 0.139 -1.08
#> 6 1.11 2.50 -0.104
#> 7 -0.428 1.54 -0.540
#> 8 -0.860 2.52 -1.15
#> 9 0.303 1.02 0.911
#> 10 -0.278 1.88 0.319
#> # ℹ 9,990 more rows
act$max_confirm(d_sub[c("A", "O")], solve_for = "behavior")
#> # A tibble: 10,000 × 3
#> Be Bp Ba
#> <dbl> <dbl> <dbl>
#> 1 0.537 0.385 0.464
#> 2 0.380 0.721 -0.0771
#> 3 -0.0377 -0.945 -1.68
#> 4 0.605 0.501 -0.387
#> 5 0.903 2.17 0.898
#> 6 1.17 0.865 -0.491
#> 7 -0.299 -0.660 -0.800
#> 8 0.856 1.44 -0.325
#> 9 -0.367 -0.0311 0.560
#> 10 -0.246 -1.09 1.26
#> # ℹ 9,990 more rows
act$max_confirm(d_sub[c("A", "B")], solve_for = "object")
#> # A tibble: 10,000 × 3
#> Oe Op Oa
#> <dbl> <dbl> <dbl>
#> 1 2.46 0.260 2.82
#> 2 1.13 0.0536 -0.371
#> 3 1.86 1.16 1.81
#> 4 -1.75 -0.173 -0.454
#> 5 4.42 -2.06 4.20
#> 6 -0.648 -1.62 -1.23
#> 7 -0.386 -1.76 -1.13
#> 8 -0.804 -3.28 -6.33
#> 9 -0.914 -0.999 0.0195
#> 10 -0.826 -0.536 -4.41
#> # ℹ 9,990 more rows
act$max_confirm(d_sub[c("B", "O")], solve_for = "actor")
#> # A tibble: 10,000 × 3
#> Ae Ap Aa
#> <dbl> <dbl> <dbl>
#> 1 0.732 0.898 0.156
#> 2 0.518 -0.924 -0.940
#> 3 0.309 1.57 0.217
#> 4 0.140 -0.149 0.0192
#> 5 0.198 2.62 1.65
#> 6 -1.08 -0.412 0.479
#> 7 -1.05 0.614 0.986
#> 8 -1.14 1.03 1.28
#> 9 -0.890 0.130 0.805
#> 10 -0.666 0.794 1.58
#> # ℹ 9,990 more rows