Пример #1
0
    def test_3SLS(self): # two equations, one endog, one instrument, same k
        y_var1 = ['HR80','HR90']
        x_var1 = [['PS80','UE80'],['PS90','UE90']]
        yend_var1 = [['RD80'],['RD90']]
        q_var1 = [['FP79'],['FP89']]
        bigy1,bigX1,bigyvars1,bigXvars1 = sur_dictxy(self.db,y_var1,x_var1)
        bigyend1,bigyendvars1 = sur_dictZ(self.db,yend_var1)
        bigq1,bigqvars1 = sur_dictZ(self.db,q_var1)
        reg = ThreeSLS(bigy1,bigX1,bigyend1,bigq1)

        dict_compare(reg.b3SLS,{0: np.array([[  6.92426353e+00],[  1.42921826e+00],[  4.94348442e-04],\
        [  3.58292750e+00]]), 1: np.array([[ 7.62385875],[ 1.65031181],[-0.21682974],[ 3.91250428]])},RTOL)
        dict_compare(reg.tsls_inf,{0: np.array([[  2.32208525e-001,   2.98191616e+001,   2.20522747e-195],\
        [  1.03734166e-001,   1.37777004e+001,   3.47155373e-043],\
        [  3.08619277e-002,   1.60180675e-002,   9.87219978e-001],\
        [  1.11319989e-001,   3.21858412e+001,   2.78527634e-227]]),\
         1: np.array([[  2.87394149e-001,   2.65275364e+001,   4.66554915e-155],\
        [  9.59703138e-002,   1.71960655e+001,   2.84185085e-066],\
        [  4.08954707e-002,  -5.30204786e+000,   1.14510807e-007],\
        [  1.35867887e-001,   2.87963872e+001,   2.38043782e-182]])},RTOL)
        np.testing.assert_allclose(reg.corr,np.array([[ 1.        ,  0.26404959],
        [ 0.26404959,  1.        ]]),RTOL)
        np.testing.assert_allclose(reg.surchow,[(4.398001850528483, 1, 0.035981064325265613),\
        (3.3042403886525147, 1, 0.069101286634542139),\
        (21.712902666281863, 1, 3.1665430446850281e-06),\
        (4.4286185200127388, 1, 0.035341101907069621)],RTOL)
Пример #2
0
    def test_3SLS_3eq_end(
            self):  #Three equations, two endogenous, three instruments
        y_var2 = ['HR60', 'HR70', 'HR80']
        x_var2 = [['RD60', 'PS60'], ['RD70', 'PS70', 'MA70'], ['RD80', 'PS80']]
        yend_var2 = [['UE60', 'DV60'], ['UE70', 'DV70'], ['UE80', 'DV80']]
        q_var2 = [['FH60', 'FP59', 'GI59'], ['FH70', 'FP69', 'GI69'],
                  ['FH80', 'FP79', 'GI79']]
        bigy2, bigX2, bigyvars2, bigXvars2 = sur_dictxy(
            self.db, y_var2, x_var2)
        bigyend2, bigyendvars2 = sur_dictZ(self.db, yend_var2)
        bigq2, bigqvars2 = sur_dictZ(self.db, q_var2)
        reg = SURlagIV(bigy2,bigX2,bigyend2,bigq2,w=self.w,name_bigy=bigyvars2,name_bigX=bigXvars2,\
               name_bigyend=bigyendvars2,name_bigq=bigqvars2,spat_diag=True,name_ds="NAT",name_w="nat_queen")

        dict_compare(reg.b2SLS,{0: np.array([[-2.36265226],[ 1.69785946],[ 0.65777251],[-0.07519173],[ 2.15755822],\
        [ 0.69200015]]), 1: np.array([[ 8.13716008],[ 3.28583832],[ 0.90311859],[-0.21702098],[-1.04365606],\
        [ 2.8597322 ],[ 0.39935589]]), 2: np.array([[-5.8117312 ],[ 3.49934818],[ 0.56523782],[ 0.09653315],\
        [ 2.31166815],[ 0.20602185]])},RTOL)
        dict_compare(reg.b3SLS,{0: np.array([[-2.33115839],[ 1.43097732],[ 0.57312948],[ 0.03474891],[ 1.78825098],\
        [ 0.7145636 ]]), 1: np.array([[ 8.34932294],[ 3.28396774],[ 0.95119978],[-0.19323687],[-1.1750583 ],\
        [ 2.75925141],[ 0.38544424]]), 2: np.array([[-5.2395274 ],[ 3.38941755],[ 0.55897901],[ 0.08212108],\
        [ 2.19387428],[ 0.21582944]])},RTOL)
        dict_compare(reg.tsls_inf,{0: np.array([[  7.31246733e-01,  -3.18792315e+00,   1.43298614e-03],\
        [  2.07089585e-01,   6.90994348e+00,   4.84846854e-12],\
        [  1.15296751e-01,   4.97090750e+00,   6.66402399e-07],\
        [  8.75272616e-02,   3.97006755e-01,   6.91362479e-01],\
        [  3.10638495e-01,   5.75669472e+00,   8.57768262e-09],\
        [  5.40333500e-02,   1.32244919e+01,   6.33639937e-40]]),\
         1: np.array([[  1.71703190e+00,   4.86264870e+00,   1.15825305e-06],\
        [  2.79253520e-01,   1.17598079e+01,   6.28772226e-32],\
        [  1.27575632e-01,   7.45596763e+00,   8.92106480e-14],\
        [  3.31742265e-02,  -5.82490950e+00,   5.71435564e-09],\
        [  2.19785746e-01,  -5.34638083e+00,   8.97303096e-08],\
        [  3.29882178e-01,   8.36435430e+00,   6.04450321e-17],\
        [  5.54968909e-02,   6.94533032e+00,   3.77575814e-12]]),\
         2: np.array([[  9.77398092e-01,  -5.36068920e+00,   8.29050465e-08],\
        [  1.67632600e-01,   2.02193222e+01,   6.61862485e-91],\
        [  1.24321379e-01,   4.49624202e+00,   6.91650078e-06],\
        [  6.94834624e-02,   1.18187957e+00,   2.37253491e-01],\
        [  1.68013780e-01,   1.30577045e+01,   5.74336064e-39],\
        [  4.16751208e-02,   5.17885587e+00,   2.23250870e-07]])},RTOL)
        np.testing.assert_allclose(reg.joinrho,
                                   (215.897034, 3, 1.54744730e-46))
Пример #3
0
    def test_3SLS_uneqK(
        self
    ):  # Three equations, unequal K, two endog variables, three instruments
        y_var2 = ['HR60', 'HR70', 'HR80']
        x_var2 = [['RD60', 'PS60'], ['RD70', 'PS70', 'MA70'], ['RD80', 'PS80']]
        yend_var2 = [['UE60', 'DV60'], ['UE70', 'DV70'], ['UE80', 'DV80']]
        q_var2 = [['FH60', 'FP59', 'GI59'], ['FH70', 'FP69', 'GI69'],
                  ['FH80', 'FP79', 'GI79']]
        bigy2, bigX2, bigyvars2, bigXvars2 = sur_dictxy(
            self.db, y_var2, x_var2)
        bigyend2, bigyendvars2 = sur_dictZ(self.db, yend_var2)
        bigq2, bigqvars2 = sur_dictZ(self.db, q_var2)
        reg = ThreeSLS(bigy2,bigX2,bigyend2,bigq2,name_bigy=bigyvars2,\
               name_bigX=bigXvars2,name_bigyend=bigyendvars2,\
               name_bigq=bigqvars2,name_ds="natregimes")

        dict_compare(reg.b2SLS,{0: np.array([[-2.04160355],[ 4.5438992 ],[ 1.65007567],[-0.73163458],\
        [ 5.43071683]]), 1: np.array([[ 17.26252005],[  5.17297895],[  1.2893243 ],[ -0.38349609],\
        [ -2.17689289],[  4.31713382]]), 2: np.array([[-7.6809159 ],[ 3.88957396],[ 0.49973258],\
        [ 0.36476446],[ 2.63375234]])},RTOL)
        dict_compare(reg.b3SLS,{0: np.array([[-1.56830297],[ 4.07805179],[ 1.49694849],[-0.5376807 ],\
        [ 4.65487154]]), 1: np.array([[ 16.13792395],[  4.97265632],[  1.31962844],[ -0.32122485],\
        [ -2.12407425],[  3.91227737]]), 2: np.array([[-6.7283657 ],[ 3.79206731],[ 0.52278922],\
        [ 0.33447996],[ 2.47158609]])},RTOL)
        dict_compare(reg.tsls_inf,{0: np.array([[  9.95215966e-01,  -1.57584185e+00,   1.15062254e-01],\
        [  2.26574971e-01,   1.79986861e+01,   1.99495587e-72],\
        [  1.60939740e-01,   9.30129807e+00,   1.38741353e-20],\
        [  1.19040839e-01,  -4.51677511e+00,   6.27885257e-06],\
        [  5.32942876e-01,   8.73427857e+00,   2.45216107e-18]]),\
         1: np.array([[  1.59523920e+000,   1.01163035e+001,   4.67748637e-024],\
        [  1.87013008e-001,   2.65898954e+001,   8.88419907e-156],\
        [  1.44410869e-001,   9.13801331e+000,   6.36101069e-020],\
        [  3.46429228e-002,  -9.27245233e+000,   1.81914372e-020],\
        [  2.49627824e-001,  -8.50896434e+000,   1.75493796e-017],\
        [  4.19425249e-001,   9.32771068e+000,   1.08182251e-020]]),\
         2: np.array([[  1.09143600e+000,  -6.16469102e+000,   7.06208998e-010],\
        [  1.27908896e-001,   2.96466268e+001,   3.74870055e-193],\
        [  1.32436222e-001,   3.94747912e+000,   7.89784041e-005],\
        [  8.81489692e-002,   3.79448524e+000,   1.47950082e-004],\
        [  1.95538678e-001,   1.26398834e+001,   1.27242486e-036]])},RTOL)
        np.testing.assert_allclose(reg.corr,np.array([[ 1.        ,  0.31819323,  0.20428789],\
       [ 0.31819323,  1.        ,  0.12492191],[ 0.20428789,  0.12492191,  1.        ]]),RTOL)
Пример #4
0
    def test_3SLS_3eq_2or(
            self):  # Second order spatial lags, no instrument lags
        y_var2 = ['HR60', 'HR70', 'HR80']
        x_var2 = [['RD60', 'PS60'], ['RD70', 'PS70', 'MA70'], ['RD80', 'PS80']]
        yend_var2 = [['UE60', 'DV60'], ['UE70', 'DV70'], ['UE80', 'DV80']]
        q_var2 = [['FH60', 'FP59', 'GI59'], ['FH70', 'FP69', 'GI69'],
                  ['FH80', 'FP79', 'GI79']]

        bigy2, bigX2, bigyvars2, bigXvars2 = sur_dictxy(
            self.db, y_var2, x_var2)
        bigyend2, bigyendvars2 = sur_dictZ(self.db, yend_var2)
        bigq2, bigqvars2 = sur_dictZ(self.db, q_var2)
        reg = SURlagIV(bigy2,bigX2,bigyend2,bigq2,w=self.w,w_lags=2,lag_q=False,\
               name_bigy=bigyvars2,name_bigX=bigXvars2,\
               name_bigyend=bigyendvars2,name_bigq=bigqvars2,\
               name_ds="NAT",name_w="nat_queen")

        dict_compare(reg.b3SLS,{0: np.array([[-2.40071969],[ 1.2933015 ],[ 0.53165876],[ 0.04883189],[ 1.6663233 ],\
        [ 0.76473297]]), 1: np.array([[ 7.24987963],[ 2.96110365],[ 0.86322179],[-0.17847268],[-1.1332928 ],\
        [ 2.69573919],[ 0.48295237]]), 2: np.array([[-7.55692635],[ 3.17561152],[ 0.37487877],[ 0.1816544 ],\
        [ 2.45768258],[ 0.27716717]])},RTOL)
        dict_compare(reg.tsls_inf,{0: np.array([[  7.28635609e-01,  -3.29481522e+00,   9.84864177e-04],\
        [  2.44756930e-01,   5.28402406e+00,   1.26376643e-07],\
        [  1.26021571e-01,   4.21879172e+00,   2.45615028e-05],\
        [  1.03323393e-01,   4.72612122e-01,   6.36489932e-01],\
        [  3.48694501e-01,   4.77874843e+00,   1.76389726e-06],\
        [  6.10435763e-02,   1.25276568e+01,   5.26966810e-36]]),\
         1: np.array([[  1.76286536e+00,   4.11255436e+00,   3.91305295e-05],\
        [  2.78649343e-01,   1.06266306e+01,   2.24061686e-26],\
        [  1.28607242e-01,   6.71207766e+00,   1.91872523e-11],\
        [  3.21721548e-02,  -5.54742685e+00,   2.89904383e-08],\
        [  2.09773378e-01,  -5.40246249e+00,   6.57322045e-08],\
        [  3.06806758e-01,   8.78644007e+00,   1.54373978e-18],\
        [  5.88231798e-02,   8.21023915e+00,   2.20748374e-16]]),\
         2: np.array([[  1.10429601e+00,  -6.84320712e+00,   7.74395589e-12],\
        [  1.81002635e-01,   1.75445597e+01,   6.54581911e-69],\
        [  1.33983129e-01,   2.79795505e+00,   5.14272697e-03],\
        [  7.56814009e-02,   2.40025154e+00,   1.63838090e-02],\
        [  1.83365858e-01,   1.34031635e+01,   5.79398038e-41],\
        [  4.61324726e-02,   6.00807101e+00,   1.87743612e-09]])},RTOL)
Пример #5
0
    def test_3SLS_3eq_end(self): #Three equations, two endogenous, three instruments
        y_var2 = ['HR60','HR70','HR80']
        x_var2 = [['RD60','PS60'],['RD70','PS70','MA70'],['RD80','PS80']]
        yend_var2 = [['UE60','DV60'],['UE70','DV70'],['UE80','DV80']]
        q_var2 = [['FH60','FP59','GI59'],['FH70','FP69','GI69'],['FH80','FP79','GI79']]
        bigy2,bigX2,bigyvars2,bigXvars2 = sur_dictxy(self.db,y_var2,x_var2)
        bigyend2,bigyendvars2 = sur_dictZ(self.db,yend_var2)
        bigq2,bigqvars2 = sur_dictZ(self.db,q_var2)
        reg = SURlagIV(bigy2,bigX2,bigyend2,bigq2,w=self.w,name_bigy=bigyvars2,name_bigX=bigXvars2,\
               name_bigyend=bigyendvars2,name_bigq=bigqvars2,spat_diag=True,name_ds="NAT",name_w="nat_queen")

        dict_compare(reg.b2SLS,{0: np.array([[-2.36265226],[ 1.69785946],[ 0.65777251],[-0.07519173],[ 2.15755822],\
        [ 0.69200015]]), 1: np.array([[ 8.13716008],[ 3.28583832],[ 0.90311859],[-0.21702098],[-1.04365606],\
        [ 2.8597322 ],[ 0.39935589]]), 2: np.array([[-5.8117312 ],[ 3.49934818],[ 0.56523782],[ 0.09653315],\
        [ 2.31166815],[ 0.20602185]])},RTOL)
        dict_compare(reg.b3SLS,{0: np.array([[-2.33115839],[ 1.43097732],[ 0.57312948],[ 0.03474891],[ 1.78825098],\
        [ 0.7145636 ]]), 1: np.array([[ 8.34932294],[ 3.28396774],[ 0.95119978],[-0.19323687],[-1.1750583 ],\
        [ 2.75925141],[ 0.38544424]]), 2: np.array([[-5.2395274 ],[ 3.38941755],[ 0.55897901],[ 0.08212108],\
        [ 2.19387428],[ 0.21582944]])},RTOL)
        dict_compare(reg.tsls_inf,{0: np.array([[  7.31246733e-01,  -3.18792315e+00,   1.43298614e-03],\
        [  2.07089585e-01,   6.90994348e+00,   4.84846854e-12],\
        [  1.15296751e-01,   4.97090750e+00,   6.66402399e-07],\
        [  8.75272616e-02,   3.97006755e-01,   6.91362479e-01],\
        [  3.10638495e-01,   5.75669472e+00,   8.57768262e-09],\
        [  5.40333500e-02,   1.32244919e+01,   6.33639937e-40]]),\
         1: np.array([[  1.71703190e+00,   4.86264870e+00,   1.15825305e-06],\
        [  2.79253520e-01,   1.17598079e+01,   6.28772226e-32],\
        [  1.27575632e-01,   7.45596763e+00,   8.92106480e-14],\
        [  3.31742265e-02,  -5.82490950e+00,   5.71435564e-09],\
        [  2.19785746e-01,  -5.34638083e+00,   8.97303096e-08],\
        [  3.29882178e-01,   8.36435430e+00,   6.04450321e-17],\
        [  5.54968909e-02,   6.94533032e+00,   3.77575814e-12]]),\
         2: np.array([[  9.77398092e-01,  -5.36068920e+00,   8.29050465e-08],\
        [  1.67632600e-01,   2.02193222e+01,   6.61862485e-91],\
        [  1.24321379e-01,   4.49624202e+00,   6.91650078e-06],\
        [  6.94834624e-02,   1.18187957e+00,   2.37253491e-01],\
        [  1.68013780e-01,   1.30577045e+01,   5.74336064e-39],\
        [  4.16751208e-02,   5.17885587e+00,   2.23250870e-07]])},RTOL)
        np.testing.assert_allclose(reg.joinrho,(215.897034,   3,   1.54744730e-46))        
Пример #6
0
    def test_3SLS_uneqK(self): # Three equations, unequal K, two endog variables, three instruments
        y_var2 = ['HR60','HR70','HR80']
        x_var2 = [['RD60','PS60'],['RD70','PS70','MA70'],['RD80','PS80']]
        yend_var2 = [['UE60','DV60'],['UE70','DV70'],['UE80','DV80']]
        q_var2 = [['FH60','FP59','GI59'],['FH70','FP69','GI69'],['FH80','FP79','GI79']]
        bigy2,bigX2,bigyvars2,bigXvars2 = sur_dictxy(self.db,y_var2,x_var2)
        bigyend2,bigyendvars2 = sur_dictZ(self.db,yend_var2)
        bigq2,bigqvars2 = sur_dictZ(self.db,q_var2)
        reg = ThreeSLS(bigy2,bigX2,bigyend2,bigq2,name_bigy=bigyvars2,\
               name_bigX=bigXvars2,name_bigyend=bigyendvars2,\
               name_bigq=bigqvars2,name_ds="natregimes")

        dict_compare(reg.b2SLS,{0: np.array([[-2.04160355],[ 4.5438992 ],[ 1.65007567],[-0.73163458],\
        [ 5.43071683]]), 1: np.array([[ 17.26252005],[  5.17297895],[  1.2893243 ],[ -0.38349609],\
        [ -2.17689289],[  4.31713382]]), 2: np.array([[-7.6809159 ],[ 3.88957396],[ 0.49973258],\
        [ 0.36476446],[ 2.63375234]])},RTOL)
        dict_compare(reg.b3SLS,{0: np.array([[-1.56830297],[ 4.07805179],[ 1.49694849],[-0.5376807 ],\
        [ 4.65487154]]), 1: np.array([[ 16.13792395],[  4.97265632],[  1.31962844],[ -0.32122485],\
        [ -2.12407425],[  3.91227737]]), 2: np.array([[-6.7283657 ],[ 3.79206731],[ 0.52278922],\
        [ 0.33447996],[ 2.47158609]])},RTOL)
        dict_compare(reg.tsls_inf,{0: np.array([[  9.95215966e-01,  -1.57584185e+00,   1.15062254e-01],\
        [  2.26574971e-01,   1.79986861e+01,   1.99495587e-72],\
        [  1.60939740e-01,   9.30129807e+00,   1.38741353e-20],\
        [  1.19040839e-01,  -4.51677511e+00,   6.27885257e-06],\
        [  5.32942876e-01,   8.73427857e+00,   2.45216107e-18]]),\
         1: np.array([[  1.59523920e+000,   1.01163035e+001,   4.67748637e-024],\
        [  1.87013008e-001,   2.65898954e+001,   8.88419907e-156],\
        [  1.44410869e-001,   9.13801331e+000,   6.36101069e-020],\
        [  3.46429228e-002,  -9.27245233e+000,   1.81914372e-020],\
        [  2.49627824e-001,  -8.50896434e+000,   1.75493796e-017],\
        [  4.19425249e-001,   9.32771068e+000,   1.08182251e-020]]),\
         2: np.array([[  1.09143600e+000,  -6.16469102e+000,   7.06208998e-010],\
        [  1.27908896e-001,   2.96466268e+001,   3.74870055e-193],\
        [  1.32436222e-001,   3.94747912e+000,   7.89784041e-005],\
        [  8.81489692e-002,   3.79448524e+000,   1.47950082e-004],\
        [  1.95538678e-001,   1.26398834e+001,   1.27242486e-036]])},RTOL)
        np.testing.assert_allclose(reg.corr,np.array([[ 1.        ,  0.31819323,  0.20428789],\
       [ 0.31819323,  1.        ,  0.12492191],[ 0.20428789,  0.12492191,  1.        ]]),RTOL)
Пример #7
0
    def test_3SLS_3eq_2or(self): # Second order spatial lags, no instrument lags
        y_var2 = ['HR60','HR70','HR80']
        x_var2 = [['RD60','PS60'],['RD70','PS70','MA70'],['RD80','PS80']]
        yend_var2 = [['UE60','DV60'],['UE70','DV70'],['UE80','DV80']]
        q_var2 = [['FH60','FP59','GI59'],['FH70','FP69','GI69'],['FH80','FP79','GI79']]

        bigy2,bigX2,bigyvars2,bigXvars2 = sur_dictxy(self.db,y_var2,x_var2)
        bigyend2,bigyendvars2 = sur_dictZ(self.db,yend_var2)
        bigq2,bigqvars2 = sur_dictZ(self.db,q_var2)
        reg = SURlagIV(bigy2,bigX2,bigyend2,bigq2,w=self.w,w_lags=2,lag_q=False,\
               name_bigy=bigyvars2,name_bigX=bigXvars2,\
               name_bigyend=bigyendvars2,name_bigq=bigqvars2,\
               name_ds="NAT",name_w="nat_queen") 

        dict_compare(reg.b3SLS,{0: np.array([[-2.40071969],[ 1.2933015 ],[ 0.53165876],[ 0.04883189],[ 1.6663233 ],\
        [ 0.76473297]]), 1: np.array([[ 7.24987963],[ 2.96110365],[ 0.86322179],[-0.17847268],[-1.1332928 ],\
        [ 2.69573919],[ 0.48295237]]), 2: np.array([[-7.55692635],[ 3.17561152],[ 0.37487877],[ 0.1816544 ],\
        [ 2.45768258],[ 0.27716717]])},RTOL)
        dict_compare(reg.tsls_inf,{0: np.array([[  7.28635609e-01,  -3.29481522e+00,   9.84864177e-04],\
        [  2.44756930e-01,   5.28402406e+00,   1.26376643e-07],\
        [  1.26021571e-01,   4.21879172e+00,   2.45615028e-05],\
        [  1.03323393e-01,   4.72612122e-01,   6.36489932e-01],\
        [  3.48694501e-01,   4.77874843e+00,   1.76389726e-06],\
        [  6.10435763e-02,   1.25276568e+01,   5.26966810e-36]]),\
         1: np.array([[  1.76286536e+00,   4.11255436e+00,   3.91305295e-05],\
        [  2.78649343e-01,   1.06266306e+01,   2.24061686e-26],\
        [  1.28607242e-01,   6.71207766e+00,   1.91872523e-11],\
        [  3.21721548e-02,  -5.54742685e+00,   2.89904383e-08],\
        [  2.09773378e-01,  -5.40246249e+00,   6.57322045e-08],\
        [  3.06806758e-01,   8.78644007e+00,   1.54373978e-18],\
        [  5.88231798e-02,   8.21023915e+00,   2.20748374e-16]]),\
         2: np.array([[  1.10429601e+00,  -6.84320712e+00,   7.74395589e-12],\
        [  1.81002635e-01,   1.75445597e+01,   6.54581911e-69],\
        [  1.33983129e-01,   2.79795505e+00,   5.14272697e-03],\
        [  7.56814009e-02,   2.40025154e+00,   1.63838090e-02],\
        [  1.83365858e-01,   1.34031635e+01,   5.79398038e-41],\
        [  4.61324726e-02,   6.00807101e+00,   1.87743612e-09]])},RTOL)