Skip to contents

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