Stefano Sofia
2015-Dec-10 15:41 UTC
[R] matrix which results singular but at the same time positive definite
Dear John, thank you for your considerations. This matrix (which is a variance matrix) is part of an algorithm for forward-filtering and backward-sampling of Dynamic Linear Models (West and Harrison, 1997), applied to DLM representation of ARIMA processes (Petris, Petrone, Campagnoli). It is therefore very difficult to explain why this variance matrix becomes so ill conditioned. This already happens at the first iteration of the algorithm. I will try to work on initial conditions and some fixed parameters. Thank you again Stefano ________________________________________ Da: Fox, John [jfox at mcmaster.ca] Inviato: gioved? 10 dicembre 2015 14.41 A: Stefano Sofia; r-help at r-project.org Oggetto: RE: matrix which results singular but at the same time positive definite Dear Stefano, You've already had a couple of informative responses directly addressing your question, but are you aware how ill-conditioned the matrix is (one of the responses alluded to this)?> kappa(X, exact=TRUE)[1] 7.313338e+12> eigen(X)$values[1] 4.964711e+00 9.356881e-01 4.863392e-12 6.788344e-13 Two of the variables have variances around 10^0 and the other two around 10^-12. Of course, you haven't said anything about the context, but does it really make sense to analyze the data on these scales? Best, John ----------------------------- John Fox, Professor McMaster University Hamilton, Ontario Canada L8S 4M4 Web: socserv.mcmaster.ca/jfox> -----Original Message----- > From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Stefano Sofia > Sent: December 10, 2015 5:08 AM > To: r-help at r-project.org > Subject: [R] matrix which results singular but at the same time positive definite > > Dear list users, > through the "matrixcalc" package I am performing some checks of variance > matrices (which must be positive definite). > In this example, it happens that the matrix A here reported is singular but > positive definite. Is it possible? > > [,1] [,2] [,3] [,4] > [1,] 1.904255e-12 -1.904255e-12 -8.238960e-13 -1.240294e-12 [2,] - > 1.904255e-12 3.637979e-12 1.364242e-12 1.818989e-12 [3,] -8.238960e-13 > 1.364242e-12 4.809988e+00 7.742369e-01 [4,] -1.240294e-12 1.818989e-12 > 7.742369e-01 1.090411e+00 > > print(is.non.singular.matrix(A, tol = 1e-18)) FALSE print(is.positive.definite(A, > tol=1e-18)) TRUE > > Is there something wrong with this matrix? > Any comment will be appreciated. > Stefano > > > ________________________________ > > AVVISO IMPORTANTE: Questo messaggio di posta elettronica pu? contenere > informazioni confidenziali, pertanto ? destinato solo a persone autorizzate alla > ricezione. I messaggi di posta elettronica per i client di Regione Marche > possono contenere informazioni confidenziali e con privilegi legali. Se non si ? il > destinatario specificato, non leggere, copiare, inoltrare o archiviare questo > messaggio. Se si ? ricevuto questo messaggio per errore, inoltrarlo al mittente > ed eliminarlo completamente dal sistema del proprio computer. Ai sensi > dell?art. 6 della DGR n. 1394/2008 si segnala che, in caso di necessit? ed > urgenza, la risposta al presente messaggio di posta elettronica pu? essere > visionata da persone estranee al destinatario. > IMPORTANT NOTICE: This e-mail message is intended to be received only by > persons entitled to receive the confidential information it may contain. E-mail > messages to clients of Regione Marche may contain information that is > confidential and legally privileged. Please do not read, copy, forward, or store > this message unless you are an intended recipient of it. If you have received > this message in error, please forward it to the sender and delete it completely > from your computer system. > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting- > guide.html > and provide commented, minimal, self-contained, reproducible code.________________________________ AVVISO IMPORTANTE: Questo messaggio di posta elettronica pu? contenere informazioni confidenziali, pertanto ? destinato solo a persone autorizzate alla ricezione. I messaggi di posta elettronica per i client di Regione Marche possono contenere informazioni confidenziali e con privilegi legali. Se non si ? il destinatario specificato, non leggere, copiare, inoltrare o archiviare questo messaggio. Se si ? ricevuto questo messaggio per errore, inoltrarlo al mittente ed eliminarlo completamente dal sistema del proprio computer. Ai sensi dell?art. 6 della DGR n. 1394/2008 si segnala che, in caso di necessit? ed urgenza, la risposta al presente messaggio di posta elettronica pu? essere visionata da persone estranee al destinatario. IMPORTANT NOTICE: This e-mail message is intended to be received only by persons entitled to receive the confidential information it may contain. E-mail messages to clients of Regione Marche may contain information that is confidential and legally privileged. Please do not read, copy, forward, or store this message unless you are an intended recipient of it. If you have received this message in error, please forward it to the sender and delete it completely from your computer system.
Fox, John
2015-Dec-10 15:52 UTC
[R] matrix which results singular but at the same time positive definite
Dear Stefano, I don't really know anything about your application, but my point is about the scaling of the variables. Can't you rescale some or all of the variables so their variances aren't so different? For example, the correlation matrix among these four variables isn't ill-conditioned. Best, John> -----Original Message----- > From: Stefano Sofia [mailto:stefano.sofia at regione.marche.it] > Sent: Thursday, December 10, 2015 10:42 AM > To: Fox, John; r-help at r-project.org > Subject: RE: matrix which results singular but at the same time positive > definite > > Dear John, > thank you for your considerations. > This matrix (which is a variance matrix) is part of an algorithm for > forward-filtering and backward-sampling of Dynamic Linear Models (West > and Harrison, 1997), applied to DLM representation of ARIMA processes > (Petris, Petrone, Campagnoli). It is therefore very difficult to > explain why this variance matrix becomes so ill conditioned. This > already happens at the first iteration of the algorithm. I will try to > work on initial conditions and some fixed parameters. > > Thank you again > Stefano > > > ________________________________________ > Da: Fox, John [jfox at mcmaster.ca] > Inviato: gioved? 10 dicembre 2015 14.41 > A: Stefano Sofia; r-help at r-project.org > Oggetto: RE: matrix which results singular but at the same time positive > definite > > Dear Stefano, > > You've already had a couple of informative responses directly addressing > your question, but are you aware how ill-conditioned the matrix is (one > of the responses alluded to this)? > > > kappa(X, exact=TRUE) > [1] 7.313338e+12 > > > eigen(X)$values > [1] 4.964711e+00 9.356881e-01 4.863392e-12 6.788344e-13 > > Two of the variables have variances around 10^0 and the other two around > 10^-12. Of course, you haven't said anything about the context, but does > it really make sense to analyze the data on these scales? > > Best, > John > > ----------------------------- > John Fox, Professor > McMaster University > Hamilton, Ontario > Canada L8S 4M4 > Web: socserv.mcmaster.ca/jfox > > > > > > -----Original Message----- > > From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of > Stefano Sofia > > Sent: December 10, 2015 5:08 AM > > To: r-help at r-project.org > > Subject: [R] matrix which results singular but at the same time > positive definite > > > > Dear list users, > > through the "matrixcalc" package I am performing some checks of > variance > > matrices (which must be positive definite). > > In this example, it happens that the matrix A here reported is > singular but > > positive definite. Is it possible? > > > > [,1] [,2] [,3] [,4] > > [1,] 1.904255e-12 -1.904255e-12 -8.238960e-13 -1.240294e-12 [2,] - > > 1.904255e-12 3.637979e-12 1.364242e-12 1.818989e-12 [3,] - > 8.238960e-13 > > 1.364242e-12 4.809988e+00 7.742369e-01 [4,] -1.240294e-12 > 1.818989e-12 > > 7.742369e-01 1.090411e+00 > > > > print(is.non.singular.matrix(A, tol = 1e-18)) FALSE > print(is.positive.definite(A, > > tol=1e-18)) TRUE > > > > Is there something wrong with this matrix? > > Any comment will be appreciated. > > Stefano > > > > > > ________________________________ > > > > AVVISO IMPORTANTE: Questo messaggio di posta elettronica pu? contenere > > informazioni confidenziali, pertanto ? destinato solo a persone > autorizzate alla > > ricezione. I messaggi di posta elettronica per i client di Regione > Marche > > possono contenere informazioni confidenziali e con privilegi legali. > Se non si ? il > > destinatario specificato, non leggere, copiare, inoltrare o archiviare > questo > > messaggio. Se si ? ricevuto questo messaggio per errore, inoltrarlo al > mittente > > ed eliminarlo completamente dal sistema del proprio computer. Ai sensi > > dell'art. 6 della DGR n. 1394/2008 si segnala che, in caso di > necessit? ed > > urgenza, la risposta al presente messaggio di posta elettronica pu? > essere > > visionata da persone estranee al destinatario. > > IMPORTANT NOTICE: This e-mail message is intended to be received only > by > > persons entitled to receive the confidential information it may > contain. E-mail > > messages to clients of Regione Marche may contain information that is > > confidential and legally privileged. Please do not read, copy, > forward, or store > > this message unless you are an intended recipient of it. If you have > received > > this message in error, please forward it to the sender and delete it > completely > > from your computer system. > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/posting- > > guide.html > > and provide commented, minimal, self-contained, reproducible code. > > ________________________________ > > AVVISO IMPORTANTE: Questo messaggio di posta elettronica pu? contenere > informazioni confidenziali, pertanto ? destinato solo a persone > autorizzate alla ricezione. I messaggi di posta elettronica per i client > di Regione Marche possono contenere informazioni confidenziali e con > privilegi legali. Se non si ? il destinatario specificato, non leggere, > copiare, inoltrare o archiviare questo messaggio. Se si ? ricevuto > questo messaggio per errore, inoltrarlo al mittente ed eliminarlo > completamente dal sistema del proprio computer. Ai sensi dell'art. 6 > della DGR n. 1394/2008 si segnala che, in caso di necessit? ed urgenza, > la risposta al presente messaggio di posta elettronica pu? essere > visionata da persone estranee al destinatario. > IMPORTANT NOTICE: This e-mail message is intended to be received only by > persons entitled to receive the confidential information it may contain. > E-mail messages to clients of Regione Marche may contain information > that is confidential and legally privileged. Please do not read, copy, > forward, or store this message unless you are an intended recipient of > it. If you have received this message in error, please forward it to the > sender and delete it completely from your computer system.
peter dalgaard
2015-Dec-10 16:09 UTC
[R] matrix which results singular but at the same time positive definite
Looks like the ill-conditioning is almost entirely due to scaling, e.g.> eigen(cov2cor(m))$values [1] 1.7234899 1.3380701 0.6619299 0.2765101 ... This is an annoyance in several parts of numerical linear algebra: Routines assume that R^n has all coordinates on a similar scale and therefore think that anything on the order of 1e-7 or so is effectively zero. Condition numbers do this too:> kappa(m)[1] 1.066582e+13> kappa(cov2cor(m))[1] 5.489243 -pd On 10 Dec 2015, at 16:41 , Stefano Sofia <stefano.sofia at regione.marche.it> wrote:> Dear John, > thank you for your considerations. > This matrix (which is a variance matrix) is part of an algorithm for forward-filtering and backward-sampling of Dynamic Linear Models (West and Harrison, 1997), applied to DLM representation of ARIMA processes (Petris, Petrone, Campagnoli). It is therefore very difficult to explain why this variance matrix becomes so ill conditioned. This already happens at the first iteration of the algorithm. I will try to work on initial conditions and some fixed parameters. > > Thank you again > Stefano > > > ________________________________________ > Da: Fox, John [jfox at mcmaster.ca] > Inviato: gioved? 10 dicembre 2015 14.41 > A: Stefano Sofia; r-help at r-project.org > Oggetto: RE: matrix which results singular but at the same time positive definite > > Dear Stefano, > > You've already had a couple of informative responses directly addressing your question, but are you aware how ill-conditioned the matrix is (one of the responses alluded to this)? > >> kappa(X, exact=TRUE) > [1] 7.313338e+12 > >> eigen(X)$values > [1] 4.964711e+00 9.356881e-01 4.863392e-12 6.788344e-13 > > Two of the variables have variances around 10^0 and the other two around 10^-12. Of course, you haven't said anything about the context, but does it really make sense to analyze the data on these scales? > > Best, > John > > ----------------------------- > John Fox, Professor > McMaster University > Hamilton, Ontario > Canada L8S 4M4 > Web: socserv.mcmaster.ca/jfox > > > > >> -----Original Message----- >> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Stefano Sofia >> Sent: December 10, 2015 5:08 AM >> To: r-help at r-project.org >> Subject: [R] matrix which results singular but at the same time positive definite >> >> Dear list users, >> through the "matrixcalc" package I am performing some checks of variance >> matrices (which must be positive definite). >> In this example, it happens that the matrix A here reported is singular but >> positive definite. Is it possible? >> >> [,1] [,2] [,3] [,4] >> [1,] 1.904255e-12 -1.904255e-12 -8.238960e-13 -1.240294e-12 [2,] - >> 1.904255e-12 3.637979e-12 1.364242e-12 1.818989e-12 [3,] -8.238960e-13 >> 1.364242e-12 4.809988e+00 7.742369e-01 [4,] -1.240294e-12 1.818989e-12 >> 7.742369e-01 1.090411e+00 >> >> print(is.non.singular.matrix(A, tol = 1e-18)) FALSE print(is.positive.definite(A, >> tol=1e-18)) TRUE >> >> Is there something wrong with this matrix? >> Any comment will be appreciated. >> Stefano >> >> >> ________________________________ >> >> AVVISO IMPORTANTE: Questo messaggio di posta elettronica pu? contenere >> informazioni confidenziali, pertanto ? destinato solo a persone autorizzate alla >> ricezione. I messaggi di posta elettronica per i client di Regione Marche >> possono contenere informazioni confidenziali e con privilegi legali. Se non si ? il >> destinatario specificato, non leggere, copiare, inoltrare o archiviare questo >> messaggio. Se si ? ricevuto questo messaggio per errore, inoltrarlo al mittente >> ed eliminarlo completamente dal sistema del proprio computer. Ai sensi >> dell?art. 6 della DGR n. 1394/2008 si segnala che, in caso di necessit? ed >> urgenza, la risposta al presente messaggio di posta elettronica pu? essere >> visionata da persone estranee al destinatario. >> IMPORTANT NOTICE: This e-mail message is intended to be received only by >> persons entitled to receive the confidential information it may contain. E-mail >> messages to clients of Regione Marche may contain information that is >> confidential and legally privileged. Please do not read, copy, forward, or store >> this message unless you are an intended recipient of it. If you have received >> this message in error, please forward it to the sender and delete it completely >> from your computer system. >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting- >> guide.html >> and provide commented, minimal, self-contained, reproducible code. > > ________________________________ > > AVVISO IMPORTANTE: Questo messaggio di posta elettronica pu? contenere informazioni confidenziali, pertanto ? destinato solo a persone autorizzate alla ricezione. I messaggi di posta elettronica per i client di Regione Marche possono contenere informazioni confidenziali e con privilegi legali. Se non si ? il destinatario specificato, non leggere, copiare, inoltrare o archiviare questo messaggio. Se si ? ricevuto questo messaggio per errore, inoltrarlo al mittente ed eliminarlo completamente dal sistema del proprio computer. Ai sensi dell?art. 6 della DGR n. 1394/2008 si segnala che, in caso di necessit? ed urgenza, la risposta al presente messaggio di posta elettronica pu? essere visionata da persone estranee al destinatario. > IMPORTANT NOTICE: This e-mail message is intended to be received only by persons entitled to receive the confidential information it may contain. E-mail messages to clients of Regione Marche may contain information that is confidential and legally privileged. Please do not read, copy, forward, or store this message unless you are an intended recipient of it. If you have received this message in error, please forward it to the sender and delete it completely from your computer system. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
Fox, John
2015-Dec-10 16:24 UTC
[R] matrix which results singular but at the same time positive definite
Dear Peter,> -----Original Message----- > From: peter dalgaard [mailto:pdalgd at gmail.com] > Sent: Thursday, December 10, 2015 11:09 AM > To: Stefano Sofia > Cc: Fox, John; r-help at r-project.org > Subject: Re: [R] matrix which results singular but at the same time > positive definite > > Looks like the ill-conditioning is almost entirely due to scaling, e.g.Yes, that's my point. Sorry I didn't make it clearer. Best, John> > > eigen(cov2cor(m)) > $values > [1] 1.7234899 1.3380701 0.6619299 0.2765101 > ... > > This is an annoyance in several parts of numerical linear algebra: > Routines assume that R^n has all coordinates on a similar scale and > therefore think that anything on the order of 1e-7 or so is effectively > zero. > > Condition numbers do this too: > > > kappa(m) > [1] 1.066582e+13 > > kappa(cov2cor(m)) > [1] 5.489243 > > > -pd > > On 10 Dec 2015, at 16:41 , Stefano Sofia > <stefano.sofia at regione.marche.it> wrote: > > > Dear John, > > thank you for your considerations. > > This matrix (which is a variance matrix) is part of an algorithm for > forward-filtering and backward-sampling of Dynamic Linear Models (West > and Harrison, 1997), applied to DLM representation of ARIMA processes > (Petris, Petrone, Campagnoli). It is therefore very difficult to > explain why this variance matrix becomes so ill conditioned. This > already happens at the first iteration of the algorithm. I will try to > work on initial conditions and some fixed parameters. > > > > Thank you again > > Stefano > > > > > > ________________________________________ > > Da: Fox, John [jfox at mcmaster.ca] > > Inviato: gioved? 10 dicembre 2015 14.41 > > A: Stefano Sofia; r-help at r-project.org > > Oggetto: RE: matrix which results singular but at the same time > positive definite > > > > Dear Stefano, > > > > You've already had a couple of informative responses directly > addressing your question, but are you aware how ill-conditioned the > matrix is (one of the responses alluded to this)? > > > >> kappa(X, exact=TRUE) > > [1] 7.313338e+12 > > > >> eigen(X)$values > > [1] 4.964711e+00 9.356881e-01 4.863392e-12 6.788344e-13 > > > > Two of the variables have variances around 10^0 and the other two > around 10^-12. Of course, you haven't said anything about the context, > but does it really make sense to analyze the data on these scales? > > > > Best, > > John > > > > ----------------------------- > > John Fox, Professor > > McMaster University > > Hamilton, Ontario > > Canada L8S 4M4 > > Web: socserv.mcmaster.ca/jfox > > > > > > > > > >> -----Original Message----- > >> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of > Stefano Sofia > >> Sent: December 10, 2015 5:08 AM > >> To: r-help at r-project.org > >> Subject: [R] matrix which results singular but at the same time > positive definite > >> > >> Dear list users, > >> through the "matrixcalc" package I am performing some checks of > variance > >> matrices (which must be positive definite). > >> In this example, it happens that the matrix A here reported is > singular but > >> positive definite. Is it possible? > >> > >> [,1] [,2] [,3] [,4] > >> [1,] 1.904255e-12 -1.904255e-12 -8.238960e-13 -1.240294e-12 [2,] - > >> 1.904255e-12 3.637979e-12 1.364242e-12 1.818989e-12 [3,] - > 8.238960e-13 > >> 1.364242e-12 4.809988e+00 7.742369e-01 [4,] -1.240294e-12 > 1.818989e-12 > >> 7.742369e-01 1.090411e+00 > >> > >> print(is.non.singular.matrix(A, tol = 1e-18)) FALSE > print(is.positive.definite(A, > >> tol=1e-18)) TRUE > >> > >> Is there something wrong with this matrix? > >> Any comment will be appreciated. > >> Stefano > >> > >> > >> ________________________________ > >> > >> AVVISO IMPORTANTE: Questo messaggio di posta elettronica pu? > contenere > >> informazioni confidenziali, pertanto ? destinato solo a persone > autorizzate alla > >> ricezione. I messaggi di posta elettronica per i client di Regione > Marche > >> possono contenere informazioni confidenziali e con privilegi legali. > Se non si ? il > >> destinatario specificato, non leggere, copiare, inoltrare o > archiviare questo > >> messaggio. Se si ? ricevuto questo messaggio per errore, inoltrarlo > al mittente > >> ed eliminarlo completamente dal sistema del proprio computer. Ai > sensi > >> dell'art. 6 della DGR n. 1394/2008 si segnala che, in caso di > necessit? ed > >> urgenza, la risposta al presente messaggio di posta elettronica pu? > essere > >> visionata da persone estranee al destinatario. > >> IMPORTANT NOTICE: This e-mail message is intended to be received only > by > >> persons entitled to receive the confidential information it may > contain. E-mail > >> messages to clients of Regione Marche may contain information that is > >> confidential and legally privileged. Please do not read, copy, > forward, or store > >> this message unless you are an intended recipient of it. If you have > received > >> this message in error, please forward it to the sender and delete it > completely > >> from your computer system. > >> > >> [[alternative HTML version deleted]] > >> > >> ______________________________________________ > >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> https://stat.ethz.ch/mailman/listinfo/r-help > >> PLEASE do read the posting guide http://www.R-project.org/posting- > >> guide.html > >> and provide commented, minimal, self-contained, reproducible code. > > > > ________________________________ > > > > AVVISO IMPORTANTE: Questo messaggio di posta elettronica pu? contenere > informazioni confidenziali, pertanto ? destinato solo a persone > autorizzate alla ricezione. I messaggi di posta elettronica per i client > di Regione Marche possono contenere informazioni confidenziali e con > privilegi legali. Se non si ? il destinatario specificato, non leggere, > copiare, inoltrare o archiviare questo messaggio. Se si ? ricevuto > questo messaggio per errore, inoltrarlo al mittente ed eliminarlo > completamente dal sistema del proprio computer. Ai sensi dell'art. 6 > della DGR n. 1394/2008 si segnala che, in caso di necessit? ed urgenza, > la risposta al presente messaggio di posta elettronica pu? essere > visionata da persone estranee al destinatario. > > IMPORTANT NOTICE: This e-mail message is intended to be received only > by persons entitled to receive the confidential information it may > contain. E-mail messages to clients of Regione Marche may contain > information that is confidential and legally privileged. Please do not > read, copy, forward, or store this message unless you are an intended > recipient of it. If you have received this message in error, please > forward it to the sender and delete it completely from your computer > system. > > > > ______________________________________________ > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/posting- > guide.html > > and provide commented, minimal, self-contained, reproducible code. > > -- > Peter Dalgaard, Professor, > Center for Statistics, Copenhagen Business School > Solbjerg Plads 3, 2000 Frederiksberg, Denmark > Phone: (+45)38153501 > Office: A 4.23 > Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com > > > > > > > >