{"id":130,"date":"2020-03-18T20:51:10","date_gmt":"2020-03-18T19:51:10","guid":{"rendered":"https:\/\/intsight.com\/?p=130"},"modified":"2021-01-10T12:38:06","modified_gmt":"2021-01-10T11:38:06","slug":"la-distribucion-normal-multivariante","status":"publish","type":"post","link":"https:\/\/intsight.com\/index.php\/2020\/03\/18\/la-distribucion-normal-multivariante\/","title":{"rendered":"La distribuci\u00f3n normal multivariante"},"content":{"rendered":"<p><span style=\"font-variant: small-caps;\">La distribuci\u00f3n normal<\/span> multivariante es la generalizaci\u00f3n m\u00e1s inmediata de la distribuci\u00f3n normal a un espacio multidimensional. Esto es: cada vez que tiremos los dados, queremos obtener, en vez de un n\u00famero flotante, un vector de $N$ dimensiones.<\/p>\n<p>La manera m\u00e1s sencilla de definir, y a la vez explicar, esta distribuci\u00f3n es constructivamente. Primero tenemos que definir a qu\u00e9 llamaremos un \u00abvector aleatorio normal est\u00e1ndar\u00bb. Esto es simplemente un vector cuyos elementos son variables aleatorias normales independientes, cada una con media cero y varianza uno&#8230; como las que genera nuestro iterador BoxMuller de la <a href=\"https:\/\/intsight.com\/index.php\/2020\/03\/17\/la-transformacion-de-box-muller\/\" target=\"_blank\" rel=\"noopener noreferrer\">entrada anterior<\/a>.<\/p>\n<p>Ahora supongamos que $Z$ es uno de estos vectores aleatorios normales y est\u00e1ndares, que $A$ es una matriz de dimensiones compatibles con $Z$, y que $\\mu$ es un vector que, para simplificar, asumiremos que tiene las mismas dimensiones que $Z$. Entonces, los vectores aleatorios $X$ definidos mediante la siguiente ecuaci\u00f3n pertenecen a una distribuci\u00f3n normal multivariante:<br \/>\n$$<br \/>\nX = A \\times Z + \\mu<br \/>\n$$Para nosotros, los programadores, esto simplemente quiere decir que podemos generar vectores aleatorios normales multivariantes generando primero vectores gaussianos independientes y luego transform\u00e1ndolos con una multiplicaci\u00f3n matricial seguida de una suma vectorial.<\/p>\n<p>Intuitivamente, es m\u00e1s o menos claro que la suma vectorial nos sirve para mover la esperanza de la distribuci\u00f3n, pero no es tan sencillo ver para qu\u00e9 multiplicamos por una matriz. La respuesta es que as\u00ed conseguimos que las distintas dimensiones de la distribuci\u00f3n no sean independientes. La matriz $\\Sigma = A \\times A^T$ ser\u00eda entonces la matriz de covarianza entre las dimensiones de la distribuci\u00f3n.<\/p>\n<h4>Una distribuci\u00f3n muy general<\/h4>\n<p>La definici\u00f3n constructiva anterior es muy general, con toda intenci\u00f3n. De hecho, en la definici\u00f3n m\u00e1s general, los vectores $X$ y $Z$ no tienen necesariamente que tener la misma dimensi\u00f3n, y la matriz $A$ puede ser, en consecuencia, una matriz rectangular.<\/p>\n<p>De hecho, nuestra definici\u00f3n no garantiza que $\\Sigma$ sea una matriz de covarianza razonable. Para ello, todos sus elementos tendr\u00edan que ser no negativos, y los elementos de la diagonal, en particular, tendr\u00edan que ser positivos. Eso no se cumple para cualquier $A$, y cuando no se cumple, no se puede definir una funci\u00f3n de densidad para la distribuci\u00f3n. Pero cuando la matriz de covarianza est\u00e1 bien definida, ocurre algo interesante, porque la funci\u00f3n de densidad asociada se puede escribir de esta manera:<br \/>\n$$<br \/>\n{1 \\over \\sqrt{(2\\pi)^k\\vert\\Sigma\\vert}}e^{-{1\\over 2}(x &#8211; \\mu)^T \\Sigma ^{-1}(x &#8211; \\mu)}<br \/>\n$$Esta definici\u00f3n es casi id\u00e9ntica a la de una gaussiana escalar. Las diferencias son que utilizamos vectores para el argumento y la media, y que en vez de tener la varianza en el denominador de la exponencial, utilizamos la inversa de la matriz de covarianza (la variable misteriosa <em>k<\/em> del factor de escala es simplemente el n\u00famero de dimensiones de la distribuci\u00f3n).<\/p>\n<h4>Monsieur Cholesky<\/h4>\n<p>\u00bfY si partimos del extremo contrario? En vez de plantearnos la distribuci\u00f3n m\u00e1s general posible, te\u00f3ricamente, podemos partir de una funci\u00f3n de densidad ya asumida. Esto es: tenemos una distribuci\u00f3n multivariante, y ya conocemos (o podemos calcular) su media y su matriz de covarianza. Tenemos la matriz $\\Sigma$, y lo que queremos es encontrar qu\u00e9 matriz $A$ multiplicada por su traspuesta genera la matriz de covarianza&#8230;<\/p>\n<p>Permettez-moi de vous pr\u00e9senter M. Cholesky. Andr\u00e9-Louis Cholesky fue un militar y matem\u00e1tico franc\u00e9s, muerto en combate pocos meses antes de que terminase la Primera Guerra Mundial. Durante el conflicto, se dedic\u00f3 a la geodesia y, para facilitar la confecci\u00f3n de mapas, invent\u00f3 eso que ahora llamamos \u00abdescomposici\u00f3n matricial de Cholesky\u00bb, y que podemos entender intuitivamente como una forma de calcular la ra\u00edz cuadrada de una matriz.<\/p>\n<p>La descomposici\u00f3n puede aplicarse a matrices hermitianas definidas positivas; si sabemos que la matriz s\u00f3lo contiene valores reales, esto es equivalente a pedir que la matriz sea sim\u00e9trica y que la expresi\u00f3n $x^T M x$ sea estrictamente positiva para cualquier vector no nulo. Y, vaya, esto lo cumple cualquier matriz de covarianza decente. Con esta premisa, se cumple entonces que existe una matriz triangular inferior $L$ tal que $M=L \\times L^T$. Como ejemplo sencillo:<br \/>\n$$<br \/>\n\\pmatrix{1&amp;0.5\\cr 0.5&amp;1} = \\pmatrix{1&amp;0\\cr 0.5&amp;0.866} \\times \\pmatrix{1&amp;0.5\\cr 0&amp;0.866}<br \/>\n$$No voy a describir en esta entrada el algoritmo para calcular la factorizaci\u00f3n (quiz\u00e1s m\u00e1s adelante), pero es un algoritmo sencillo, que ya implementan la casi totalidad de las librer\u00edas num\u00e9ricas.<\/p>\n<p>Con todos estos elementos en la mano, ya tenemos una receta para generar vectores aleatorios normales con dimensiones correlacionadas:<\/p>\n<ol>\n<li>Necesitamos conocer o calcular tanto la media como la matriz de covarianza de la distribuci\u00f3n deseada.<\/li>\n<li>Calculamos la descomposici\u00f3n de Cholesky de la matriz de covarianza.<\/li>\n<li>Podemos entonces usar la f\u00f3rmula $X=L\\times Z + \\mu$, donde $Z$ es un vector aleatorio normal est\u00e1ndar que podemos generar con un algoritmo sencillo como el de Box-Muller o el del zigurat.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>La distribuci\u00f3n normal multivariante es la generalizaci\u00f3n m\u00e1s inmediata de la distribuci\u00f3n normal a un espacio multidimensional. Esto es: cada vez que tiremos los dados, queremos obtener, en vez de un n\u00famero flotante, un vector de $N$ dimensiones. La manera m\u00e1s sencilla de definir, y a la vez explicar, esta distribuci\u00f3n es constructivamente. Primero tenemos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":134,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[7],"tags":[17,18,14],"class_list":["post-130","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fintech","tag-cholesky","tag-covariance","tag-normal-distribution"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/intsight.com\/wp-content\/uploads\/2020\/03\/bell.png?fit=186%2C240&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/posts\/130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/comments?post=130"}],"version-history":[{"count":29,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/posts\/130\/revisions"}],"predecessor-version":[{"id":482,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/posts\/130\/revisions\/482"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/media\/134"}],"wp:attachment":[{"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/media?parent=130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/categories?post=130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/intsight.com\/index.php\/wp-json\/wp\/v2\/tags?post=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}