Skip to contents

Makes predictions from a multi-penalty ridge regression model.

Usage

# S3 method for class 'multiridge'
predict(object, newx, ...)

Arguments

object

object of class "multiridge"

newx

\(n_0 \times p\) predictor matrix (training data) to obtain fitted values, \(n_1 \times p\) predictor matrix (testing data) to obtain predicted values

...

(not used)

Value

Returns an \(n_0\)-dimensional vector of fitted values or an \(n_1\)-dimensional vector of predicted values.

References

Mark A. van de Wiel, Mirrelijn M. van Nee and Armin Rauschenberger (2021). "Fast cross-validation for multi-penalty high-dimensional ridge regression" Journal of Computational and Graphical Statistics 30(4):835-847. doi: 10.1080/10618600.2021.1904962. # nolint: line_length_linter.

See also

Fit models with multiridge() and extract coefficients with coef().

Examples

# minimal example
n <- 50; p <- 20; q <- 5
x <- matrix(rnorm(n * p), nrow = n , ncol = p)
y <- rnorm(n)
z <- rep(seq_len(q), length.out = p)
multiridge(x = x, y = y, z = z)
#> $etas
#>                [,1]
#>  [1,] -4.562770e-03
#>  [2,]  1.464073e-02
#>  [3,]  2.851572e-02
#>  [4,] -2.168659e-02
#>  [5,]  3.757508e-02
#>  [6,]  1.684401e-02
#>  [7,]  3.359097e-02
#>  [8,] -5.692758e-03
#>  [9,]  4.487052e-03
#> [10,]  1.520291e-02
#> [11,] -3.616822e-02
#> [12,] -4.145161e-02
#> [13,]  2.076140e-02
#> [14,] -1.702421e-02
#> [15,] -4.099961e-02
#> [16,]  6.740546e-04
#> [17,] -3.663194e-03
#> [18,] -4.290677e-02
#> [19,] -1.064479e-03
#> [20,] -3.903208e-03
#> [21,] -3.591424e-02
#> [22,] -5.811417e-02
#> [23,]  1.329048e-02
#> [24,]  2.442298e-02
#> [25,] -2.563383e-02
#> [26,]  1.622308e-02
#> [27,] -6.062274e-03
#> [28,]  1.332433e-02
#> [29,]  3.713173e-02
#> [30,] -2.834786e-02
#> [31,] -8.241935e-03
#> [32,]  1.680011e-02
#> [33,]  1.610819e-05
#> [34,] -2.568337e-02
#> [35,]  2.187027e-02
#> [36,] -6.790713e-03
#> [37,] -4.598570e-02
#> [38,] -2.041255e-02
#> [39,]  3.999844e-02
#> [40,]  3.759101e-02
#> [41,]  1.437824e-02
#> [42,]  1.038924e-02
#> [43,] -3.510918e-02
#> [44,]  2.791852e-02
#> [45,]  1.826909e-02
#> [46,]  1.823637e-02
#> [47,]  5.552410e-02
#> [48,]  2.769205e-02
#> [49,] -5.012456e-02
#> [50,]  1.757243e-04
#> 
#> $Ypred
#>                [,1]
#>  [1,] -4.562770e-03
#>  [2,]  1.464073e-02
#>  [3,]  2.851572e-02
#>  [4,] -2.168659e-02
#>  [5,]  3.757508e-02
#>  [6,]  1.684401e-02
#>  [7,]  3.359097e-02
#>  [8,] -5.692758e-03
#>  [9,]  4.487052e-03
#> [10,]  1.520291e-02
#> [11,] -3.616822e-02
#> [12,] -4.145161e-02
#> [13,]  2.076140e-02
#> [14,] -1.702421e-02
#> [15,] -4.099961e-02
#> [16,]  6.740546e-04
#> [17,] -3.663194e-03
#> [18,] -4.290677e-02
#> [19,] -1.064479e-03
#> [20,] -3.903208e-03
#> [21,] -3.591424e-02
#> [22,] -5.811417e-02
#> [23,]  1.329048e-02
#> [24,]  2.442298e-02
#> [25,] -2.563383e-02
#> [26,]  1.622308e-02
#> [27,] -6.062274e-03
#> [28,]  1.332433e-02
#> [29,]  3.713173e-02
#> [30,] -2.834786e-02
#> [31,] -8.241935e-03
#> [32,]  1.680011e-02
#> [33,]  1.610819e-05
#> [34,] -2.568337e-02
#> [35,]  2.187027e-02
#> [36,] -6.790713e-03
#> [37,] -4.598570e-02
#> [38,] -2.041255e-02
#> [39,]  3.999844e-02
#> [40,]  3.759101e-02
#> [41,]  1.437824e-02
#> [42,]  1.038924e-02
#> [43,] -3.510918e-02
#> [44,]  2.791852e-02
#> [45,]  1.826909e-02
#> [46,]  1.823637e-02
#> [47,]  5.552410e-02
#> [48,]  2.769205e-02
#> [49,] -5.012456e-02
#> [50,]  1.757243e-04
#> 
#> $convergence
#> [1] FALSE
#> 
#> $nIt
#> [1] 1
#> 
#> $Hresl
#> $Hresl$Hmatl
#>                [,1]
#>  [1,] -4.562770e-03
#>  [2,]  1.464073e-02
#>  [3,]  2.851572e-02
#>  [4,] -2.168659e-02
#>  [5,]  3.757508e-02
#>  [6,]  1.684401e-02
#>  [7,]  3.359097e-02
#>  [8,] -5.692758e-03
#>  [9,]  4.487052e-03
#> [10,]  1.520291e-02
#> [11,] -3.616822e-02
#> [12,] -4.145161e-02
#> [13,]  2.076140e-02
#> [14,] -1.702421e-02
#> [15,] -4.099961e-02
#> [16,]  6.740546e-04
#> [17,] -3.663194e-03
#> [18,] -4.290677e-02
#> [19,] -1.064479e-03
#> [20,] -3.903208e-03
#> [21,] -3.591424e-02
#> [22,] -5.811417e-02
#> [23,]  1.329048e-02
#> [24,]  2.442298e-02
#> [25,] -2.563383e-02
#> [26,]  1.622308e-02
#> [27,] -6.062274e-03
#> [28,]  1.332433e-02
#> [29,]  3.713173e-02
#> [30,] -2.834786e-02
#> [31,] -8.241935e-03
#> [32,]  1.680011e-02
#> [33,]  1.610819e-05
#> [34,] -2.568337e-02
#> [35,]  2.187027e-02
#> [36,] -6.790713e-03
#> [37,] -4.598570e-02
#> [38,] -2.041255e-02
#> [39,]  3.999844e-02
#> [40,]  3.759101e-02
#> [41,]  1.437824e-02
#> [42,]  1.038924e-02
#> [43,] -3.510918e-02
#> [44,]  2.791852e-02
#> [45,]  1.826909e-02
#> [46,]  1.823637e-02
#> [47,]  5.552410e-02
#> [48,]  2.769205e-02
#> [49,] -5.012456e-02
#> [50,]  1.757243e-04
#> 
#> $Hresl$Mmatl
#>              [,1]
#>  [1,]  1.96975314
#>  [2,]  0.73889033
#>  [3,]  0.37678528
#>  [4,]  1.09744090
#>  [5,]  0.70490230
#>  [6,]  0.70708862
#>  [7,]  1.48425553
#>  [8,] -0.53832016
#>  [9,]  0.30484263
#> [10,]  1.84794339
#> [11,] -0.02870452
#> [12,] -1.30259352
#> [13,] -0.30052783
#> [14,] -1.04816502
#> [15,] -0.02009989
#> [16,] -1.56228522
#> [17,] -0.38794624
#> [18,]  0.14657514
#> [19,] -0.68244148
#> [20,] -0.41918369
#> [21,] -1.39381497
#> [22,]  0.24832194
#> [23,]  0.55292289
#> [24,] -1.41751548
#> [25,] -0.98599857
#> [26,]  1.42901623
#> [27,]  0.28038551
#> [28,] -0.14933669
#> [29,]  1.85134053
#> [30,]  0.41198012
#> [31,] -0.40401513
#> [32,]  1.06768105
#> [33,] -0.35196215
#> [34,] -1.07419260
#> [35,]  0.58502690
#> [36,] -0.31683344
#> [37,] -1.45715481
#> [38,]  0.40899612
#> [39,] -1.24136427
#> [40,] -1.86765370
#> [41,] -1.38684484
#> [42,]  0.65352947
#> [43,]  0.30255241
#> [44,] -0.26295407
#> [45,] -0.22554587
#> [46,] -1.28141987
#> [47,]  0.12655824
#> [48,]  1.07844530
#> [49,]  0.06839671
#> [50,]  1.66324336
#> 
#> 
#> $linearized
#>              [,1]
#>  [1,]  1.96519037
#>  [2,]  0.75353106
#>  [3,]  0.40530100
#>  [4,]  1.07575431
#>  [5,]  0.74247738
#>  [6,]  0.72393263
#>  [7,]  1.51784649
#>  [8,] -0.54401292
#>  [9,]  0.30932968
#> [10,]  1.86314629
#> [11,] -0.06487275
#> [12,] -1.34404513
#> [13,] -0.27976644
#> [14,] -1.06518923
#> [15,] -0.06109950
#> [16,] -1.56161116
#> [17,] -0.39160943
#> [18,]  0.10366837
#> [19,] -0.68350596
#> [20,] -0.42308690
#> [21,] -1.42972921
#> [22,]  0.19020777
#> [23,]  0.56621337
#> [24,] -1.39309250
#> [25,] -1.01163239
#> [26,]  1.44523931
#> [27,]  0.27432324
#> [28,] -0.13601236
#> [29,]  1.88847226
#> [30,]  0.38363225
#> [31,] -0.41225706
#> [32,]  1.08448116
#> [33,] -0.35194604
#> [34,] -1.09987598
#> [35,]  0.60689718
#> [36,] -0.32362415
#> [37,] -1.50314051
#> [38,]  0.38858356
#> [39,] -1.20136583
#> [40,] -1.83006269
#> [41,] -1.37246659
#> [42,]  0.66391871
#> [43,]  0.26744323
#> [44,] -0.23503554
#> [45,] -0.20727678
#> [46,] -1.26318350
#> [47,]  0.18208233
#> [48,]  1.10613735
#> [49,]  0.01827215
#> [50,]  1.66341909
#> 
#> $unpen
#> [1] FALSE
#> 
#> $intercept
#> [1] TRUE
#> 
#> $eta0
#> [1] 0
#> 
#> $X1
#>       [,1]
#>  [1,]    1
#>  [2,]    1
#>  [3,]    1
#>  [4,]    1
#>  [5,]    1
#>  [6,]    1
#>  [7,]    1
#>  [8,]    1
#>  [9,]    1
#> [10,]    1
#> [11,]    1
#> [12,]    1
#> [13,]    1
#> [14,]    1
#> [15,]    1
#> [16,]    1
#> [17,]    1
#> [18,]    1
#> [19,]    1
#> [20,]    1
#> [21,]    1
#> [22,]    1
#> [23,]    1
#> [24,]    1
#> [25,]    1
#> [26,]    1
#> [27,]    1
#> [28,]    1
#> [29,]    1
#> [30,]    1
#> [31,]    1
#> [32,]    1
#> [33,]    1
#> [34,]    1
#> [35,]    1
#> [36,]    1
#> [37,]    1
#> [38,]    1
#> [39,]    1
#> [40,]    1
#> [41,]    1
#> [42,]    1
#> [43,]    1
#> [44,]    1
#> [45,]    1
#> [46,]    1
#> [47,]    1
#> [48,]    1
#> [49,]    1
#> [50,]    1
#> 
#> $family
#> [1] "gaussian"
#> 
#> $penalties
#> [1] 1000000.000 1000000.000     382.322 1000000.000 1000000.000
#> 
#> $datablocks
#> $datablocks[[1]]
#>              [,1]         [,2]         [,3]        [,4]
#>  [1,]  1.77670543 -1.051363040  0.707757144 -0.77374058
#>  [2,] -0.47043181  0.575707068  0.914378466  0.13939027
#>  [3,] -1.67378043  0.685736740  0.282328275 -0.20981388
#>  [4,] -0.79698389  0.071336779 -0.391494480  0.41987806
#>  [5,] -0.39409694 -0.684314640 -0.236239765  1.16306537
#>  [6,]  0.20314793 -0.398673597 -0.644890366  0.11788674
#>  [7,]  0.53447496  0.205144390 -0.751434478  0.39912252
#>  [8,] -0.65826956 -1.439625156  1.730228128 -0.41618430
#>  [9,]  0.15448489  0.309416801 -0.281223759  1.37441613
#> [10,]  0.32490186  0.849328159  0.383227957  0.28266612
#> [11,] -0.43830085  2.033501910  0.317691216 -0.29909983
#> [12,] -1.67293697 -1.700734640 -0.885921495  0.08129047
#> [13,]  0.31437269 -0.221266680  0.766567516  0.69682149
#> [14,] -0.72151004 -1.000037140  0.254114311 -1.34272067
#> [15,]  0.71452762  0.409514131 -0.113712299  0.67153417
#> [16,]  1.51409926  0.763119093 -0.459431883  1.08803672
#> [17,] -0.72852708  0.281842408 -1.286079219  0.11660456
#> [18,] -0.72366249 -0.066336257 -0.533895806  1.15219725
#> [19,]  0.28957393  1.621127792 -0.970081157  0.46392053
#> [20,]  0.64151787  0.793970955  1.183297841 -1.37696585
#> [21,] -0.09664285  1.832797971  1.259069595 -2.27471961
#> [22,] -0.44256520 -1.781202349 -0.586193043 -0.06491672
#> [23,]  1.87238706  0.032006352 -0.723213918  1.61045566
#> [24,] -0.78419906 -0.650610760 -0.373778380  0.30276353
#> [25,] -1.16908495 -1.483788661 -0.272645871 -1.23396342
#> [26,] -1.81461100  0.256450634 -1.964934225 -0.09951741
#> [27,]  0.09685021 -0.599305971 -0.068242945  0.87436261
#> [28,] -1.14437056 -1.193215310 -0.273959155 -1.76794320
#> [29,]  1.38744492 -0.946098097 -1.495432781  0.39237852
#> [30,]  0.47851194 -0.765026645  1.301823481 -0.94389647
#> [31,] -0.50330549 -1.533692619 -0.196318112  0.86013426
#> [32,] -0.70754967  0.923824463  1.603972033 -1.45886265
#> [33,]  1.22075389  0.892439378 -0.957726877 -0.43820993
#> [34,] -0.11876288 -1.167710826 -0.536049539 -2.80892217
#> [35,] -0.21030884 -0.674954715  0.008967734  0.40484595
#> [36,]  1.78004621 -0.104703474  0.818328809  1.87412184
#> [37,]  1.08374586  1.704482854  1.066775668  0.29836632
#> [38,]  2.74861474  1.094181096  1.536106227  1.17724331
#> [39,]  0.52249317 -0.796554142  0.719551664  0.42943050
#> [40,] -1.00561906  0.065020734 -0.984105175  0.66742684
#> [41,]  0.67266501 -1.104404746  0.639294831 -1.00962339
#> [42,]  0.27214190  1.532428839 -0.159159626  1.04381808
#> [43,] -0.55618706 -0.096526617  2.304935788 -0.41174310
#> [44,]  0.44709840  0.374841514 -1.418330851  1.16002537
#> [45,] -0.99607212  0.007922727 -0.056390836 -0.17491971
#> [46,]  0.97268894  0.399368634 -1.101844599 -1.15260409
#> [47,] -0.42714791  0.709889687  1.697689259 -0.15703779
#> [48,] -1.37112303  1.278175249 -0.018869988 -0.95955457
#> [49,]  0.04485656  0.940114520  0.487898366  0.16650368
#> [50,] -0.44205552 -1.183544797 -2.242403681 -0.05374756
#> 
#> $datablocks[[2]]
#>              [,1]        [,2]        [,3]         [,4]
#>  [1,] -0.33215397  1.07352554 -0.89358614  2.778287459
#>  [2,]  0.13251891 -0.80981529 -1.31862589 -0.940504943
#>  [3,] -0.46071396  0.03327363 -2.44454297 -0.296989772
#>  [4,]  1.57117932 -0.22325051  0.20596302  0.567303111
#>  [5,]  0.10683656 -1.08684747 -1.01752287 -0.284014841
#>  [6,]  0.05529520  0.30679179  0.39181142  1.145327192
#>  [7,] -1.17935879  1.07333066  1.03179202 -0.144820506
#>  [8,] -0.55690793  0.37202921  1.34247859  0.862172163
#>  [9,] -0.34105751  0.07158619 -0.86293842 -0.343280781
#> [10,]  0.93612191  1.79422527 -1.42622034  0.044070124
#> [11,]  0.17770518 -0.39213785 -0.72999205 -1.506049081
#> [12,] -1.41052346 -0.90888603 -0.59257552 -1.743899911
#> [13,]  0.25932187 -1.40821875 -0.58205095  0.541193573
#> [14,] -0.84378053  0.84543315 -0.63291397 -0.155259811
#> [15,]  0.51879450 -0.28022559  0.34377887  0.028466759
#> [16,]  0.38222014 -0.98336205  0.99801724 -0.205986231
#> [17,]  0.47520000  2.32757488  0.60461137  1.278738205
#> [18,]  1.52206548  0.74431744  0.19711147 -0.669634620
#> [19,]  2.10156302  0.97982782 -2.30258732  0.427311496
#> [20,]  1.13786152 -0.32987977  0.49176770  0.373636149
#> [21,] -0.05382138  1.06410785 -1.02547998  0.583856183
#> [22,] -0.24115713  0.97856781  0.78534516 -0.481563869
#> [23,] -0.53107336  0.53845608  0.44958948  0.462690780
#> [24,]  0.49261405 -0.88531206 -0.34050982  0.576873161
#> [25,]  1.80751784 -0.52742625  0.41082339  2.010490086
#> [26,] -0.69977959  0.46767562  1.81440353  1.136377769
#> [27,] -2.08748439 -0.47671460 -0.66501060  1.120091918
#> [28,]  0.26627073  0.16526862  0.65412130 -0.004646519
#> [29,] -1.20109251  0.49656755  1.53745474 -1.433461035
#> [30,]  0.07229026  1.11042511  0.60202792  0.567131707
#> [31,] -0.05803344  0.08201154 -0.25638281 -0.048172671
#> [32,] -0.10357751 -1.57027477  1.57549700 -0.107059419
#> [33,] -0.14640241 -0.38610734 -0.89790440 -1.744381753
#> [34,] -3.03486365  1.05646070  0.31781552  0.680371081
#> [35,]  1.48379822 -1.68005681  1.62675217  0.041354387
#> [36,]  1.69441766  1.05323819  0.25524685  0.560705294
#> [37,]  1.19100219  1.59640586  0.75708069 -0.275983913
#> [38,] -0.17357513  0.23016766 -0.94551289 -0.541987709
#> [39,]  0.78638085 -2.42091043  1.24644734 -2.305464969
#> [40,] -0.45529145 -0.18222243 -0.78004094 -1.970851087
#> [41,] -0.56933364 -1.00263742 -0.33817692 -1.115652475
#> [42,]  0.34254373 -1.68077784 -1.19713024 -0.892687044
#> [43,] -0.01635625  0.42637948  0.23424626 -0.145943893
#> [44,] -0.19906602 -0.69498328  1.41122697  0.906908251
#> [45,] -0.72821837  0.49750443 -0.01626197  0.512810193
#> [46,] -0.30484512  0.16176855 -0.69571877  0.423211950
#> [47,]  0.76877555  0.40699441 -0.54242976 -0.128905146
#> [48,] -1.36995540  0.05712396 -0.43293629 -1.202133257
#> [49,]  0.08948712 -1.72026120  1.10948626  1.160265405
#> [50,] -1.27335894 -0.36073125  0.54215556 -0.100309141
#> 
#> $datablocks[[3]]
#>              [,1]        [,2]        [,3]        [,4]
#>  [1,]  0.70825393  0.60504842  0.67505999 -0.45356637
#>  [2,]  0.38585930  2.02288375 -0.06805321  1.10279141
#>  [3,] -1.63640326 -0.49700733 -0.46755283 -0.99605214
#>  [4,]  0.79329708 -0.74759632  0.40752221 -0.40411192
#>  [5,] -0.07028074  0.63858214 -0.52996207 -1.83627399
#>  [6,]  1.60884252  0.98884775 -0.65264945 -0.96413873
#>  [7,] -0.63220449 -0.53115835 -1.52396948 -1.03330093
#>  [8,]  0.12351696 -1.62664381 -1.39812115  0.19198011
#>  [9,] -0.44870522 -0.39413165 -0.57069999  0.32908395
#> [10,]  0.92423567 -0.51686092 -1.49883629 -0.94094726
#> [11,]  1.44508702 -0.98794721 -0.40243521  1.13222759
#> [12,]  1.05194849 -0.05193534  1.42635798  0.67651201
#> [13,] -0.53641576 -0.33850045  0.77063563 -2.99618745
#> [14,]  0.22285385 -0.73613836 -0.17061843  0.60994801
#> [15,]  0.11131881 -1.93200318  0.47471864  0.40498399
#> [16,] -0.56384837  0.36377360  1.03987745 -0.48532164
#> [17,]  0.84514632 -1.62431355 -2.50811632  0.86968895
#> [18,]  0.50088550 -0.51021309  1.61123039  0.49060717
#> [19,]  1.83182507  0.95572684  0.69540796 -1.50978412
#> [20,] -0.53822539  0.53042955  0.19781745  1.37498969
#> [21,]  0.35035595 -1.07277640  0.27334005  1.15434419
#> [22,]  0.12585169 -1.51031212  2.50401046 -0.35836906
#> [23,] -0.84076855 -0.30414328 -1.40399012  1.25058778
#> [24,]  0.38993585  0.57337354 -1.01394390 -0.45747727
#> [25,]  0.91819612 -1.74096529 -0.43288225 -0.31052209
#> [26,] -0.23987902  1.74113792  1.02280102 -0.36319209
#> [27,]  0.36667690  0.46784972  0.52891860  0.06973779
#> [28,]  0.86868737  1.77380401  0.86944758 -0.98698714
#> [29,] -1.84922609  0.03564780 -0.28005499 -1.12379665
#> [30,] -0.01326736 -0.49490224  0.97084486  0.60249076
#> [31,] -0.44568600 -0.25769488  0.34223069  0.39286813
#> [32,] -0.68678579  0.39088341  0.13900552 -0.53368069
#> [33,]  0.34296539  1.34722318 -0.22970787  1.83438353
#> [34,]  1.46915706 -0.61329392  0.27363206 -0.34954758
#> [35,]  0.09078392  0.30439487 -1.72894165  0.77209004
#> [36,] -1.14784376  0.66746163  0.87578242  1.49858360
#> [37,] -0.25875561 -1.36324962  1.14098502  1.08314777
#> [38,]  0.41747915  0.19678416  1.27457243 -0.08519325
#> [39,] -3.28142166  0.55421581 -0.20254366  0.70319243
#> [40,] -0.60432151  1.07814509 -0.15978378 -1.20904291
#> [41,]  0.66097483 -0.09230153 -1.15610625 -0.50068121
#> [42,] -0.67780627 -0.37651073 -0.28445961 -0.38023069
#> [43,]  1.47722039 -0.84195177 -0.28317891  1.02837284
#> [44,] -0.85574648  0.61968305 -0.74767427  0.19838123
#> [45,] -0.03476676 -0.02280379 -0.47027652 -1.04325127
#> [46,] -0.09540783  1.82046581  1.50158712 -1.29628885
#> [47,] -1.65182219  1.31327262 -1.41586767  0.34744120
#> [48,] -1.17436288  0.57124845 -0.50280888  0.12650654
#> [49,]  1.28636687 -1.38868372  0.41281407  0.88483811
#> [50,] -1.03377107  1.01315571  0.67463521  1.48816647
#> 
#> $datablocks[[4]]
#>              [,1]         [,2]         [,3]        [,4]
#>  [1,] -1.51730742 -1.936330069  0.621651133 -0.73537506
#>  [2,] -1.17381954 -1.046974259  0.018454634  1.96226463
#>  [3,]  0.35158749 -0.804394388 -1.314195053  0.30935349
#>  [4,]  0.62168643  0.006209334 -0.378176064  0.14443930
#>  [5,] -1.64868692 -1.068434842 -0.156883209  0.08314255
#>  [6,] -1.40800848 -0.143710380 -0.491847798 -2.76816873
#>  [7,] -0.29116268  0.494777672  0.578568642 -0.35238762
#>  [8,] -1.01010966  0.997735029 -1.306141564 -1.05088852
#>  [9,]  0.16454992  1.000341034 -0.485152262  0.84452964
#> [10,]  0.96283929  0.079580756 -0.018619321 -0.43426169
#> [11,] -0.24880577  1.293820336 -0.980355579 -0.62116460
#> [12,]  0.59737465  0.034160433  0.619457754  0.09488420
#> [13,]  0.88469471  1.183930105 -1.249590005  1.25969962
#> [14,] -0.05096882  0.018211983 -0.000400355  0.21695306
#> [15,] -0.83399621  1.341137693 -0.749697870  0.27101279
#> [16,] -0.83663728  0.487093799  1.428077921  1.18675983
#> [17,]  0.23776293 -1.156774845 -0.821816024 -0.01769091
#> [18,]  0.65222144 -0.284696920  1.165649721  1.25528390
#> [19,] -0.65688301  1.361451226  0.075697315 -1.30140292
#> [20,]  0.04590925  3.040917430 -0.683381086  0.69931484
#> [21,] -0.34613437 -0.129094250  0.894692531 -0.69813717
#> [22,]  0.03275473  0.148059625 -0.115087356  0.82160406
#> [23,]  2.53777283  0.370317066 -1.188348025 -0.18191493
#> [24,] -0.14978574  0.274157527 -1.775141568  0.17249786
#> [25,] -0.34257673 -1.523434646  2.803670942 -1.77279953
#> [26,] -0.06431485 -0.877101742  0.073566739 -0.04581463
#> [27,]  0.59082855 -0.339775590 -1.277752305 -0.63241178
#> [28,]  1.24452183  0.978535085 -0.047914908 -0.72793107
#> [29,]  0.44402426 -0.394339770  0.318300481 -0.10455641
#> [30,] -1.40464770  0.886987424 -0.083705740  0.88606692
#> [31,] -1.48910273  0.545419675 -0.351762884  0.56217873
#> [32,] -0.04767751 -0.218625285  1.102506207  1.40829541
#> [33,] -1.91367946  1.273563450 -0.659549408  0.39170541
#> [34,] -0.15606522  1.457276129  1.746336240  0.94711110
#> [35,]  0.59860628 -1.045601476  1.080970097  0.86518493
#> [36,]  0.64697957 -0.152765014  1.440726499 -2.06862687
#> [37,]  0.32552022 -0.253287128  0.668099002 -0.01069368
#> [38,] -0.70402872 -0.935637614  0.022653218  0.87662371
#> [39,]  0.96382767 -1.428794022 -2.541044892 -0.13946650
#> [40,] -1.13047321 -0.185539740  0.111996627 -2.78109998
#> [41,]  1.27390506 -0.658630822 -0.341624837  0.81143340
#> [42,]  1.58161118  0.340534634  0.369343454 -0.23587937
#> [43,]  1.22314998 -1.218023254 -0.069033458 -0.21340970
#> [44,]  0.44899082 -2.199045284 -0.204836865 -0.19329432
#> [45,] -0.93655897  0.634183363 -0.428860817 -0.18896016
#> [46,] -0.95064082 -0.433146447  0.084494129  0.31818056
#> [47,]  0.96831800 -0.526736548 -0.058005499  1.40497959
#> [48,]  0.02288374  0.294296468  0.330491613  0.40120200
#> [49,] -0.45928366 -0.489189265 -0.141081974  0.22495298
#> [50,]  2.34903465  0.907386323  2.364601827 -1.14331837
#> 
#> $datablocks[[5]]
#>              [,1]        [,2]         [,3]          [,4]
#>  [1,]  0.21568309  0.92433198  0.038224688  9.014541e-02
#>  [2,] -0.62995230  1.16594067 -1.130356199 -3.414805e-02
#>  [3,]  0.94852802 -1.11296533  0.727906888  2.647048e-01
#>  [4,]  0.70862855 -0.29368561 -0.881394844 -1.124358e+00
#>  [5,] -0.42862452  0.02718454 -1.125033390 -4.715966e-01
#>  [6,]  1.06928202  0.75383115 -0.371203101  5.343100e-01
#>  [7,]  0.79432493 -0.34064541  1.717305899  1.361303e+00
#>  [8,]  0.09160832  0.89795009 -1.318753819 -9.225429e-01
#>  [9,] -0.22044009  0.97598920 -1.033919484 -1.041033e+00
#> [10,] -0.01434870 -0.41630972 -0.055688305  1.276946e+00
#> [11,]  1.62276679 -0.81273978  0.272522786  6.806026e-01
#> [12,] -0.82086547 -0.19625765 -1.138733306  1.638897e-01
#> [13,]  0.51116787 -0.58291570  2.181668075 -1.324300e+00
#> [14,]  1.48265885  1.25278586  0.036269294  5.163305e-01
#> [15,]  0.11815008 -0.69444029 -0.114032900  7.418816e-01
#> [16,] -0.66113007  0.69070503 -1.345455945  2.011940e-01
#> [17,]  1.68041716 -0.64837526 -1.057434999 -6.891185e-01
#> [18,] -0.90659708  0.22248506 -1.426921794  1.365862e+00
#> [19,] -0.02813469 -0.05140842 -0.090860795  2.184089e+00
#> [20,] -0.33036373 -1.47856459 -1.525537162 -5.211348e-01
#> [21,]  1.05392464 -0.08065181 -0.725259449  2.314528e+00
#> [22,] -0.29010698  0.56808147  0.261526791  1.076101e-01
#> [23,]  0.14989659  1.89934151  1.581795585  6.213172e-01
#> [24,] -1.75925484 -0.27463343 -1.526887257 -3.583386e-01
#> [25,]  0.83234132  1.19905417 -0.086433231 -1.573480e+00
#> [26,] -0.01077951 -0.44560982  1.006745197 -1.343289e+00
#> [27,] -0.99788156  0.87258073  0.581712465 -2.273313e-01
#> [28,] -0.07093597  1.14642862 -0.476010148  1.623161e+00
#> [29,]  0.34567777 -0.36903355 -0.039088629  3.009369e-01
#> [30,]  1.44474152 -1.00408955  0.107538345  4.974263e-01
#> [31,] -1.32408011 -1.30000753  0.249872577  2.925559e-01
#> [32,]  1.62100320 -1.48545073  1.032332322  1.403873e+00
#> [33,] -0.84629893  1.21399423  0.385134717 -1.537848e+00
#> [34,] -0.66107671 -1.43992253  0.853996055 -3.234783e-01
#> [35,] -1.89205718  1.23025718  0.607054568  1.142041e+00
#> [36,]  0.47380324  0.24093815  1.289630390  7.920170e-02
#> [37,]  2.12908152  0.02867680 -1.294603388  1.415525e-01
#> [38,]  0.59926914 -1.29107953  0.090202174 -9.690230e-01
#> [39,]  0.01899141 -0.23883941 -1.450785782 -1.548849e-01
#> [40,] -1.03168177  0.07478152  0.562482197 -2.276259e+00
#> [41,]  0.32525277 -0.16567725 -0.104835862 -1.745531e-02
#> [42,]  1.39174252 -1.39484422  0.869034864 -4.280299e-02
#> [43,] -1.29059046  0.57431313  0.002744472 -2.501932e-01
#> [44,] -0.79574531  0.13196820 -1.459995440  9.725853e-01
#> [45,] -1.31011634 -0.11904302  0.109149345 -4.215925e-01
#> [46,] -1.04146936  1.51510356  1.592567446 -7.934557e-01
#> [47,] -0.21140275  1.23006704  1.603828562  2.817148e-01
#> [48,] -0.45446727 -1.60143873 -0.037023808 -9.234832e-01
#> [49,]  0.42104516 -2.47362714  1.529719478  6.375277e-05
#> [50,] -2.02158478  1.47546615  0.525283860 -1.818681e+00
#> 
#> 
#> $z
#>  [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
#> 
#> $pars
#> $pars$family
#> [1] "gaussian"
#> 
#> $pars$mu.x
#>  [1] -0.1606045798 -0.0598055444 -0.0710696424  0.0331454330  0.0665013570
#>  [6]  0.1194469289 -0.1147093838 -0.0987185074 -0.0866573327  0.0200202533
#> [11] -0.0861923337 -0.2207075336  0.2752302399 -0.1107781368 -0.0830906871
#> [16]  0.0530637109 -0.0235477314  0.0002076096 -0.0496632155 -0.1540801996
#> 
#> $pars$sd.x
#>  [1] 0.7729841 0.9200858 0.9097767 1.0606297 0.9976714 0.9331263 0.9269264
#>  [8] 1.0781032 1.0368733 0.8551507 1.0587907 0.9145668 0.9271206 1.0420105
#> [15] 1.1353825 0.9535468 0.9860534 1.0751145 0.8892223 1.0398593
#> 
#> $pars$mu.y
#> [1] 0.1170719
#> 
#> $pars$sd.y
#> [1] 1.108702
#> 
#> 
#> attr(,"class")
#> [1] "multiridge"

# \donttest{
# simulation
set.seed(1)
n0 <- 100
n1 <- 10000
n <- n0 + n1
p <- c(100, 50)
z <- rep(x = seq_along(p), times = p)
x <- sapply(X = z, FUN = function(x) stats::rnorm(n = n, sd = x))
beta <- stats::rnorm(n = sum(p), mean = 1, sd = 0) *
        stats::rbinom(n = sum(p), size = 1, prob = 0.2)
eta <- x %*% beta
family <- "gaussian"
if (identical(family, "gaussian")) {
  y <- eta + 0.5 * stats::rnorm(n = n, sd = stats::sd(eta))
} else if (identical(family, "binomial")) {
  y <- stats::rbinom(n = n, size = 1, prob = 1 / (1 + exp(-eta)))
} else if (identical(family, "cox")) {
  time <- stats::rexp(n = n, rate = exp(eta))
  status <- stats::rbinom(n = n, prob = 0.5, size = 1)
  y <- survival::Surv(time = time, event = status)
}
cond <- rep(x = c(TRUE, FALSE), times = c(n0, n1))

y_hat <- coef <- list()

# standard ridge regression
object <- glmnet::cv.glmnet(x = x[cond, ], y = y[cond],
                           family = family, alpha = 0)
coef$glmnet <- stats::coef(object = object, s = "lambda.min")
y_hat$glmnet <- stats::predict(object = object, newx = x[!cond, ],
                              type = "response", s = "lambda.min")

# multi-penalty ridge regression
object <- multiridge(x = x[cond, ], y = y[cond], z = z, family = family)
coef$multiridge <- stats::coef(object = object)
y_hat$multiridge <- stats::predict(object = object, newx = x[!cond, ])

# estimation performance
sapply(coef, function(x) stats::cor(beta, x[-1]))
#>     glmnet multiridge 
#>  0.4692074  0.5982584 
sapply(coef, function(x) mean((beta-x[-1])^2))
#>     glmnet multiridge 
#>  0.1718059  0.1262343 

# predictive performance
if (identical(family, "gaussian")) {
  metric <- sapply(X = y_hat, FUN = function(x)
    mean((x-y[!cond])^2))
} else if (identical(family, "binomial")) {
  metric <- sapply(X = y_hat, FUN = function(x)
    pROC::auc(response = y[!cond],
              predictor = as.vector(x),
              levels = c(0, 1),
              direction = "<"))
} else if (identical(family, "cox")) {
  metric <- sapply(X = y_hat, FUN = function(x)
    survival::concordance(y[!cond]~I(-x))$concordance)
}
metric
#>     glmnet multiridge 
#>   73.65774   50.10826 
# }