Performs a linear regression through the origin for a given event. With default settings, this will compute OPR; cOPRs can be retrieved through changing the `response` field.
Usage
fit_event_lr(
event_code,
match_type = "qual",
response = "score",
w = NULL,
flip_response_alliance = FALSE
)
Arguments
- event_code
TBA-legal event code (e.g. "2024paca")
- match_type
One of "qual", "playoff", or "all"
- response
The response variable of interest for the linear regression. To compute regular OPR, pick "score". Component OPRs can be computed by supplying a string with a different response.
- w
Numeric vector indicating the weights to apply to each row
- flip_response_alliance
(bool) if TRUE, uses the blue alliance response for the red alliance design matrix and vice versa. This can be useful for calculating foul contributions to the other alliance or defensive metrics.
Details
Assumes that the event matches dataframe follows the convention "(red/blue)_(response)" where (response) is the type of score we are interested in computing an approximation contribution for.
Examples
fit_event_lr("2024paca")
#>
#> Call:
#> lm(formula = response ~ 0 + ., data = design, weights = w)
#>
#> Coefficients:
#> frc117 frc144 frc325 frc340 frc379 frc578 frc677 frc695
#> 17.350 20.790 30.720 20.948 20.630 5.232 11.324 27.089
#> frc1126 frc1559 frc1708 frc1787 frc2013 frc2053 frc2172 frc2228
#> 16.861 17.685 23.340 34.827 6.928 15.692 10.913 17.101
#> frc2252 frc2399 frc2614 frc2638 frc2641 frc2656 frc3015 frc3181
#> 24.981 17.446 24.605 14.414 17.629 17.003 35.502 16.758
#> frc3201 frc3260 frc3484 frc3492 frc3504 frc3954 frc4027 frc4050
#> 31.846 13.140 15.508 8.216 24.445 20.856 25.283 9.845
#> frc4121 frc4145 frc4150 frc4611 frc4991 frc5413 frc5740 frc6834
#> 30.092 14.035 21.774 28.150 9.623 9.992 12.281 20.959
#> frc7274 frc7515 frc8096 frc8393 frc8705 frc9004 frc9022 frc9139
#> 9.332 13.019 11.734 -1.230 5.104 2.183 12.197 16.531
#> frc9415 frc9475
#> 1.825 12.379
#>
fit_event_lr("2023mil", response = "teleopGamePieceCount")
#>
#> Call:
#> lm(formula = response ~ 0 + ., data = design, weights = w)
#>
#> Coefficients:
#> frc25 frc135 frc176 frc316 frc319 frc360 frc384 frc469
#> 6.628 6.760 9.870 7.936 8.226 6.049 8.198 6.813
#> frc587 frc597 frc604 frc694 frc910 frc930 frc987 frc1072
#> 7.432 6.642 8.614 8.052 6.293 10.372 8.312 6.334
#> frc1218 frc1241 frc1414 frc1506 frc1599 frc1683 frc1745 frc1923
#> 6.754 6.195 7.641 8.459 5.631 6.584 8.707 9.107
#> frc1983 frc2230 frc2240 frc2399 frc2403 frc2489 frc2539 frc2635
#> 5.654 7.356 6.911 7.666 5.857 4.240 9.680 3.533
#> frc2638 frc2656 frc2974 frc3374 frc3604 frc3620 frc3655 frc3668
#> 5.222 4.482 9.073 5.215 7.894 7.115 8.411 7.146
#> frc3679 frc3683 frc3937 frc4020 frc4039 frc4122 frc4175 frc4561
#> 6.170 8.915 8.959 5.717 8.550 3.585 3.729 7.009
#> frc4693 frc4779 frc5024 frc5089 frc5152 frc5409 frc5411 frc5419
#> 3.985 6.618 5.828 5.235 6.431 8.221 6.006 7.018
#> frc5505 frc5618 frc5653 frc5895 frc5913 frc5988 frc6090 frc6352
#> 5.508 2.323 5.769 8.513 6.579 3.026 6.655 4.308
#> frc6420 frc6672 frc6823 frc6865 frc7018 frc8576 frc9007 frc9008
#> 6.318 9.653 7.938 5.626 4.449 5.666 4.753 2.593
#> frc9022 frc9075 frc9076 frc9125 frc9244
#> 4.533 4.615 3.120 5.277 2.484
#>
fit_event_lr("2024new", match_type = "all")
#>
#> Call:
#> lm(formula = response ~ 0 + ., data = design, weights = w)
#>
#> Coefficients:
#> frc58 frc59 frc85 frc111 frc254 frc294 frc316 frc359
#> 26.011 40.587 30.573 43.172 56.308 27.875 37.089 46.319
#> frc369 frc610 frc836 frc888 frc1025 frc1156 frc1189 frc1323
#> 10.669 29.237 32.563 27.552 31.032 40.863 41.112 64.116
#> frc1629 frc1778 frc1792 frc1797 frc1880 frc1891 frc2341 frc2767
#> 33.711 55.671 16.254 21.707 20.534 14.520 19.361 46.402
#> frc2910 frc2974 frc3008 frc3015 frc3196 frc3339 frc3354 frc3414
#> 54.008 48.840 19.395 30.398 21.033 38.486 12.276 46.992
#> frc3472 frc3473 frc3476 frc3478 frc3504 frc3506 frc3620 frc3663
#> 6.311 19.373 27.046 51.659 27.902 40.040 39.811 44.557
#> frc3937 frc4039 frc4130 frc4329 frc4392 frc4607 frc4779 frc5024
#> 37.577 39.740 31.057 28.289 31.590 42.402 36.676 32.460
#> frc5472 frc5614 frc5804 frc5914 frc5933 frc5985 frc6014 frc6191
#> 42.417 38.603 44.248 8.751 23.696 9.832 17.325 -1.855
#> frc6366 frc6429 frc6443 frc6919 frc7111 frc7565 frc7605 frc7748
#> 34.426 23.870 40.211 36.882 14.887 21.569 13.303 4.219
#> frc8048 frc8393 frc8780 frc9098 frc9401 frc9475 frc9477 frc9495
#> 28.228 18.542 8.624 36.115 44.144 11.493 12.009 11.057
#> frc9602 frc9609 frc9613
#> 6.727 36.274 6.870
#>
fit_event_lr("2024paca", response = "foulPoints", flip_response_alliance = T)
#>
#> Call:
#> lm(formula = response ~ 0 + ., data = design, weights = w)
#>
#> Coefficients:
#> frc117 frc144 frc325 frc340 frc379 frc578 frc677 frc695
#> -0.07866 -0.26968 3.03721 2.97982 0.53536 3.23848 -0.43398 2.24065
#> frc1126 frc1559 frc1708 frc1787 frc2013 frc2053 frc2172 frc2228
#> 3.98934 1.85517 -1.40523 -1.91714 1.39115 1.21372 0.23473 2.76690
#> frc2252 frc2399 frc2614 frc2638 frc2641 frc2656 frc3015 frc3181
#> 0.81981 1.70962 -0.42900 1.14738 2.47890 -0.17572 -2.19345 1.90455
#> frc3201 frc3260 frc3484 frc3492 frc3504 frc3954 frc4027 frc4050
#> 0.13200 -1.54401 1.76614 0.56782 0.43775 1.63516 -1.37627 2.42047
#> frc4121 frc4145 frc4150 frc4611 frc4991 frc5413 frc5740 frc6834
#> 0.76563 1.69059 -0.55735 -1.75418 0.81411 3.34038 2.18137 3.69759
#> frc7274 frc7515 frc8096 frc8393 frc8705 frc9004 frc9022 frc9139
#> 1.73416 0.83289 1.30827 -0.80325 0.40470 2.51817 0.14655 2.15096
#> frc9415 frc9475
#> 0.34034 3.95450
#>