def testWeightedModelMatrix(self): linearModel = LinearModel( self.regressorList, self.regressorNames, self.covMatrixObserv2, regressorsAreWeighted=True ) self.assertTrue(np.alltrue(linearModel.designMatrix() == self.unweightedDesignMatrix)) linearModel = LinearModel( self.regressorList, self.regressorNames, self.covMatrixObserv2, regressorsAreWeighted=False ) self.assertFalse(np.alltrue(linearModel.designMatrix() == self.unweightedDesignMatrix)) expectedWeightedDesignMatrix = np.array( [ [3.16227766e00, 4.73643073e-15], [4.23376727e-01, 2.79508497e00], [-2.67843095e-01, 3.79299210e00], [-5.45288776e-01, 4.39760881e00], [-6.78144517e-01, 4.84809047e00], [-7.46997591e-01, 5.21965041e00], [-7.83412990e-01, 5.54374745e00], [-8.01896636e-01, 5.83605564e00], [-8.09868157e-01, 6.10538773e00], [-8.11425366e-01, 6.35716086e00], ] ) self.assertTrue( np.allclose(linearModel.designMatrix(), expectedWeightedDesignMatrix, rtol=1.0e-6, atol=1.0e-08) )
def testCopyLinearModel(self): linearModel = LinearModel(self.regressorList, self.regressorNames) linearModel2 = linearModel.copy() self.assertTrue(linearModel2.nParameters() == self.nParameters) self.assertTrue(np.alltrue(linearModel2.designMatrix() == self.designMatrix)) self.assertTrue(linearModel2.regressorNames() == self.regressorNames) self.assertTrue(id(linearModel2.designMatrix()) != id(linearModel.designMatrix())) self.assertTrue(id(linearModel2.regressorNames()) != id(linearModel.regressorNames()))
def testCopyLinearModel(self): linearModel = LinearModel(self.regressorList, self.regressorNames) linearModel2 = linearModel.copy() self.assertTrue(linearModel2.nParameters() == self.nParameters) self.assertTrue(np.alltrue(linearModel2.designMatrix() == self.designMatrix)) self.assertTrue(linearModel2.regressorNames() == self.regressorNames) self.assertTrue(id(linearModel2.designMatrix()) != id(linearModel.designMatrix())) self.assertTrue(id(linearModel2.regressorNames()) != id(linearModel.regressorNames()))
def testWeightedModelMatrix(self): linearModel = LinearModel(self.regressorList, self.regressorNames, self.covMatrixObserv2, regressorsAreWeighted=True) self.assertTrue(np.alltrue(linearModel.designMatrix() == self.unweightedDesignMatrix)) linearModel = LinearModel(self.regressorList, self.regressorNames, self.covMatrixObserv2, regressorsAreWeighted=False) self.assertFalse(np.alltrue(linearModel.designMatrix() == self.unweightedDesignMatrix)) expectedWeightedDesignMatrix = np.array([[ 3.16227766e+00, 4.73643073e-15], [ 4.23376727e-01, 2.79508497e+00], [-2.67843095e-01, 3.79299210e+00], [-5.45288776e-01, 4.39760881e+00], [-6.78144517e-01, 4.84809047e+00], [-7.46997591e-01, 5.21965041e+00], [-7.83412990e-01, 5.54374745e+00], [-8.01896636e-01, 5.83605564e+00], [-8.09868157e-01, 6.10538773e+00], [-8.11425366e-01, 6.35716086e+00]]) self.assertTrue(np.allclose(linearModel.designMatrix(), expectedWeightedDesignMatrix, rtol=1.0e-6, atol=1.e-08))
def testAddLinearModel(self): linearModel = LinearModel(self.regressorList, self.regressorNames) linearModel2 = LinearModel(self.RegressorList2, self.RegressorNames2) linearModel = linearModel + linearModel2 self.assertTrue(linearModel.nParameters() == self.newnParameters) self.assertTrue(np.alltrue(linearModel.designMatrix() == self.newModelMatrix)) self.assertTrue(linearModel.regressorNames() == self.regressorNames + self.RegressorNames2) self.assertTrue(linearModel._covMatrixObserv == None) self.assertRaises(TypeError, lambda lm : lm + 1.0, linearModel) self.assertRaises(ValueError, lambda x,y : LinearModel(x,y) + LinearModel(x[:-1,:],y), self.designMatrix, self.regressorNames)
def testAddLinearModel(self): linearModel = LinearModel(self.regressorList, self.regressorNames) linearModel2 = LinearModel(self.RegressorList2, self.RegressorNames2) linearModel = linearModel + linearModel2 self.assertTrue(linearModel.nParameters() == self.newnParameters) self.assertTrue(np.alltrue(linearModel.designMatrix() == self.newModelMatrix)) self.assertTrue(linearModel.regressorNames() == self.regressorNames + self.RegressorNames2) self.assertTrue(linearModel._covMatrixObserv == None) self.assertRaises(TypeError, lambda lm: lm + 1.0, linearModel) self.assertRaises( ValueError, lambda x, y: LinearModel(x, y) + LinearModel(x[:-1, :], y), self.designMatrix, self.regressorNames, )
def testModelMatrix(self): # With a list of regressor arrays as input linearModel = LinearModel(self.regressorList, self.regressorNames) self.assertTrue(isinstance(linearModel.designMatrix(), np.ndarray)) self.assertTrue(linearModel.designMatrix().dtype == np.double) self.assertTrue(linearModel.designMatrix().shape == (self.nObservations, self.nParameters)) self.assertTrue(np.alltrue(linearModel.designMatrix() == self.designMatrix)) # With a design matrix as input linearModel = LinearModel(self.designMatrix, self.regressorNames) self.assertTrue(isinstance(linearModel.designMatrix(), np.ndarray)) self.assertTrue(linearModel.designMatrix().dtype == np.double) self.assertTrue(linearModel.designMatrix().shape == (self.nObservations, self.nParameters)) self.assertTrue(np.alltrue(linearModel.designMatrix() == self.designMatrix))
def testModelMatrix(self): # With a list of regressor arrays as input linearModel = LinearModel(self.regressorList, self.regressorNames) self.assertTrue(isinstance(linearModel.designMatrix(), np.ndarray)) self.assertTrue(linearModel.designMatrix().dtype == np.double) self.assertTrue(linearModel.designMatrix().shape == (self.nObservations, self.nParameters)) self.assertTrue(np.alltrue(linearModel.designMatrix() == self.designMatrix)) # With a design matrix as input linearModel = LinearModel(self.designMatrix, self.regressorNames) self.assertTrue(isinstance(linearModel.designMatrix(), np.ndarray)) self.assertTrue(linearModel.designMatrix().dtype == np.double) self.assertTrue(linearModel.designMatrix().shape == (self.nObservations, self.nParameters)) self.assertTrue(np.alltrue(linearModel.designMatrix() == self.designMatrix))