{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from scipy.stats import norm\n", "import matplotlib.pyplot as plt\n", "from scipy.stats import pearsonr\n", "from numpy.random import poisson, lognormal\n", "from skbio.stats.composition import closure, clr\n", "from deicode.preprocessing import rclr\n", "from deicode.optspace import OptSpace\n", "from IPython.core.display import HTML\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#fix font-size\n", "HTML(\"\"\"\"\"\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Robust Aitchison and Subcompositional Coherence \n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We skip over the use of matrix completion here, but for a primer on the methodology see [here](https://github.com/asberk/matrix-completion-whirlwind/blob/master/matrix_completion_master.ipynb). The exact method used here, OptSpace can be found [here](https://arxiv.org/pdf/0906.2027.pdf)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Example from [\"A Concise Guide to Compositional Data Analysis\"](http://www.leg.ufpr.br/lib/exe/fetch.php/pessoais:abtmartins:a_concise_guide_to_compositional_data_analysis.pdf) by John Aitchison\n", "(page 21-22)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider the simple data set with $[x_1, x_2, x_3, x_4]$ features and three samples\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[100, 200, 100, 600],\n", " [200, 100, 100, 600],\n", " [300, 300, 200, 200]])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X = np.array([[100, 200, 100, 600],\n", " [200, 100, 100, 600],\n", " [300, 300, 200, 200]])\n", "X" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The full composition A is demonstrated below with $corr(x_1,x_2)=0.5$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.1, 0.2, 0.1, 0.6],\n", " [ 0.2, 0.1, 0.1, 0.6],\n", " [ 0.3, 0.3, 0.2, 0.2]])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = closure(X)\n", "A" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.49999999999999983" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pearsonr(A[:,0],A[:,1])[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's consider the subcompositon of x with $x_4$ missing so define B = $[x_1, x_2, x_3]$. We now get $corr(x_1,x_2)=-1.0$" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.25 , 0.5 , 0.25 ],\n", " [ 0.5 , 0.25 , 0.25 ],\n", " [ 0.375, 0.375, 0.25 ]])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "B = closure(X[:,:-1])\n", "B" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-1.0" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pearsonr(B[:,0],B[:,1])[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is thus incoherence of the product-moment correlation between raw components as a measure of dependence." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note, however, that the log ratio of two components remains unchanged when we move from full composition to subcomposition. For example" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-0.69314718, 0.69314718, 0. ])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.log(X[:,0])-np.log(X[:,1])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-0.69314718, 0.69314718, 0. ])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.log(X[:,:-1][:,0])-np.log(X[:,:-1][:,1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This can be further shown by the clr transform on a slightly larger dataset. We we will construct a dataset with three features all sampled in time. The first feature is lowly abundant but exponentially increasing in time. The second feature is highly abundant and constant in time. Finally, the third feature highly abundant and is stochastic in time. \n", "\n", "\n", "clr transformation is given by:\n", "\n", "$clr(\\vec{x}) = [log(\\frac{x_i}{g(\\vec{x})}) , ... , log(\\frac{x_D}{g(\\vec{x})})] = log(\\vec{x}) - \\bar{log(\\vec{x})}$\n", "\n", "where $g(\\vec{x})$ is the geometric mean of all the features.\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(100, 3)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 100\n", "t = np.linspace(1, 10, n)\n", "x1 = np.exp(t) * 0.001\n", "x2 = np.random.normal(size=n) + 100\n", "x3 = np.random.normal(size=n) * 10 + 100\n", "X = np.vstack((x1, x2, x3)).T\n", "X.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To visualize this we will plot counts by time colored by feature. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.rcParams[\"axes.labelsize\"] = 14\n", "plt.rcParams['xtick.labelsize'] = 14\n", "plt.rcParams['ytick.labelsize'] = 14\n", "plt.plot(t, x1, label='feature 1',lw=3)\n", "plt.plot(t, x2, label='feature 2',lw=3)\n", "plt.plot(t, x3, label='feature 3',lw=3)\n", "plt.legend() \n", "plt.ylabel('Counts', fontsize=22)\n", "plt.legend(prop={'size': 15})\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The full compositions A is demonstrated below with $corr(x_1,x_2)=-0.5$ while the clr equivalent A_clr is $corr(x_1,x_2)=-1.0$" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(100, 3)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A_clr = clr(X)\n", "A = closure(X)\n", "A.shape\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.37930361376953819" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pearsonr(A[:,0],A[:,-1])[0]" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.99857928315841571" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pearsonr(A_clr[:,0],A_clr[:,-1])[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's consider the subcompositon of x with $x_2$ missing so define B = $[x_1, x_3]$. We now get $corr(x_1,x_2)=-1.0$ for both B the closed matrix and B_clr the clr transformed matrix." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(100, 2)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "B_clr = clr(X[:,[0,2]])\n", "B = closure(X[:,[0,2]])\n", "B.shape" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.99999999999999978" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pearsonr(B[:,0],B[:,1])[0]" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-1.0" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pearsonr(B_clr[:,0],B_clr[:,1])[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Indeed, clr is compositionally coherent and performs the same on sub-samples of the data. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now consider the problem where the matrix has missing values, that are typically coerced to zero values. Here we will generate A which is the same as the X we constructed above (but with more features) and then we will construct B which will be only ~77% filled in (the missing values converted to zero). " ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(200, 9000)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 200\n", "t = np.linspace(1, 10, n)\n", "x1 = np.exp(t) * 0.001\n", "x2 = np.random.normal(size=n) + 100\n", "x3 = np.random.normal(size=n) * 10 + 100\n", "A = np.vstack((np.vstack((x1, x2, x3) for x_ in range(3000)))).T\n", "# subsample\n", "mu = A.sum(axis=0)/1.5 * closure(A.T).T\n", "B = np.vstack([poisson(lognormal(np.log(mu[:, i]), 1))\n", " for i in range(A.shape[1])]).T.astype(float)\n", "#how dense?\n", "B.shape\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we see in A that the plot is the same as above." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(t, A[:,0], label='feature 1',lw=3)\n", "plt.plot(t, A[:,1], label='feature 2',lw=3)\n", "plt.plot(t, A[:,2], label='feature 3',lw=3)\n", "plt.legend() \n", "plt.ylabel('Counts', fontsize=22)\n", "plt.legend(prop={'size': 15})\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Indeed, we can check the density of B and see that is is missing values." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7876222222222222" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.count_nonzero(B)/(B.shape[0]*B.shape[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, the plot now looks very different even with only ~22% of the data missing." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(t, B[:,0], label='feature 1',lw=3)\n", "plt.plot(t, B[:,1], label='feature 2',lw=3)\n", "plt.plot(t, B[:,2], label='feature 3',lw=3)\n", "plt.legend() \n", "plt.ylabel('Counts', fontsize=22)\n", "plt.legend(prop={'size': 15})\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we will see if the compositional coherent properties of the clr transform hold in this case. In order to take the clr transform of B we must add a pseudo count of 1." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "A_ = clr(A)\n", "B_ = clr(B[:,:-1]+1)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.99815684834238105" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pearsonr(A_[:,0],A_[:,1])[0]" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.21645965322979133" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pearsonr(B_[:,0],B_[:,1])[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that indeed the pseudo count does not retain the coherent result we saw earlier. This is evident that A has $corr(x_1,x_2)=-1.0$ while B does not.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we will try this using a robust-clr transform, given by:\n", "\n", "$rclr(\\vec{x}) = [log(\\frac{x_i}{g(\\vec{x})}) , ... , log(\\frac{x_D}{g(\\vec{x})})] = log(\\vec{x_{ij}}) - \\bar{log(\\vec{x_j})} - \\bar{log(\\vec{x_j})}$\n", "\n", "where $$g(\\vec{x}) = (\\prod_{i\\varepsilon\\Omega_{x}} x_i)^{1/\\Omega_{x}} $$ \n", "\n", "and $\\Omega_x$ is the is the set of observed features in sample x and $g_r(x)$ is the geometric mean only defined on observed features. \n", "\n", "followed by matrix completion, given by the following objective function where $Y=rclr(\\vec{x})$:\n", "\n", "\n", "$$ min_{u,v}|\\Lambda(Y-UsV^{T})|_{2}^{2} $$\n", "\n", "where U and V are the matrices that are trying to be estimated and S is analogous to a matrix of eigenvalues. Y is the observed values and $\\Lambda$ is a function such that the errors between Y and USV are only computed on the nonzero entries.\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "scrolled": true }, "outputs": [], "source": [ "A_ = rclr().fit_transform(A)\n", "U,s,V = OptSpace().fit_transform(A_)\n", "A_ = np.dot(np.dot(U,s),V.T)\n", "\n", "B_ = rclr().fit_transform(B[:,:-1])\n", "U,s,V = OptSpace().fit_transform(B_)\n", "B_ = np.dot(np.dot(U,s),V.T)\n" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.99815684834238383" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pearsonr(A_[:,0],A_[:,1])[0]" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.98120078757287899" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pearsonr(B_[:,0],B_[:,1])[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This reconstructs the trend we saw before where B is again compositionally coherent even with sparsity with approximately ~ $corr(x_1,x_2)=-1.0$. Indeed, in this toy example we are able to approximate A with the robust clr transform in combination with matrix completion. We can show that this even holds for very small subsets of the features." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "scrolled": true }, "outputs": [], "source": [ "num_features = []\n", "corr_ = []\n", "for i in np.linspace(1,int(B.shape[1]/1.2),5):\n", " i = int(i)\n", " num_features.append(B[:,:-(i+1)].shape[1])\n", " B_ = rclr().fit_transform((B[:,:-(i+1)]))\n", " U,s,V = OptSpace().fit_transform(B_)\n", " B_ = np.dot(np.dot(U,s),V.T)\n", " corr_.append(pearsonr(B_[:,0],B_[:,1])[0])\n", " " ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(num_features[::-1],\n", " corr_[::-1], lw=5)\n", "plt.ylim(0,-2)\n", "plt.xlabel('Number of features', fontsize=22)\n", "plt.ylabel('$corr(x_1,x_2)$', fontsize=22)\n", "plt.show()\n", "\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.5" } }, "nbformat": 4, "nbformat_minor": 2 }