<s> import numpy as np <EOL> import numpy . testing as npt <EOL> from statsmodels . sandbox . nonparametric . kernel_extras import SemiLinear <EOL> class MyTest ( object ) : <EOL> def setUp ( self ) : <EOL> nobs = <NUM_LIT> <EOL> np . random . seed ( <NUM_LIT> ) <EOL> self . o = np . random . binomial ( <NUM_LIT:2> , <NUM_LIT> , size = ( nobs , <NUM_LIT:1> ) ) <EOL> self . o2 = np . random . binomial ( <NUM_LIT:3> , <NUM_LIT> , size = ( nobs , <NUM_LIT:1> ) ) <EOL> self . c1 = np . random . normal ( size = ( nobs , <NUM_LIT:1> ) ) <EOL> self . c2 = np . random . normal ( <NUM_LIT:10> , <NUM_LIT:1> , size = ( nobs , <NUM_LIT:1> ) ) <EOL> self . c3 = np . random . normal ( <NUM_LIT:10> , <NUM_LIT:2> , size = ( nobs , <NUM_LIT:1> ) ) <EOL> self . noise = np . random . normal ( size = ( nobs , <NUM_LIT:1> ) ) <EOL> b0 = <NUM_LIT> <EOL> b1 = <NUM_LIT> <EOL> b2 = <NUM_LIT> <EOL> self . y = b0 + b1 * self . c1 + b2 * self . c2 + self . noise <EOL> self . y2 = b0 + b1 * self . c1 + b2 * self . c2 + self . o + self . noise <EOL> self . Italy_gdp = [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> ] <EOL> self . Italy_year = [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] <EOL> self . growth = [ - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <EOL> - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , - <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , - <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , - <NUM_LIT> ] <EOL> self . oecd = [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <EOL> <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <EOL> <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] <EOL> class TestSemiLinear ( MyTest ) : <EOL> def test_basic ( self ) : <EOL> nobs = <NUM_LIT> <EOL> np . random . seed ( <NUM_LIT> ) <EOL> C1 = np . random . normal ( <NUM_LIT:0> , <NUM_LIT:2> , size = ( nobs , ) ) <EOL> C2 = np . random . normal ( <NUM_LIT:2> , <NUM_LIT:1> , size = ( nobs , ) ) <EOL> e = np . random . normal ( size = ( nobs , ) ) <EOL> b1 = <NUM_LIT> <EOL> b2 = - <NUM_LIT> <EOL> Y = b1 * C1 + np . exp ( b2 * C2 ) + e <EOL> model = SemiLinear ( endog = [ Y ] , exog = [ C1 ] , exog_nonparametric = [ C2 ] , <EOL> var_type = '<STR_LIT:c>' , k_linear = <NUM_LIT:1> ) <EOL> b_hat = np . squeeze ( model . b ) <EOL> npt . assert_allclose ( b1 , b_hat , rtol = <NUM_LIT:0.1> ) </s>
