package Ġca . warp 7 . rt . ext . views Ċ Ċ import Ġkr ang l . DataFrame Ċ import Ġkr ang l . data Frame Of Ċ import Ġkr ang l . eq Ċ import Ġorg . apache . commons . math 3 . exception . Math IllegalArgumentException Ċ import Ġorg . apache . commons . math 3 . stat . regression . OL SM ultiple Linear Regression Ċ Ċ fun ĠDataFrame . calc Cycles ( by : ĠString , Ġcol Names : ĠList < String >): ĠDataFrame Ġ{ ĊĠĠĠ Ġval Ġteams Ġ= Ġthis [ by ]. values (). toSet (). toList () ĊĊĠĠĠ Ġval Ġvalues Ġ= Ġteams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġteam Ġ-> Ġthis . filter Ġ{ Ġit [ by ] Ġeq Ġteam !! Ġ}. select If Ġ{ Ġit . name Ġ!= Ġby Ġ&& Ġit . name Ġin Ġcol Names Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġdf Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdf . rows . map Ġ{ Ġrow Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow . values ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNumber Ġ-> Ġit . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġmatches ĠRegex ("- ? \\ d +( \\. \\ d + )? ") Ġ-> Ġit . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toDouble Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġrow Ġ-> Ġ! row . all Ġ{ Ġvalue Ġ-> Ġvalue Ġ== Ġ 0 . 0 Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġresults Ġ= Ġvalues . map Indexed Ġ{ Ġi , Ġx Ġ-> ĊĠĠĠĠĠĠĠ ĠlistOf ( teams [ i ]) Ġ+ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( x . isEmpty ()) Ġ 0 Ġelse Ġx [ 0 ]. size Ġ+ Ġ 1 ) Ġ<= Ġx . size Ġ-> Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrans Ġ= ĠArray ( x [ 0 ]. size ) Ġ{ ĠDouble Array ( x . size ) Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( k Ġin Ġ 0 Ġuntil Ġx [ 0 ]. size ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġx . size ) Ġtrans [ k ][ j ] Ġ= Ġx [ j ][ k ] Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġtrans . map Ġ{ Ġfalse Ġ! in Ġit . map Ġ{ Ġit Ġ== Ġ 0 . 0 Ġ} Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( a ) Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġx . map Indexed NotNull Ġ{ Ġj , Ġvalue Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a [ j ]) Ġvalue Ġelse Ġnull Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. to Typed Array () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġx . map Ġ{ Ġ 1 3 5 . 0 Ġ}. toDouble Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġres : ĠList < Any > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreg Ġ= ĠO LS Multiple Linear Regression () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreg . is No Intercept Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreg . new Sample Data ( y , Ġx ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ= Ġreg . estimate Regression Parameters () !!. toList () Ġ+ Ġreg . estimate Regression Parameters Standard Errors () !!. toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠMath IllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ= ĠList ( col Names . size Ġ* Ġ 2 ) Ġ{ Ġ"" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx . map Indexed Ġ{ Ġj , Ġvalue Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a [ j ]) Ġres [ j ] Ġelse Ġ 9 9 9 8 . 0 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠList ( col Names . size Ġ* Ġ 2 ) Ġ{ Ġ"" Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġresults . forEach Ġ{ Ġprintln ( it . size ) Ġ} ĊĠĠĠ Ġreturn Ġdata Frame Of ( listOf ( by ) Ġ+ Ġcol Names . map Ġ{ Ġ"$ it Ġtimes " Ġ} Ġ+ Ġcol Names . map Ġ{ Ġ"+ -$ it " Ġ})( results . flatten (). map Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNumber Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" num Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" str Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . toDouble OrNull ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ 9 9 9 9 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġit . toDouble OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 9 9 9 9 . 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġdf : ĠDataFrame Ġ= Ġdata Frame Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Team ", Ġ" Cargo ", Ġ" H atch ", Ġ" Cli mb ")( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 8 6 5 ", Ġ 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 8 6 5 ", Ġ 0 . 0 , Ġ 2 . 0 , Ġ 5 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 8 6 5 ", Ġ 3 . 0 , Ġ 1 . 0 , Ġ 0 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 8 6 5 ", Ġ 4 . 0 , Ġ 0 . 0 , Ġ 1 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 8 6 5 ", Ġ 2 . 0 , Ġ 1 . 0 , Ġ 2 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 8 6 5 ", Ġ 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 5 6 ", Ġ 0 . 0 , Ġ 2 . 0 , Ġ 5 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 5 6 ", Ġ 3 . 0 , Ġ 1 . 0 , Ġ 0 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 5 6 ", Ġ 4 . 0 , Ġ 0 . 0 , Ġ 1 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 5 6 ", Ġ 2 . 0 , Ġ 1 . 0 , Ġ 2 . 0 ĊĠĠĠ Ġ) ĊĠĠĠ Ġprintln ( df . calc Cycles (" Team ", ĠlistOf (" Cargo ", Ġ" H atch "))) ĊĠĠĠ Ġprintln ( df . calc Cycles (" Team ", ĠlistOf (" Cargo ", Ġ" H atch ", Ġ" Cli mb "))) Ċ /* ĊĠĠĠ Ġval Ġby Ġ= Ġ" Team " ĊĊĠĠĠ Ġval Ġvalues Ġ= Ġdf [ by ]. values (). toSet () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġteam Ġ-> Ġdf . filter Ġ{ Ġit [ by ] Ġeq Ġteam !! Ġ}. select If Ġ{ Ġit . name Ġ!= Ġby Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġdf Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdf . rows . map Ġ{ Ġrow Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow . values . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNumber Ġ-> Ġit . ca . warp 7 . rt . ext . form ulas . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toDouble Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprintln ( values . map Ġ{ Ġx Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( x [ 0 ]. size Ġ+ Ġ 1 Ġ<= Ġx . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġx . map Ġ{ Ġ 1 3 5 . 0 Ġ}. toDouble Array () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreg Ġ= ĠO LS Multiple Linear Regression () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreg . is No Intercept Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreg . new Sample Data ( y , Ġx ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( reg . estimate Regression Parameters (). toList (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreg . estimate Regression Parameters Standard Errors (). toList ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) */ Ċ }