{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Structured sparsity in high-dimensional data\n", "\n", "This notebook illustrates the point of using structured sparsity in high-dimensional data.\n", "\n", "It is the basis of my talk at dotAI on May 28, 2018. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "prop_cycle = plt.rcParams['axes.prop_cycle']\n", "def_colors = prop_cycle.by_key()['color']" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "plt.rc('font', **{'size': 24})" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# To plot on dark background (for slides)\n", "plt.style.use('dark_style.mplstyle')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the StructuredSparsityDataGeneration.ipynb notebook, I have simulated data with 1000 features and only 150 observations.\n", "\n", "The features are binary (as motivated by GWAS data).\n", "\n", "I am also assuming a network structure on the features, captured by the adjacency matrix W. The network is built as a collection of fully connected subnetworks of 10 features, each connected to the next. One module is causal, meaning that the outcome y of interest is generated as a linear combination of the features of that module." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "num_feats = 1000\n", "num_obsvs = 150\n", "\n", "mod_size = 10\n", "\n", "num_causl = 10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load generated data" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "data_rep = 'data/struct_spars'\n", "X_fname = '%s/X.data' % data_rep\n", "y_fname = '%s/y.data' % data_rep\n", "W_fname = '%s/W.data' % data_rep\n", "causl_fname = '%s/causl.data' % data_rep\n", "wghts_fname = '%s/w_causl.data' % data_rep" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "X = np.loadtxt(X_fname, dtype='int')\n", "y = np.loadtxt(y_fname)\n", "W = np.loadtxt(W_fname)\n", "causl = list(np.loadtxt(causl_fname, dtype='int'))\n", "w_causl = np.loadtxt(wghts_fname)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Train-test split" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "from sklearn import model_selection" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "X_train, X_test, y_train, y_test = \\\n", " model_selection.train_test_split(X, y, test_size=0.3, random_state=17)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### True model " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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6zWn06mvv/5a06ZN03//938rJiZGd955pxYsWNCs7wkA0Db6dqnUa0MOKcTf9NimLrCYen3oIU3d1JuAAgCtwPJY9eHDh3X48OFW33krMzNTkpSTk+MOJmdyTRlLTk5WXFxco+/742ByplOnTunzzz933xcA0P4F2JxaPLiwwWByphB/U4sHFyrA5mzhygAAlk+IHz16dEvU0aDQ0FB3ONi0aVO9bXbu3KmysjJFRERo4MCBKigoaJZnl5SUSJJsNuYcA0BHMKKHXf5G44KJi79h6toedmUXNv4AYgCAdZbDSVuIj493h4P8/Px625imqYKCAqWmpiohIaHZnn3llVdKkvLy8hps9+yzz+rCCy9UcHCwTp48qd27d+vDDz90j7wAAHzDpMST7jUmjRUWYGpy4knCCQC0sHYRTrp16+b+ur4pXT++dmb7prjqqquUkpIiSfr4448bbJuSkiK73S6Hw6Hu3bure/fuysjI0N/+9jc99thjcjgczVITAMB7NplKiKj2qm9CRLVsMtlmGABakNfh5KKLLtK4ceN05ZVXqlevXgoLCzvvDl6maWrIkCGWnxUc/MMixIa25a2srJQkhYSEWH7Gj8XGxurRRx+VJH322Wcep5N9/PHHysnJ0a5du2S32yVJcXFxmjRpkkaPHq3rrrtOZWVlevrppz0+a+zYsRo7dqwkKTo6usm1AwDqF+LvVK35w65cVtSadf3LHX7NXxgAQJKX4eSWW27RzJkz5e/v36gthdubkJAQPf/884qJiVFRUVGDu3TNnz//nNcKCgq0YMECnTp1ShMnTtSYMWP09ttve1wHs2bNGq1Zs0aStGzZsuZ5EwCAc1Q4bPLz8seWn1HXHwDQciyHkwEDBujhhx92/33Xrl3as2ePSkpKzjmssbm4RkSkuvNOTp8+XW871whLRUWF188KDAzUCy+8oJSUFJ04cUIzZsxwL4q36o033tBtt92m4OBgpaWlNdsifQCAd5wylF8WqKRI61O78ssCmdIFAC3Mcji56667JEllZWV66KGHGtyKt7mcuc4kNjbW4y/5sbGxkqRjx4559Rx/f3/9/ve/16BBg1RaWqrp06c3KVBUVlYqLy9PKSkp6tWrl9f3AQA0n6V50Xok9YilRfHlNYaW5DHtFgBamuXx6ZSUFJmmqT//+c+tEkwk6eDBg3I66/aX97QT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yaioqGjxmqQf6mpMTZI4KR4AAABogOXdunr06KEePXooICCgJeqp15nrNmJjYz22c11rrdPYXXU1piap9eoCAAAA2iOP4cS1jiIyMrLVivHk4MGDcjqdkuRxJy7DMNznmzS0e1Zzcj2nod3B4uPjJUknTpxgMTwAAADQAI/hpKioSJJ84mTz06dPa8+ePZKkwYMH19smNTVVERERkqQtW7a0Sl2uE+8TEhIUExNTb5shQ4a0ak34/+3de1yUZeL///cAchpUENBEOuAhPyhWhpKbkkWtaak/DyWa66Ey0yQ3a6n9tGtZ7SFzrczIZNuPma6HVcs0K9vMUitFtFbUBPPUekpAQBgOAjPfP/jNHcgAM3hggNfz8ejhMPd13fc191zBvOe+r+sCAABAY1XjgPivv/5aERERGjdunHr37q1jx46prKzM2D516lQVFBS4dDCbzaaXXkv5Q3AAACAASURBVHqpXg399NNP1b17dw0cOFB///vflZ2dXWX7uHHjJEn79++v92KPrkpJSVF2draCg4P1m9/8RvPmzauyvUuXLoqJiZEkffLJJ1ekTQAAAEBjVWM4WbRokfr376+rr75akZGR+p//+R9jm8lkUv/+/V06kMlkuqhw8v7772vMmDEKCwvT66+/rueee05HjhyRv7+/Jk2apLi4OElSUlJStbqpqamSpOTkZCUnJ1fb3rJlS2ORx8rMZrNat25t/FxQUKDy8nLj59LSUiUnJ+t///d/9cADDygrK0v/+te/VFpaqh49euill16Sp6envv/+e23btq1erxsAAABoLmoMJ/n5+Ro/frxGjRql3r17q23btmrRooXat28vm82mrKysKldSLreSkhI99dRTWrBggSIjI7Vq1SoVFBTIz89Pnp6eslqtSkpK0o4dO1ze9z//+U+FhYVVe/7ll1+u8vOjjz5q3Mplt2bNGnXt2lUjRozQjBkzlJCQoPPnz8tsNkuSjh8/rt///vcutwkAAABobmpdhNFisWjRokVatGiR8VxKSookKSEh4YqvbXLw4EHFx8dr4sSJio2NVWhoqPLy8rRv3z4tW7aswcZ1/OUvf1FKSopGjhyp66+/Xj4+Pjpy5Ii++OILLV68mCmEAQAAACdc1ArxDSE7O1tz587V3Llzna7Tq1evWrcPHTr0Ypulzz//XJ9//vlF7wcAAABorlwO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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(12, 8))\n", "\n", "plt.scatter(range(num_feats), # x = SNP position\n", " np.zeros(shape=(num_feats, )), # weight = 0 \n", " s=200) # marker size\n", "\n", "# Plot the causal SNPs in red\n", "plt.scatter(causl, w_causl, s=200)\n", "\n", "plt.xlabel(\"feature\", fontsize=28)\n", "plt.ylabel(\"true feature weight\", fontsize=28)\n", "plt.xlim([0, num_feats])\n", "\n", "plt.savefig('structured_sparsity/causl_weight.png', bbox_inches='tight')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(45,)\n" ] } ], "source": [ "y_pred = np.dot(X_test[:, causl], w_causl)\n", "print y_pred.shape" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "from sklearn import metrics" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "rmse = np.sqrt(metrics.mean_squared_error(y_test, y_pred))" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(6, 6))\n", "\n", "plt.scatter(y_test, y_pred)\n", "\n", "plt.xlabel(\"y = Xw\", fontsize=18)\n", "plt.ylabel(\"y = Xw + noise\", fontsize=18)\n", "plt.xlim([np.min(y_test)-0.05, np.max(y_test)+0.05])\n", "plt.ylim([np.min(y_test)-0.05, np.max(y_test)+0.05])\n", "\n", "plt.text(0, 0.6, 'RMSE = %.2f' % rmse)\n", "\n", "plt.savefig('structured_sparsity/true_pred.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## T-test" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "import statsmodels.api as sm" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "pvalues = []\n", "for feat_idx in range(num_feats):\n", " myX = X_train[:, feat_idx]\n", " myX = sm.add_constant(myX)\n", " est = sm.regression.linear_model.OLS(y_train, myX)\n", " est2 = est.fit()\n", " pvalues.append(est2.pvalues[1])\n", "pvalues = np.array(pvalues)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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ILJsJxCS9MQTTyg5OVlXX321Bg8erMGDB8s0TUnSnXfeWX+cYRiSpFdeeUUvvviiC+ECAAAAiCZHCYQkPfroo/r44491/fXXa8CAAfJ4jp8NZZqmvvzySz333HP6/PPPQw4UAAAAQPQ5TiAkadmyZVq2bJlSU1OVl5enVq1ayePx6NChQ1q/fr1KSkrcihMAAABADAgpgahTUVGhlStXunEpAAAAADHMdhUmAAAAAC0XCQQAAAAAy2xPYbr33nsd38w0TT3wwAOOzwcAAAAQXbYTiIKCgvqSrXYYhkECAQAAAMQ52wnEnj17TplApKSk6LTTTpNUO+pw6NAhHTlyxFmEAAAAAGKG7QRi7Nixlo7LysrS6NGjdcstt+jw4cO6/fbbtX37dtsBAgAAAIgdYVtEXVJSojlz5ugXv/iFWrdurb/97W9KS0sL1+0AAAAAREDYqzBt2rRJr7/+ujp06KBrrrkm3LcDAAAAEEYRKeP62WefSZJGjBgRidsBAAAACJOIJBBlZWWSpLZt20bidgAAAADCJCIJROfOnSVJwWAwErcDAAAAECZhTyAyMzN10003yTRNbd68Ody3AwAAABBGtsu49uvX75THeDweZWRkqFevXho7dqxatWol0zT1zjvvOAoSAAAAQGywnUA888wztnaiNgxDkrR48WK9/fbbdm8HAAAAIIbYTiCk75MCKzZs2KA5c+Yw+gAAAAA0A7YTiEmTJp3ymGAwqIqKCu3cuVPl5eWOAgMAAAAQe2wnECtWrAhHHAAAAADiQETKuAIAAABoHkggAAAAAFhGAgEAAADAskbXQDz99NOu38w0TU2ePNn16wIAAACIjEYTiAEDBsg0TVslWxtTdx07+0cAAAAAiD2NJhArV66kwQ8AAADgOI0mELfccksk4wAAAAAQB1hEDQAAAMAyEggAAAAAlpFAAAAAALCs0TUQdng8HmVkZCg5OfmUxxYXF7txSwAAAABR4DiByMrK0rhx43TxxRerS5culsq9mqapQYMGOb0lAAAAgChzlECce+65euSRR5Sdne3KPhEAAAAA4oPtBCIrK0szZ85UVlaWKioq9Pbbb+vw4cO6+eabZZqm/vCHPygzM1O9evXSRRddpMTERH355Zd6++23wxE/AAAAgAiynUBcffXVysrKUnV1tW688UZt3rxZXbp00c033yxJmjt3bv2xOTk5evDBB9WvXz+tXr1ajz/+uHuRAwAAAIg421WYLrzwQpmmqXfeeUebN29u8tj9+/dr6tSp2rFjh6699loNHDjQcaAAAAAAos92AtGxY0dJ0rJly+p/Z5rm9xf0HH/JqqoqvfbaazIMQ1dddZXTOAEAAADEANsJRFpamiRp9+7d9b+rrq6u/zk1NfWkc77++mtJUp8+fWwHCAAAACB22E4gKioqJEk+3/fLJ0pKSup/bt++/UnnJCYmSpKys7NtBwgAAAAgdthOIHbs2CFJatu2bf3vysrKtH//fklqcJ1Dfn6+JOnIkSOOggQAAAAQG2wnEGvWrJEk9erV67jff/rppzIMQxMmTKhfJyHVTlu67rrrZJqm1q5dG2K4AAAAAKLJdgJRlyj88Ic/PO73r776qgKBgLKzs/X666/rxRdf1Ouvv67nnntOGRkZkqTZs2e7EzUAAACAqHCUQMybN09r1qw5br3Dpk2b9Kc//UnBYFBer1c9e/ZUbm5ufVWmv//97/r000/dixwAAABAxNneSC4QCGjGjBkNPvb2229r1apVKigoUNeuXeX1erVt2za999579ZWYou2ss87S1VdfrUGDBumMM85QIBDQ3r17tXr1ar377rtasWJFtEMEAAAAYpbtBOJUtm7dqieffNLty7pi3Lhxmjp1an1VqPLycvl8PnXu3FmdO3dWMBgkgQAAAACa4HoCEauuvPJK3XXXXQoEAnrhhRf0xhtvqLi4WJKUk5OjH/zgB8eVpgUAAABwMtst5qlTp+q9997Thg0bwhFPWLRr10633367JOmPf/yj3nrrreMe379/v957771ohAYAAADEFdsJxDXXXKP/+q//0pYtW/Tee+9pwYIF9T35sepnP/uZUlJStHr16pOSBwAAAADW2a7CZJqmDMNQ586dNXnyZL399tt65pln9OMf/1hpaWnhiDFko0aNkiQtXLgwypEAAAAA8c32CERBQYFGjRqlMWPGqHv37jIMQ/n5+crPz9ddd92lTz75RPPnz9fHH3+sQCAQjpht6dChg3JyciRJRUVF6tOnj2688Uade+65Sk5O1p49e/Txxx/r5Zdf1sGDB6McLQAAABDbbCcQe/fu1SuvvKJXXnlFXbp00ZgxYzRq1Ci1bdtWiYmJGjZsmIYNG6aysjItXrxYCxYsiGplo06dOtX/PGDA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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(12, 8))\n", "\n", "plt.scatter(range(num_feats), # x = SNP position\n", " -np.log10(pvalues), # y = -log10 p-value \n", " s=200) \n", "\n", "# Plot the causal SNPs in red\n", "plt.scatter(causl, \n", " -np.log10(pvalues[causl]),\n", " color=def_colors[1], s=200)\n", "\n", "# significance threshold according to Bonferroni correction\n", "t = -np.log10(0.05/num_feats)\n", "plt.plot([0, num_feats], [t, t], lw=4, c='w')\n", "\n", "plt.xlabel(\"feature\", fontsize=28)\n", "plt.ylabel(\"-log10 p-value\", fontsize=28)\n", "plt.xlim([0, num_feats])\n", "\n", "plt.savefig('structured_sparsity/t_test.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Only one causal feature was identified as significant. Even increasing the significance level (or using a less stringent correction for multiple hypothesis testing) would not rescue the 9 other causal features." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Validation \n", "\n", "What is the significance of the true SNPs on the test set?" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python2.7/dist-packages/statsmodels/base/model.py:1100: RuntimeWarning: invalid value encountered in divide\n", " return self.params / self.bse\n", "/home/chagaz/.local/lib/python2.7/site-packages/scipy/stats/_distn_infrastructure.py:875: RuntimeWarning: invalid value encountered in greater\n", " return (self.a < x) & (x < self.b)\n", "/home/chagaz/.local/lib/python2.7/site-packages/scipy/stats/_distn_infrastructure.py:875: RuntimeWarning: invalid value encountered in less\n", " return (self.a < x) & (x < self.b)\n", "/home/chagaz/.local/lib/python2.7/site-packages/scipy/stats/_distn_infrastructure.py:1814: RuntimeWarning: invalid value encountered in less_equal\n", " cond2 = cond0 & (x <= self.a)\n" ] } ], "source": [ "pvalues = []\n", "for feat_idx in causl:\n", " myX = X_test[:, feat_idx]\n", " myX = sm.add_constant(myX)\n", " est = sm.regression.linear_model.OLS(y_test, myX)\n", " est2 = est.fit()\n", " pvalues.append(est2.pvalues[1])\n", "pvalues = np.array(pvalues)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0, 1000)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZgAAAEXCAYAAACQ3VJYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAHaNJREFUeJzt3XuYHVWZ7/HvDwgQbgE04kCIIcAotzBKzhkVz0kgKOIjF2di0AERFBBGRVTOOA4aIYDoqDCDeAFvIDAwAZHLo4NiEHSUIB1HWhAjCQQSEQkGI5eAgbznj1Vt72x2und1V3Xt2vv3eZ79bPaq1VVvLTr77Vpr1SpFBGZmZkXbqOoAzMysOznBmJlZKZxgzMysFE4wZmZWCicYMzMrhROMmZmVwgnGzMxK4QRjZmalcIIxM7NSbFJ1ACP14he/OKZMmVJ1GGZmtbJo0aLHImLiWByrtglmypQp9PX1VR2GmVmtSHpwrI7lLjIzMyuFE4yZmZWioxKMpJskhaSzq47FzMxGp2MSjKS3A/tWHYeZmRWjIxKMpO2A84EPVR2LmZkVoyMSDPBp4O6IuLLqQMzMrBiVT1OW9DrgGNw9ZnXXPx8WzIPVK2DCJJg1F6bNqToqs8pUmmAkbQpcBHw2IhZXGYvZqPTPhxtPgbVr0ufVy9NncJKxnlV1F9k/AeOBc9qpLOlESX2S+lauXFluZGZ5LJg3mFwGrF2Tys16VGUJRtJk4HTg48BmkraVtG22eeDzxo0/ExEXR8T0iJg+ceKYrHRg1p7VK/KVm/WAKq9gpgKbA5cDjze8AE7L/nufakIzy2nCpHzlZj2gygTzC+CAFi9ISecAYEk1oZnlNGsujBu/ftm48ancrEdVNsgfEX8Ebm0ulwTwYES8YJtZxxoYyPcsMrO/qHyaslnXmDbHCcWsQcclmIhQ1TGYmdnoVT1N2czMupQTjJmZlcIJxszMSuEEY2ZmpXCCMTOzUjjBmJlZKZxgzMysFE4wZmZWCicYMzMrhROMmZmVwgnGzMxK4QRjZmalcIIxM7NSOMGYmVkpnGDMzKwUTjBmZlYKJxgzMyuFE4yZmZXCCcbMzErhBGNmZqVwgjEzs1I4wZiZWSmcYMzMrBROMGZmVgonGDMzK4UTjJmZlcIJxszMSuEEY2ZmpXCCMTOzUuRKMJI2lnSMpMsl3SzplVn5dln5TuWEaWZmdbNJuxUlbQF8H3gt8BSwBbBdtvlPwKeArwMfKzhGMzOroTxXMGcA04G3AFMBDWyIiOeBa4GDiwzOzMzqK0+CeStwcURcD6xrsX0JMKWIoMzMrP7yJJgdgbuG2P40sPXowjEzs26RJ8H8ARhqEH8v4OHRhWNmZt0iT4JZAByXDfavR9IuwLuAm4oKzMzM6i1PgjmTNGvsTuBkIIA3SjoX+DnwLHBunoNLOljSLZIekfSspBWS5kvaM89+zMys87SdYCJiCTALeA6YR5pFdhrwEWA5MCsiluc8/vbAIuB9wBuAj5K62hZKelnOfZWrfz6cvzecsW16759fdURmZh2t7ftgACJiEbCvpL2BPUhJ5r6I+J+RHDwirgSubCyT9DPg18Bs4HMj2W/h+ufDjafA2jXp8+rl6TPAtDnVxWVm1sFyJZgBEXE3cHfBsQz4Q/b+XEn7z2/BvMHkMmDtmlTuBGNm1lJHrEWWLUGzqaTdgYuAR2i6sqnU6hX5ys3MLNdSMetIA/tDiYgYyVXRHcB+2X8vAQ6MiEdHsJ9yTJiUusValZuZWUt5ksE3eWGC2QTYFfhboB/4xQjjeAewDWkJmtOAmyW9LiKWNVaSdCJwIsDkyZNHeKgRmDV3/TEYgHHjU7mZmbWkiOEuStrYifRa4AbgzRGxcJT72hZYBlwVESdtqN706dOjr69vNIfKp39+GnNZvSJducya6/EXM6sdSYsiYvpYHGtEg/zNIuKnkr4BfBqYMcp9/VHSEmC3ImIrzLQ5TihmZjkUOch/H4PjKCMmaQfgFcDSUUdkZmaVKeQKJjMTWDNcpUaSvk1aBaCf9EyZvwY+SJqi3Bn3wJiZ2YjkmUV2zAY2bQ8cBBwCfC3n8RcCc4APA5uSVgS4FTi3eYDfzMzqJc8VzCWkWWRqse05UnL5YJ6DR8SnSeM2ZmbWZfIkmANalAWwCnggIp4qJiQzM+sGbSeYiLitzEDMzKy7dMRSMWZm1n02eAUjaSS3qUdEnDWKeMzMrEsM1UV2xgj2F4ATjJmZDZlgdhmzKMzMrOtsMMFExINjGYiZmXUXD/KbmVkpci8VI2k6aXn+7XhhgvIgv5mZAfmWihkPXAu8gXQ3f+Nd/dFQ5gRjZma5usjmkpLLOaS7+gW8k7QG2Y+BO4E9iw7QzMzqKU+CmQ1cHRFzgbuzst9GxPdIi11uChxbbHhmZlZXeRLMzsDAcjHPZ++bAkTEc8CVwNuKC83MzOosT4J5gsExmyeAdcCODdtXAy8tKC4zM6u5PAlmKemBYETE88A9pG4zJAn4O9LzXMzMzHIlmB8Afy9p4+zzRcAbJS0lPS75IPI/cMzMzLpUnvtgPgVcRjY1OSK+KGlz4GjSmMxXgH8tPEIzM6ulPM+DeRJY3FR2HnBe0UGZmVn9td1FJumwhu4xMzOzIeUZg7kOeFjS+ZJeWVZAZmbWHfIkmJOBJcAHgD5J/ZI+LMlTk83M7AXaTjARcVFE7A/sBpwNbAF8Blgu6TuS5kjarKQ4zcysZnIv1x8R90fEJyJiN2AGcAnwWtKd/L8rNjwzM6ur3Mv1N4qIH0taBPQBnwYmFBKVmZnV3ogTjKSDgGOAt5C6y1YBXygoLjMzq7lcCUbSHqQl+o8irUP2HPBd4FLgOxGxtvAIzcyslvI8cKwPeCXpTv5FpC6xKyPiDyXFZmZmNaaIaK+i9FvgcuDSiPhVqVG1F097gZuZWaNFETF9LA6Up4ts54hYV1okZmbWVfKsRbZecpG0JfBh4JsRsazguIa133770dfXN9aHNTOrtfR0lbGR+z6YBlsBnwCmFhSLmZl1kdEkGMiW7jczM2s22gRjZmbWkhOMmZmVYjRLxawCDgDuKigWMzPrIiNOMNld+7cVGIuZmXWR3AlG0hzS+mMDs8fuB74dEfOLDMzMzOotzyOTt5R0M2lZ/iOB3bPXkcCVkhZk98a0u7/Zkr4l6UFJayQtlnSupK3znoSZmXWePIP85wCzgM8DO0bE9hGxPWnRy8+TxmPOybG/04DngX8B3gh8ifTUzJslefKBmVnN5ekiOxK4OiJObSyMiEeAUyXtlNU5tdUPt3BoRKxs+HybpFWklZlnArfkiM3MzDpMniuFbYAfDrH9lqxOW5qSy4A7s/edcsRlZmYdKE+C6SeNuWzI7sAvRxcOM7L3e0e5HzMzq1ieBPMx4ARJhzZvkHQ4cDxpPGVEsi62ecAPIsKrWHaa/vlw/t5wxrbpvd+TBs1saHnGYI4CHgCuk7SYwauMPYCXk65ejpZ0dMPPRES8e7gdS9oKuJ70hMzjhqh3InAiwOTJk3OEbqPSPx9uPAXWrkmfVy9PnwGmzakuLjPraHkeODaSZ8FERGw8zH7Hkx67vC8wIyLa6mabPn16eLn+MXL+3impNJuwM3zw7rGPx8xGTFLnPXAsIgqfOixpHHANMB14fbvJxcbY6hX5ys3MqHCxy+xelyuAA4EjImJhVbHYMCZMylduZka1qyl/AXgr8DngKUmvbnj5m6uTzJoL48avXzZufCo3M9uAKhPMIdn76cDtTa/jqwrKWpg2Bw69II25oPR+6AUe4DezIY1muf5RiYgpVR3bRmDaHCcUM8vFa36ZmVkpnGDMzKwUTjBmZlaKtsdgJL0E2I+0EOUWwNPAb4FFEfFoOeGZmVldDZtgJO1Fmkp8EKDsNSCAkLQA+HBE+LZuMzMDhkkwkvYFfkxKJJcAC0lXLc8Am5OuZl4DzAZ+Kun/RMRdZQZsZmb1MNwVzKeA35PWCHt4A3W+KunjwI+Ac4E3FRifmZnV1HCD/K8FLhwiuQCQbb8Q2L+owMzMrN6GSzAidY+1I1h/fMbMzHrYcAnmZ8D7Jb10qErZ9vcDdxQVmJmZ1dtwYzCnA7cCv5Y0n8FB/meBzRgc5H9r9vmo0iI1M7NaGTLBRMQdkg4ALiAtQHk863eZDXSJ9QEfiAhfwZiZGdDGfTDZc1r+t6Rdgf8F7MjgjZYPA3dGxNJSozQzs9rJ80TLpYATiZmZtcVrkZmZWSkKSzCSjpZ0S1H7MzOzeivyCuZlwIwC92dmZjXmLjIzMyvFcItd3p9jXxNGGYuZmXWR4WaRTQEeJ01HHs4Wo47GzMy6xnAJ5gFgSUQcPNyOJH0MOLOQqMzMrPaGG4NZBLyqzX21uyimmZn1gOESzP8AL5I0pY19PUh6JoyZmdnQCSYizo2IjSJi2XA7iojLI+KAwiIzM7Na8zRlMzMrhROMmZmVou3FLiUdM0yVANYADwE/j4jnRhOYmZnVW9sJBriE1s+CaS4L4A+STo+Ir4wuPDMzq6s8Ceb1wKeA7YEvA4uz8lcA7wEeA84FdgXeC3xZ0qqI+FZx4ZqZWV3kSTD7kx6LvE9EPN1QfoOkLwK3A3tHxNmSLgLuAj4EOMGYmfWgPIP87wYubUouAETEk6QutOMbPn8T2KeAGM3MrIbyJJiXABsPsX0TYIeGzw+T7wrJzMy6SJ4E8xvg3ZK2ad4gaQLpCmdxQ/EuwKOjC8/MzOoqzxXGPGA+sFjSN0gJB+DlwLGkK5w5AJI2At4G/KSwSM3MrFbaTjAR8S1J/wCcB/xz0+bfAUc3zBjbGDgEWFlIlGZmVju5xkgi4j8lXQPsR+oCA1gG9EXE8w311rJ+d5mZmfWY3IPwWSL5WfYyMzNrKXeCkbQrcDgwNSu6H7g+IpaOYF+TgI8A04F9gfHALu2s3mxWW/3zYcE8WL0CJkyCWXNh2pyqoxrU6fFZbeRKMJLOIo2/NE9X/ldJn4yIuTmPvxtpYsAi4MfAG3L+vFm99M+HG0+BtWvS59XL02fojC/xTo/PaqXtacqS3gWcDtwBHAHsnr2OIN3Ff7qkY3Me/0cRsUNEvAm4OufPmtXPgnmDX94D1q5J5Z2g0+OzWslzBfNeUnKZ2bRS8lJJ3yVdgbyfdEd/WyJiXY7jm9Xf6hX5ysdap8dntZLnRss9gKtaLcOflV2V1TGzDZkwKV/5WOv0+KxW8iSYPwNbDbF966xOaSSdKKlPUt/Klb7Fxmpo1lwYN379snHjU3kn6PT4rFbyJJg7gfdI2qF5g6SXACeSutBKExEXR8T0iJg+ceLEMg9lVo5pc+DQC2DCzoDS+6EXdM4AeqfHZ7WSZwzmLGABcK+krwG/ysr3Ao4jXcEcVWx4Zl1o2pzO/sLu9PisNvIsFfMjSX8HXAh8uGnzQ8A7I+LHRQZnZmb1lXepmBslfYf1l4q5H/i5Z4SZmVmjkSwVs440HnNnEQFImp39537Z+yGSVgIrI+K2Io5hZmZjrxMeCNZ8g+UXs/fbgJljG4qZmRVlgwlG0v0j2F9ExK45f0AjOI6ZmXW4oa5gHgJirAIxM7PussEEExEzxzAOMzPrMnlutDQzM2vbiBOMpG0kfV3SK4oMyMzMusNormDGA+8EdiwoFjMz6yKj7SLzDDAzM2tptAnGs8zMzKwlX8GYmVkpRnMn/0rSemSPFBSLmZl1kREnmGxNsgcLjMXMzLqI74MxM7NSOMGYmVkpnGDMzKwUTjBmZlYKJxgzMyuFE4yZmZXCCcbMzErhBGNmZqVwgjHrdf3z4fy94Yxt03v//Kojsi4xmqVizKzu+ufDjafA2jXp8+rl6TPAtDnVxWVdwVcwZr1swbzB5DJg7ZpUbjZKTjBmvWz1inzlZjk4wZj1sgmT8pWb5eAEY9bLZs2FcePXLxs3PpWbjZITjFkvmzYHDr0AJuwMKL0feoEH+K0QnkVm1uumzXFCsVL4CsbMzErhBGNmZqVwgjEz82oGpfAYjJn1Nq9mUBpfwZhZb/NqBqVxgjGz3ubVDErjBGNmvc2rGZTGCcbMeptXMyiNE4xZN/KsqPZ5NYPSeBaZWbfxrKj8vJpBKSq9gpG0s6RrJK2W9CdJ10qaXGVMZrXnWVHWISpLMJK2AG4BXgG8E3gHsDvwQ0lbVhWXWe15VpR1iCq7yE4ApgIvj4glAJL6gfuA9wDnVRib2cj1z09XC6tXpJlIs+aObffLhEmpW6xVudkYqrKL7DBg4UByAYiIB4CfAIdXFpXZaAyMf6xeDsTg+MdYDrJ7VpR1iCoTzF7A3S3K7wH2HONYzIrRCeMfnhVlHaLKLrLtgcdblK8CthvjWMyK0SnjH54VZR2gVvfBSDpRUp+kvpUrV1YdjtkL+a5ws7+oMsE8TusrlQ1d2RARF0fE9IiYPnHixFKDMxsRj3+Y/UWVCeYe0jhMsz2BX41xLGbF8PiH2V9UOQZzA/BZSVMj4n4ASVOA/YF/rjAus9Hx+IcZUO0VzFeAZcD1kg6XdBhwPbAcuKjCuMzMrACVJZiIeAo4EPgNcBlwBfAAcGBEPFlVXGZmVoxKF7uMiIeAv68yBjMzK0etpimbmVl9OMGYmVkpnGDMzKwUioiqYxgRSU8Ai6uOo0O8GHis6iA6hNtikNtikNti0MsjYuuxOFCdn2i5OCKmVx1EJ5DU57ZI3BaD3BaD3BaDJPWN1bHcRWZmZqVwgjEzs1LUOcFcXHUAHcRtMchtMchtMchtMWjM2qK2g/xmZtbZ6nwFY2ZmHaxWCUbSzpKukbRa0p8kXStpctVxFUXSbEnfkvSgpDWSFks6V9LWTfW2k/RVSY9JekrSDyTt02J/m0v6jKTfZfu7XdL/HbszKpakmySFpLObynuiPSS9SdKPJD2Z/f73STqwYXuvtMP+kr4v6VFJT0j6uaR3NdVp6xwlbSTpo5KWSXpG0l2SOnL5KkmTJH0+O5ens38LU1rUK/zcJZ0g6deSns2+l05qK+iIqMUL2AK4D7gbOAI4HPglsBTYsur4CjrHhcB84ChgBnAq8MesfKOsjoD/BlYAbwfeCNxGmuM/qWl/V2Q/fwIwC7gWWAP8TdXnOoK2eTvwOyCAsxvKe6I9gPcAa4HzgdcDBwMfAd7cY+0wLYv1h9l3wOtJq68HcHLecwTOAZ4FTgMOyPa1DnhT1efa4txnAr8Hvgt8LzvnKS3qFXru2X7WZfUPAM7OPp88bMxVN1qOxv0A8DywW0PZLsBzwIeqjq+gc5zYouyY7BfpwOzz4dnnAxrqTABWARc0lO2b1TuuoWwT0s2pN1R9rjnbZTvgkeyLsznBdH17AFOyL4hTh6jT9e2QxfpJ4M/AVk3ltwO35zlH4CXZF+yZTftaAPRXfa4tzn2jhv8+vlWCKfrcs599FLi0qd7XSX+8jBsq5jp1kR0GLIyIJQMFEfEA8BPSP67ai4iVLYrvzN53yt4PAx6OiB82/Nxq4EbWb4fDSH/x/mdDveeAq4CDJW1WYOhl+zRwd0Rc2WJbL7THu0h/MX55iDq90A4Am5LiX9NUvprBLv92z/HgbH+XN+3rcmAfSbsUG/roRMS6NqoVfe6vASa2qHcZ8CLgdUMFU6cEsxepe6zZPaTHLHerGdn7vdn7UO0wWdJWDfUeiIinW9TbFNit6EDLIOl1pKu4926gSi+0x+uAXwNvk7RU0nOSlkhqbJNeaAeAS7L3CyTtKGlbSQNdQedn29o9x71If8UvaVEP6vm9UvS5DzzWvvl3q602qlOC2R54vEX5KlIXSteRtBMwD/hBRAws7zBUO8BgWwxXb/ui4iyLpE1J/cKfjYgNrTvXC+2xI7A78BngU8AbgJuBCyV9IKvTC+1ARNxNGos4HPgt6Vy+AJwUEVdl1do9x+2BP0bW5zNEvTop+twH3pv32VYb1Xktsq6W/cV5PWmM6biKw6nKPwHjSYOLvWwjYGvg2Ii4Niu7JZtB9FFJF1QV2FiTtDvwLdJf0CeRusoOB74s6ZmIuKLK+Gx9dUowj9P6SmVDGbu2JI0n9Z1PBWZExIqGzUO1w8D2gfeXDVFvVYttHSObfn46aTBzs6axgc0kbQs8QW+0xx9IVzA3N5V/nzRb7K/ojXaANMi/ljR7bm1WtkDSi4B/l3Ql7Z/j48C2ktT0l3xd2qKVos994PdmO9Iszg3Va6lOXWT3MNgf2GhP4FdjHEtpJI0DrgGmk6YL/rKpylDt8FBEPNlQbxdJW7So92de2PfaaaYCm5MGFx9veEGaVvk4sA+90R73DLN9Hb3RDpD+n9/VkFwG/Iw06PwS2j/He4DNgF1b1IN6fq8Ufe4Dv3vNv1tttVGdEswNwKslTR0oyLoI9s+21Z6kjUhz2A8EjoiIhS2q3QDsJGlGw89tAxzK+u1wIzAOeGtDvU2AI4HvR8SzxZ9BoX5BmnPf/IKUdA4g/WPphfb4dvZ+cFP5G4EVEfEIvdEOkKar/002Ptfob4FnSH9Rt3uON5Guho5q2tfRpFmLDxQffumKPvfbSdORW9VbRZrFu2FVz+3OMQd8S9IXyi9Jfa6HAXcB99M0J76uL+BLZPd5AK9uek3K6mwE/BRYDryN9KVza/Y/e+em/V1F+kv/eNIsm2tI/whfVfW5jqKNmu+D6fr2IN1EeQupq+wk0iD/V7K2OLZX2iGLfXZ23t/LvgfeAFyYlZ2X9xxJkyaeAT5EmjzwJdIV4ZurPtchzn92w3fFydnnGWWde/Y7ty77XppJmni0DnjvsPFW3WA5G3cyaYDvT6T+9+tocSdrXV/AsuyXptXrjIZ625NudFoFPE26OWrfFvsbD5xH+qvvGeAOYGbV5znKNlovwfRKewDbkGZL/Z7U1dEP/EOvtUMW/yGk5Lky+x74BfCPwMZ5zxHYGPgY8CBp2m4/MLvqcxzi3Df0/XBrmedOWkniN1m9+4B/bCder6ZsZmalqNMYjJmZ1YgTjJmZlcIJxszMSuEEY2ZmpXCCMTOzUjjBmJlZKZxgrGtJ2kXSdZJWZo+XvaTqmMx6SZ0WuzTL6xLSI3bPId10trSsA0k6lbT8+SVlHcOsbnyjpXWlbPXlNcCFEXHKGBxvGbAsImaWfSyzunAXmXWrHUhreNVxyfX1SBonafOq4zDLywnGuk421vJg9vET2fhLSJqZbT9S0n9LekLS05LukDS7xX6OlHSDpIckPSvpsWxMZ1pTvSA9g2NGw7EiW+2bDY3/SDq2Ma6s7IysbC9J50laQVpP6tUNdQ6S9H1Jf5T0jKR+SSeNps3MyuAxGOtGF5EWQDyftNT9wFMg75V0NulBZjcBHyetCvsW4GpJ74uILzTs532kFYwvJo3h7AqcCPxE0qsi4r6s3juyYz3G+k/fXDmKc7iC1MX3OdJihr8DkHQi8GVgYXasp4DXA1+StGtE/L9RHNOsWFWvDuqXX2W8gCm8cBXqV2Vln2xR/zrSKt1bN5Rt2aLeHqQVZb/YVL6MhhVtm7YFcEmL8mOzbTMbys7Iym4FNmmq/1ekq5n/aLGvfweeB6ZW3fZ++TXwcheZ9ZKjSF/el0p6ceOL9FCurYHXDFSOiKcAlGyT1VsJLCY94KpM/xYRzzWVzSY9hfBrLeK/kdTlfVDJcZm1zV1k1kv2IA38/3qIOjsM/IekVwJnkR6ytGVTvbKfdvibFmV7ZO8/GOLndhhim9mYcoKxXiLSFcwhpO6kVu4BkDQZ+BGp2+ws0lXLU9nP/xuwVQHxDPXv7+kWZcrejyEbk2nh/lFFZFYgJxjrJfeRnmP/UETcO0zdt5CSyGER8cPGDZJeRBqHaTTUDWWrSE+bbDZ1mBiaDUwqeCwihrqKMesIHoOxXnJZ9v5JSRs3b5TU2L00cIWjpjonAC9tse8naZ1EIHV3vUbSFg372Q44rs24B8wnJbYzJY1v3ihpQnaDqVlH8BWM9YyIuFPSGaSZWr+QdDXwMGl21n7Am4BNs+r/ReqmukzShcDjwP5ZnaW88N/OQuDdks4C7iVNf74xmyhwIXA5cIuky4BtgRNI9+q0SlYbin+FpJOBr5KmXF+W7WMisA9wBLAnaUabWeWcYKynRMSZkvqAU4BTSYP3jwJ3Z2UD9ZZKOgT4JPAvpCuanwAzSAljStOuTyddwbyXlEAE7AI8FRFXSNqRdF/NeaRxknmkJJRrNlpEfEPSb4DTgPdkx3qMNEb0cdL9OmYdwWuRmZlZKTwGY2ZmpXCCMTOzUjjBmJlZKZxgzMysFE4wZmZWCicYMzMrhROMmZmVwgnGzMxK4QRjZmalcIIxM7NS/H9uIBC0L6YA/gAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(12, 8))\n", "\n", "plt.scatter(causl, -np.log10(pvalues),\n", " color=def_colors[1], s=200)\n", "\n", "# significance threshold according to Bonferroni correction\n", "t = -np.log10(0.05/len(causl))\n", "plt.plot([0, num_feats], [t, t], lw=4, c='k')\n", "\n", "plt.xlabel(\"feature\", fontsize=28)\n", "plt.ylabel(\"-log10 p-value\", fontsize=28)\n", "plt.xlim([0, num_feats])\n", "\n", "#plt.savefig('manhattan.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Linear regression " ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "from sklearn import linear_model" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model = linear_model.LinearRegression(fit_intercept=True)\n", "model.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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GZIDLw4rw6AcaxuPkIhIHQY7REREBKNBYPnQcqSIBkWPTxENWD60HEYDV/MQUfxisENERES4sqALTMKlahuTcGFCQXqMRkREFD0GO0RERIRb+nwLq3Cq2sYqnFjY52SMRkREFD0GO0RERJ2cADDQUKlp24GGSpalJqK4xWCHiIiok0u2GOHSeEnggoRkC4u7ElF8YrBDRETUydU5XTDCo2lbIzyoc6pb60NE1FYY7BAREXVyMoBD7mxN2x5yZ4PtRYkoXjHYISIiIrxy4hLYZYuqbexyEl4+kRujERERRY/BDhEREWHTQRsaZXVrbxplAzYfrInRiIiIosdgh4iIiOByy1i8exBqZbOix9fKZizePQguN5PYiCh+MdghIiIiAEB5hR2LdhWh2pMaNqXNLieh2pOKRbuKUF5hb+MREhGpw1qRRERE5FdeYcfUyt6YUJCOhX1OYqChEi5IMMKDQ+6eePlEb2w+WAOXm4EOEcU/BjtEREQUxOWWsXGfDRv3pUEgDckWI+qcrqaqa7Z2Hh0RkXIMdoiIiCgsGUAt++gQUQfFNTtERERERJSQGOwQEREREVFCYrBDREREREQJicEOERERERElJAY7RERERESUkBjsEBERERFRQmKwQ0RERERECYnBDhERERERJSQGO0RERERElJAY7BARERERUUJisENERERERAmJwQ4RERERESUk1cHOu+++i3Xr1iE3N1fxNtnZ2Vi3bh3WrVun9umIiIiIiIg0MardoFevXpBlGSaTSfmTGI3IycmBLMtqn46IiIiIiEgTprEREREREVFCapNgx2q1AgDq6+vb4umIiIiIiIjUp7Fpce211wIATp8+3RZPp0q3bt2wYMECjBs3DllZWbDb7SgrK8Obb76J7du3a95vamoq5s2bh0mTJqFXr16or69HeXk53nrrLWzcuFHVvmbPno077rgDAFBRUYHp06drHhcRERERUWfRarDz7LPPhvz5Aw88gLq6uojbms1m9O7dGxkZGZBlGVu3btU2yhgZMGAAnnvuOXTt2hUAYLfb0bVrV4wfPx5jx47F8uXLsXLlStX77dGjB1asWOEv4uBwOGC1WjFq1CiMGjUKa9aswbJlyxTv67bbblM9BiIiIiKizq7VYKekpASyLEMI4f+ZEAKXXnqpqic6deoUXnnlFfUjjBGLxYLHH38cXbt2xYEDB3D//ffjyJEjSE1NxaJFizB37lwsXrwYBw4cwLZt21Tte9myZcjNzcWpU6dw3333Yc+ePTCbzZg1axaWLFmCG264AQcPHlRUne6uu+5Camoq9u7diyFDhmh9uUREREREnU6rwc6uXbuCqqgNHz4csizjwIEDEWd2ZFlGQ0MDzp49iz179uDjjz+OqzU7M2fORE5ODhwOB26//XZUVVUB8M7CPPXUU8jNzcXEiROxZMkSVcHOhAkTMGTIELjdbtx1110oLy8HADQ0NGDVqlXIysrCzTffjNtuuw3r16+Hy+UKu6/x48dj4sSJ+Mc//oF//etfDHaIiIiIiFRoNdj5xS9+EfTfX3/9NQDgP//zP3H06NHYjKoNTJkyBQDw8ccf+wOdQKtWrcLEiRNRWFiIvn374vjx44r2O3XqVADe4+QLdJrv96abbkL37t0xcuRIfPXVVyH3k5ycjLvvvhu1tbV47LHHcP311yt9aUREREREBA3V2D744AN88MEHqKmpicV42kRKSgoKCwsBIGywsXfvXly8eBEAMHLkSMX7HjFiBACEXZ9UVVWFI0eOtLrf2267DT179sRLL72EyspKxc9PREREREReqqux/dd//VcsxtGm+vXrB0nyxnm+wKM5WZZx/PhxFBcXo3///or2m5GR4S92cPjw4bCPO3LkCAYMGIB+/fqF/H1BQQFmzZqFI0eO4PXXX1f03EREREREFKxTNhXt3r27/9+hUtia/y7w8Xrs9+zZs2H3K4TAPffcA6PRiGXLlsHtdit6biIiIiIiChZ1n52UlBTk5OQgNTXVP1sSya5du6J9yqglJSX5/+10OsM+zldQITk5WdF+Ax+nZL8pKSktfnfjjTeiqKgIH374IXbs2KHoeZubMWMGZsyYAcA720RERERE1BlpDnauu+463HjjjRg4cGBQWepIZFnGmDFjtD5lwuvevTt++ctf4uLFi3jqqac07+edd97BO++8AwB47bXX9BoeEREREVGHojrYEULg4YcfxuTJk/3/3dEElsC2WCyora0N+TjfDFBrzVN9Ah9nsVjCPs633+bPe/fdd8NqteKRRx7BuXPnFD0nERERERGFpjrYuf7663HVVVcBAKqrq/Hee+9h//79sNlsQf144lngepqsrKywZaWzsrIAfL/GRu1+wxUp8K3VCdxvSUkJJk2ahMOH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eMKY1wdlBzsaE55v7NixPProo8ZnarFYMJvNxjpv69ev589//nOJOhoXnsvf35/XXnutRGKm7OxsgoODjd+WU6dOMWPGDE6ePFmirsZF3TZw4MAy7waqKNgxm83MmzfPmIN++fJlbDab8T1y8OBBpk+fXmKdyeKGDx/OrFmz8PX1xWazYbFYCA0NBYrWlnziiSfKnBtf0R1Ya9asYc6cOS68A146Z8dT+fv78+qrr1K/fn2+++47xowZw6BBg4iLiyM5ORkfHx8eeuihMjPFyfXJ8UO0Y8cOnn76aQYPHsygQYPo168fjzzyCCdOnCA8PJx58+bRsGHDUvWfe+45YmJiyMzM5LHHHqN///7069eP2bNnk5+fz4ABA5g2bZrTffft29f4kUpOTjb2PWbMGNLS0mjQoAHz5s2jXr161fcGiEvat2/PmDFjXFp7S2PCs915550kJCRgNpt5++23GT58OAMHDqRfv34MHTqUP/3pTxw4cKBUPY0LzzV16lR69eqFzWZjwYIFDBw4kMGDB3Prrbfy7LPPkpWVRdOmTfnjH/9Yqq7GRd13/vx5du7cSVJSUqmTHOV58MEH6devH/n5+cyePZt+/frRr18/HnvsMTIzM+nYsSPPPvus07rt2rXjj3/8I76+vnz44YcMGTKEwYMHM2LECHbt2kVQUBAvv/yycXL+anPmzCE6OpqTJ08yZcoUBg4cyIABA5g/fz5Wq5W77rqLO+64w6XXoWDHg9x55500bdoUi8XC448/bqzjY7FYmD9/Pp988gk+Pj48/PDDtdxTcUdWVhbx8fE8/vjjbN26lezsbAAKCwv5/PPPefTRR8nPzyckJIQ777yzRN327dszZMgQAF544QV27twJgM1mY+PGjSxcuBAoyvIXERFRat+OH6l///vfzJ8/37jF4ejRozz++ONYLBaio6NL7VdqlslkMn5wyppr6KAx4dmaNGnC448/DsBf//pXFi5cyM8//2xsP3/+PB9++CEbNmwoUU/jwrP99re/BSAlJYXly5djsViAot+RLVu28OqrrwLQs2dP48w7aFx4gh07djB06FAee+wxkpKSSixzUp6GDRsamYEXLFjAxo0bjcRYO3fu5H//938BGDp0KO3atStVf/r06dSrV4+DBw+SmJhIZmYmAGfOnCEhIYEzZ84QFhbGPffcU6ruwIED6dy5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M8rMiDZ8+HBmzZqFr68vNpsNi8ViTKfIzc3liSeeKLNvjRo1IikpiejoaKDoapG/vz++vr4ArF27lpdeesml12Vu2rRpokslpU64cOECGzduxNfXl4iICEJDQ8nOzmbPnj3MmTOHDz/8sLa7KG5q1qwZI0eOBIpuZwsKCirzX2FhIatWrSpR/8qVK6SkpJCXl0f9+vUJCwvDarXy3Xff8eabbzJ//vwSE5Wvtn//fr766ivCwsKoX78+AQEBnDlzho0bN/Lcc8+VuO9frg8PPPAAAJ9++inp6emltmtMeLbs7Gz+9a9/YbPZCA8Pp379+tjtdr7//nveffdd/vznP5OVlVWqnsaF58rLy2PDhg1cvHgRf39/4zcjNzeXI0eOGCmpnSUw0Lio+xy/CRVZtWpViROqdrudzZs3c+7cuRJXf44ePcrKlSt58cUXy1348/Dhw3z22WeEhIRQv359goODycjIYOvWrcyaNYvvvvuuzLoWi4WUlBTsdrsx7vLy8khNTeX1118nOTnZ5devKzsiIiIiIuKRNGdHREREREQ8koIdERERERHxSAp2RERERETEIynYERERERERj6RgR0REREREPJKCHRERERER8UgKdkRERERExCMp2BEREREREY/kW9sdEBERz9W4cWPuvfdeevfuTaNGjfD39wcgMTGRDz74oJZ7JyIink7BjoiIVIvGjRvzzjvvEBERUdtdERERL6VgR0REqsV9991HREQEhYWFLFmyhH379pGbmwvAzz//XMu9+8WIESNITEwEYOTIkZw+fbp2OyQiIlVGwY6IiFSLXr16AbBt2zaWL19ey70RERFvpAQFIiJSLRo1agTADz/8UMs9ERERb6VgR0REqoWfnx8AhYWFtdwTERHxVqbY2Fh7bXdCREQ8Q/H5L2XZu3cv06ZNK/Fc3759uf322+ncuTMNGjSgsLCQkydP8sUXX7Bq1SrOnz9fZntt27Zl0KBB3HLLLbRp08aYJ3Tu3DkOHDjA2rVr+eabb0rVi42NZenSpRW+pmnTprF3714Ali5dSmxsrNPXUFxF84A2bNhA06ZNSUlJ4fnnn6d9+/aMGTOG2NhYIiMjCQgIYNCgQeTk5JR6raNHj6ZHjx40atQIX19fMjIy2LdvH6tXryY9Pb3C1yMi4k00Z0dERGpNcHAwf/3rX7n11ltLbWvfvj3t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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(12, 8))\n", "\n", "plt.scatter(range(num_feats), # x = SNP position\n", " model.coef_, # y = regression weights\n", " s=200)\n", "\n", "plt.scatter(causl, model.coef_[causl],\n", " color=def_colors[1], s=200)\n", "\n", "#plt.plot([0, num_feats], [0.025, 0.025], lw=4, c='grey', ls='--')\n", "#plt.plot([0, num_feats], [-0.025, -0.025], lw=4, c='grey', ls='--')\n", "\n", "\n", "plt.xlabel(\"feature\", fontsize=28)\n", "plt.ylabel(\"regression weight\", fontsize=28)\n", "plt.xlim([0, num_feats])\n", "\n", "plt.savefig('structured_sparsity/linreg_weights.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The feautres that have the largest weight (in magnitude) are not necessarily the causal ones. Some causal features have a very low weight.\n", "\n", "The dashed lines at +/- 0.025 have been chosen arbitrarily." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Validation" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "y_pred = model.predict(X_test)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.21195339881165037\n" ] } ], "source": [ "rmse = np.sqrt(metrics.mean_squared_error(y_test, y_pred))\n", "print rmse" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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xuqpp57S1KlTtXfvXr/Ok5CQIEk6fPiwPvzwQ3322Wc6fvy4wsLC1L17d917771KSEjQyJEj5XK5NHfu3CqPYxiG57Xb7daBAwdUWFiorl27+nVdAABUh9CPkHT69Gnt27ev0nvbtm1Tenq6fv/736tv375KSEjQ6NGjtWzZshqPtXfvXjVt2lStWrXS7bffrldeeaXabctH+T///HPFx8dXKg+qqEOHDhozZowk6csvv9T06dOVl5dXaZsvvvhCH3zwgZ599ll17dpVTZo0qfE6z58/f9l3tpsHH3xQ8fHxkspKY1avXu357LPPPtP27du1ePFiRUdH6+GHH65UZuWLrKwsvfLKK/r3v/992Weff/65/vGPf+iVV15RcnKybr/9dr399tv67LPPLtv2+PHjeuaZZ5SVlaVdu3apsLBQw4cPJ/QDAAKOibxABSUlJZXKLfr161frPqZp6p///KekshKf6rhcLt16662SpPfee6/GYw4ePNhT0vP8889fFvgv9cUXX2jTpk21XqudNW3a1PPnv3nz5kqBv9z27ds9NfJ9+/ZVp06d/DrX1KlTqwz85U6fPq1nnnnG8/tbbrmlyu0OHTqk119/Xdu3b691DgkAAFYQ+oFL7N692/P60rrw6qxatUqS1KZNG3Xr1q3KbQYPHuyZ7Ll27doaj9eiRQvP68OHD3t1DaHupptukstV9vAyPT292u0qflaXE5YrTqC++uqr6+w8AAB4g9APXKK0tNTzuroJmJc6dOiQPv/8c0nVT9Qtfz8jI6PWkfvi4mLP63bt2nl1DaGuR48entfbtm2rdrsvvvjCM6pecZ9ACwsL87yu+HcKAIArgdAPXKJiyD569KjX+5WP9t9yyy2eEedycXFxGjBgQKXtalLxacNDDz2kVq1aeX0doar853b27FmdOHGi2u3cbrfn6Uld3lD16tXL83r//v11dh4AALzBRF7gEhMmTPC8fv/9973eb+3atZo1a5bi4uKUmpqq9evXez677bbbFBYWpjNnzigjI6PWY61bt04zZszQVVddpTZt2ujtt9/W5s2btWXLFmVlZWn37t21dhW6VGRkpDp06FDrdqdOndLp06d9OrZU8zoIvnjggQdqHKmvTnkpljc9+LOzs3XttdeqWbNmCgsL04ULF3w+X00Mw6i09oIvf48AAKgLhH5AUpMmTdS2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avr06SoqKpLf71dubq7OOeccfeMb31BRUZH+8Ic/2PCM0J/sOH/+93//V1VVVRo9erQKCgrk9/vl8/lUXFysiRMn6tprr9XBgwe1b98+m54V+oNdv3tO9e1vf1vf/OY3I/+9c+dO7dy5M+lxMbDsPH+uuOIK/exnP1NFRYWGDBmiQCAgSSouLtb555+vwsJCvfzyy6l8OjAA5T1wtKysLD322GMqLCzU3r17ddNNN2n69Omqrq7W+vXr5fF4tHTpUl166aVxj71ixQqNGDFCBw8e1C233KKqqipNmzZNjz/+uAKBgG688UZde+21Njwr9Be7zh+fz6edO3fqoYce0tVXX62qqipNnTpVt956qz744ANlZ2frBz/4gc4//3ybnhnsZufvnp6GDRumO+64Qw0NDTpy5EiKZo+BZuf58/Wvf10PP/yw8vPz9eKLL+r6669XZWWlpk2bpiuuuEL33nuv/vjHP9rwrOB2XOmHo9100026+uqr1draqltvvVUHDx6UJJ04cULbtm3T2LFjNXr0aI0ePVobNmyIedyqqirNnz9fgUBAS5Ys0Z49eyRJgUBAu3btUkFBgS666CJNmDBB//Vf/6VgMGjL84O97Dp/duzYoX//93/Xhx9+qPb2dklSKBTS4cOH9frrr+uaa65Rfn6+MjMz+Yrdpew6d061fPlyXXDBBXrooYd06aWXatCgQVzpN4Bd509eXp5+9rOfadCgQXriiSf04x//WE1NTZHb/X6/9u/fr7q6upQ/J7gfV/rhaDNmzJAk/e53v1NjY+Npt69fv16SNH78eJ133nkxjztz5kxJ0vbt21VfX9/ruMFgUMXFxbrkkksSmTocwK7z509/+lPU244dOxYpCxs/fnw804WD2HXu9DRt2jRdfvnleuONN/TGG28kPlk4jl3nz+zZs1VSUqJDhw5p9erVqZks0gahH46Vm5sbCU1vvfVWr8fU1dXp+PHjkhRXOL/44oslSW+//Xavtzc2Nuqjjz6Ke1w4h53nz5mEr7x5PPyKdaP+OHeys7N13333qaOjQytXrkx8snAcO8+f8AWr119/PVLHD8SKv5HgWKNGjYqEpnAAP1UoFNKBAwckSaNHj45p3KKiIhUWFkpSnwstw485atSomOcM57Dr/InFlClTJPV9fsG5+uPcWbJkic466yw9+eST+vTTTxOfLBzH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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(12, 12))\n", "\n", "plt.scatter(y_test, y_pred, s=200)\n", "\n", "plt.xlabel(\"true y\", fontsize=28)\n", "plt.ylabel(\"prediction\", fontsize=28)\n", "plt.xlim([np.min(y_test)-0.05, np.max(y_test)+0.05])\n", "plt.ylim([np.min(y_test)-0.05, np.max(y_test)+0.05])\n", "\n", "plt.text(0, 0.6, 'RMSE = %.2f' % rmse, fontsize=28)\n", "\n", "plt.savefig('structured_sparsity/linreg_pred.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lasso " ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Lasso(alpha=0.005, copy_X=True, fit_intercept=True, max_iter=1000,\n", " normalize=False, positive=False, precompute=False, random_state=None,\n", " selection='cyclic', tol=0.0001, warm_start=False)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model = linear_model.Lasso(fit_intercept=True, alpha=0.005)\n", "model.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [ { "data": { "image/png": "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AADqZTnsDBw4UKZpavv27Q2es23bNklS//79q32enp4uSerQoYPVMgAAAACgXpbf2YmIiJD0Y4e1hqgaWzW3yqlTpyRJvr6+VstoMuHh4Zo4caKSk5MVGRkph8OhzMxMrVy5Ulu3brW8nq+vrxITE5WQkKCePXuqZ8+eioyMlCTdd9992rRpU73z3333XXXs2LHeMYsWLdKrr75quTYAAADAm1gOOw6HQ+3atdPVV1+tXbt2NWhO1TY1h8NR7fPAwEBJUl5entUymkT37t21ZMkShYWFSaqsLywsTIMHD1ZSUpJSU1O1dOlSS2vGxsbq2WefbXRteXl5Onv2bK3XiouLG70+AAAA4Oksh52vvvpK1157rSZMmKD169ef972dmJgYTZgwQaZp6uuvv652rVu3bpJ+fMLTkvz9/bVw4UKFhYVp9+7devTRR5Wdna3g4GDdddddGj9+vKZOnardu3dry5YtltbOz8/XN998o6ysLGVlZekvf/mL5foeeOABZWRkWJ4HAAAAoJLlsLNixQoNHTpUoaGheuWVV/T3v/9dH374oc6cOVNtXFhYmG688UbdeeedCg0NldPp1GuvvVZtTHJyskzT1FdffdW4b+GGMWPGqGPHjiosLNTMmTN14sQJSVJhYaEWL16sTp066dprr9W0adMshZ19+/YpJSWlucoGAAAA0EBuPdl57rnnNHXqVIWGhmrGjBmaMWOGfvjhh2qHilY1Hah6X2fJkiXVQk10dLQGDBgg0zT1+eefN8V3sWT48OGSpLS0NFfQOdfy5ct17bXXKj4+XjExMTp06FCD1jVNs0nrBAAAAOAey2FHkpYuXapjx47pd7/7ndq3by9JioqKUlRUVI2xp06d0sKFC/Xvf/+72ufHjh3ToEGD3Ll9owUFBSk+Pl6S6mwYsHPnThUUFCg0NFT9+vVrcNgBAAAAcGFwK+xI0rp16/Tpp59q6NCh6t+/v7p166Y2bdpIqnxnJTs7W1u3btX69evrfNG+tcTGxspmq+y6nZ2dXesY0zR16NAh9erVS127dm3J8iRJs2bNUocOHRQSEqK8vDzt2bNHH3zwgT766CM5nc4WrwcAAAC42LgddiSpvLxc69at07p165qqnhZxbgvs2raw/fTaT1tmt4S4uDgVFxertLRUERERioiI0KBBgzRmzBjNnj27Rme7c40ePVqj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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(12, 8))\n", "\n", "plt.scatter(range(num_feats), # x = SNP position\n", " model.coef_, # y = regression weight\n", " s=200)\n", "\n", "plt.scatter(causl, model.coef_[causl],\n", " color=def_colors[1], s=200)\n", "\n", "plt.xlabel(\"features\", fontsize=28)\n", "plt.ylabel(\"lasso weight\", fontsize=28)\n", "plt.xlim([0, num_feats])\n", "\n", "plt.savefig('structured_sparsity/lasso_weights.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The solution is sparse, but many non-causal features have non-zero weights and several causal features have a weight of 0.\n", "\n", "If you increase lambda, you'll lose more causal features." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Validation" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "y_pred = model.predict(X_test)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "rmse = np.sqrt(metrics.mean_squared_error(y_test, y_pred))" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "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pQd/Zmamrr76arVs2VIhISG6dOmS39ez6osvvvC+7tOnj95///0KjwsNDS1XCuRryRkAAGUR+gGVllp07NhR06ZN0+DBgyVJe/bs0XvvvefzOc6fP68tW7YoLS1Nt912W7nQ7yntWb9+vU8tMS9evKhZs2ZpwYIFio2Nlcvl0uDBg71zc7vdOnTokP7973/rrbfe0ldffVXtOZOSkvTmm29We9zixYvLPcwcLCIjIyXJp5uhssdERkYqJyen1uZVmb179+rcuXOKjo7WqFGjtGLFCh07duyK4zxtRj2aNGlSl9MEANgEoR+N0vTp0zV9+vQKPysqKtI777yj+fPn+92zfs2aNUpLS9PgwYMVFRWl3NxcderUST169PB+7qv9+/frO9/5ju6++26NGDGiXImP0+lUYmKiEhMTNWnSJC1btkwLFy4s9zxCXUtPT9f48eMtn8eXG5iKeB5w9WXVvuwx9fVgbGFhoV555RU98sgjioyM1Isvvqjnn39emzdvVl5enrdP/7hx41RUVKTQ0NB6nS8AILgR+oHLHDt2TMuXL/c+7OmPLVu2eFdvb7nlFv3tb3/TiBEjJElHjx71dmHxVV5enl566SW99NJLSkhI0DXXXKPExET16tVLiYmJcjgccrlcmjx5slq0aFHl5lu7du3S/fff7/fP5Kv63gegsLBQkZGRCgkJqfbYsscUFhbW5rSq9Prrr6tDhw666667FBMTo7lz515xzLlz5/TnP/9ZP/rRjyT59k0GAACXC7rQ36pVK02ZMkWpqamKjY1VXl6e0tPTtXz5cu3YscPSuWNjYzV+/HilpKSodevWcjgcOnPmjDIyMvTuu+9q06ZNAfopUN/K7sjrdDoVGxurIUOGaNSoUbr66qv14osv6r777quw3KIqbrdb69ev17hx43Tbbbfp73//u4YNGyap+t781Tl27JiOHTvm3QAqLi5O3//+93XHHXdIkkaNGqW33npLH3/8saXrBKsLFy4oMjLSW+ZTlbLH1HeI/vWvf60PP/xQ99xzj6699lrvQ+AFBQXasGGDnn/+efXu3dt7fHWdnwAAqEhQhf6uXbvqhRdeUHR0tKTSVdDo6GgNGTJEKSkpWrhwoV577bUanfumm27S//t//8/bRaOgoECmaapDhw7q0KGDWrRoQei3kct35P3ss8+0detWffDBB1qwYIGi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wfxBKpHTDwAAABiO9B4AAADAcAT9AAAAgOHo0w9XGDhwoObPn6/a2lpVVFSotbVVO3fu1LPPPqtt27Ylfd6ioiLNmzdPU6ZM0eDBg9XR0aE9e/bo17/+tTZu3JjCd4BMSvX8KS0t1ZQpU1RTU6NRo0apoqJCwWBQn3/+ubZt26ZnnnlGn376qQ3vBOlm13dPdx6PR6tWrdKYMWMkSStXrtTKlStTcm5klp3zp6KiQrNnz9bEiRN19tlny+Px6PDhw9q1a5feeOMN1dfXp+hdwBQU8sLxzj//fD355JO65JJLVFJSoo6ODvXv31/Dhg3Tt771LXV2duq9995L+LyDBg3SqlWrNHnyZJWVlcnv96uwsFDnnnuuvvnNb6qsrEy///3vbXhHSCc75s/vfvc71dXVafjw4SopKZHf71dOTo7Ky8s1duxYXX311dq/f7/27t1r07tCOtj13XOq7373u/r2t78d/fft27dr+/btfT4vMsvO+fONb3xDP/vZz1RTU6OzzjpLgUBAklReXq7zzz9fpaWleuWVV1L5dmAA0nvgaPn5+Xr00UdVWlqq3bt364YbbtDkyZM1ZcoUrVmzRh6PR4sWLdKll16a8LmXLl2qoUOHav/+/brllltUV1enSZMm6bHHHlMgEND111+vq6++2oZ3hXSxa/7k5ORo+/btevDBBzV16lTV1dVp4sSJWrBggT788EP169dPP/zhD3X++efb9M5gNzu/e7obNGiQbr/9djU1Nenw4cMpGj0yzc75c9lll+mhhx5ScXGxXnrpJV177bWqra3VpEmT9I1vfEP33HOP/vCHP9jwruB2rPTD0W644QZNnTpVPp9PCxYs0P79+yVJx48f15YtW3TBBRdo+PDhGj58uNauXRv3eevq6jR37lwFAgEtXLhQu3btkiQFAgG9//77Kikp0UUXXaQxY8bof/7nfxQMBm15f7CXXfNn27Zt+q//+i999NFHam9vlySFQiEdOHBAb775pq666ioVFxcrLy+PW+wuZdfcOdWSJUs0cuRIPfjgg7r00kvVv39/VvoNYNf8KSoq0s9+9jP1799fjz/+uH784x+rubk5+rjf71djY6N27NiR8vcE92OlH442bdo0SdLrr7+uQ4cOnfb4mjVrJEmjR4/WeeedF/d5p0+fLknaunWr9uzZ0+N5g8GgysvLdckllyQz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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(12, 12))\n", "\n", "plt.scatter(y_test, y_pred, s=200)\n", "\n", "plt.xlabel(\"true y\", fontsize=28)\n", "plt.ylabel(\"prediction\", fontsize=28)\n", "plt.xlim([np.min(y_test)-0.05, np.max(y_test)+0.05])\n", "plt.ylim([np.min(y_test)-0.05, np.max(y_test)+0.05])\n", "\n", "plt.text(0, 0.6, 'RMSE = %.2f' % rmse, fontsize=28)\n", "\n", "plt.savefig('structured_sparsity/lasso_pred.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The predictivity has slightly improved." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Network-Connected Lasso \n", "\n", "This method is developed in https://academic.oup.com/bioinformatics/article/24/9/1175/206444\n", "\n", "As detailed in the paper, this can be reformulated so as to be solved as a Lasso problem." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Laplacian" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "degree = np.sum(W, axis=0)\n", "L = np.diag(degree) - W\n", "\n", "# spectral decomposition\n", "evals, evecs = np.linalg.eigh(L)\n", "\n", "# correct for numerical errors: \n", "# eigenvalues of 0 might be computed as small negative numbers\n", "evals = np.maximum(0, evals)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### New variables" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "S = np.dot(evecs, np.diag(evals))" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "y_new = np.hstack((y_train, np.zeros((num_feats, ))))" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "l1 = 0.001\n", "l2 = 10." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "gamma = l1/(np.sqrt(l2+1))" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "X_new = 1/(np.sqrt(l2+1)) * np.vstack((X_train, np.sqrt(l2)*S.T))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ncLasso" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Lasso(alpha=0.00030151134457776364, copy_X=True, fit_intercept=True,\n", " max_iter=1000, normalize=False, positive=False, precompute=False,\n", " random_state=None, selection='cyclic', tol=0.0001, warm_start=False)" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model = linear_model.Lasso(fit_intercept=True, alpha=gamma)\n", "model.fit(X_new, y_new)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "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q3TllVdq/vz5uvfee+V2u+29BwAAAABaDMsBY+zYsUpJSZFpmsrKytLLL79cLTQcPnxY27Zt02uvvaYZM2boe9/7nrp166axY8dq1apVthUPAAAAoGWxfInULbfcIknasGGDXnrppTrPSLjdbmVmZmrDhg0yDEO33nqr/5UCAAAAaPEsn8Ho3r27TNPUW2+95fM2q1at0pAhQ9S9e3erzVUTHx+vKVOmKD09XQkJCXK5XMrJydGyZcu0efNmy/uLi4tTRkaGbrzxRvXs2VMJCQlyu906ceKENm/erNdff11ff/11g+sGAAAAWgPLASNs296IAAAgAElEQVQ2NlaSdPLkSZ+38awbExNjtbkqunfvrgULFiguLk6S5HK5FBcXp6FDh2rIkCHKzMzUkiVLLO1z9erVCgn59mEoKipSaGioUlJSlJKSojFjxui5557TmjVrGlQ7AAAA0BpYvkSqoKBAUuVIUr7yjCBVWFhotTmv8PBwzZs3T3FxcdqzZ4/uuusuDR8+XBkZGcrKypLD4dDMmTM1cOBAS/sNCQnRli1b9Oyzz+q2227TsGHDNGTIEH3/+9/X3r17FRERoZ/97Ge2nH0BAAAAgp3lgPHll19Kkr773e/6vI1n3S+++MJqc17jx49Xly5dVFRUpNmzZ+vAgQOSKs84zJ8/Xx9++KEcDodmzZplab8/+MEPNG3aNL377rveUbDcbrd27NihmTNn6syZMwoJCdE999zjd+0AAABAa2E5YKxbt06GYWjw4MF65JFH5HDUvgvDMPTQQw8pPT1dpmlq3bp1fhc6atQoSdKaNWt06tSpasuzsrIkSampqUpOTvZ5v9u2bat12fnz5/XJJ5949wsAAACgbpb7YLz99tuaMGGCunXrpnvvvVfDhg3Tu+++q127duns2bOSpPbt26tPnz6644471LVrV0mVZz7efvttv4qMioryfsHfuHFjjevs2rVLhYWFio2N1YABA3To0CG/2rpcfn6+JNUZpAAAAABUshwwKioq9Oijj+rll1/WlVdeqaSkJE2bNq3W9Q3D0JEjR/Too4/6PcleSkqK9wu+59Koy5mmqUOHDqlPnz7q1q2bX+3U5IYbbpD07aVhAAAAAGrn18/yeXl5uueee5SVlaXCwkIZhlHjf4WFhVq6dKnuvffeGi9r8lWHDh28f9e1H8+yS9dviGHD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89NrySc5OblJ/dQeGRnJgw8+SGpqKtHR0RQVFbF//36WLFnisu9FTVcwrMxmM+PGjaNv3760bNmSsrIyDh8+zIoVK9iwYUOd2vjBBx8wduzYur0wEREREZE6aKznnE0uwWgKGuvBFhERERHv0VjPOZtMJ28REREREWn8lGCIiIiIiIjHKMEQERERERGPUYIhIiIiIiIeowRDREREREQ8RgmGiIiIiIh4jBIMERERERHxGCUYIiIiIiLiMUowRERERETEY5RgiIiIiIiIxyjBEBERERERj1GCISIiIiIiHqMEQ0REREREPEYJhoiIiIiIeIwSDBERERER8RglGCIiIiIi4jFKMERERERExGOUYIiIiIiIiMcowRAREREREY9RgiEiIiIiIh6jBENERERERDxGCYaIiIiIiHiMEgwREREREfEYv4ZugDdq06YNH3zwQUM3QxqZiIgIcnNzG7oZ0sgoLqQ6xYQ4o7gQZ9q0adPQTXBKCcZv4MSJE4wdO7ahmyGNzAcffKC4EAeKC6lOMSHOKC7Emcb6g7ZukRIREREREY9RgiEiIiIiIh5jio2NzWjoRnijgwcPNnQTpBFSXIgzigupTjEhziguxJnGGBc+ycnJlQ3dCBERERER8Q66RUpERERERDxGCYaIiIiIiHiMEgwREREREfEYzYPhIZGRkTz44IOkpqYSHR1NYWEh+/fvZ+nSpezatauhmyd1FBMTQ1paGt26daN9+/bccMMNXLlyhTNnzvDNN9+wdOlSLly44LK+n58fo0aNon///tx0001UVFRw/PhxVq9ezcqVK2vdfvfu3RkxYgRJSUmYzWays7PZsmUL7733HhcvXvTkS5V6Cg4OZvny5dx4440AZGRk8Nlnnzktq7jwfq1bt2bYsGH07NmTFi1aUFFRQXZ2NllZWXz22Wfs3bvXoY7iwnv5+PgwaNAg7r33Xtq3b09YWBglJSWcPHmSzZs389FHH1FcXOy0ruKiaQoJCaFr16506tSJjh07kpiYSPPmzQEYOnQoJ0+erLG+j48PgwcPJj09nfj4eHx9fTl9+jTr1q1j6dKllJeX11i/Y8eOjBkzhi5duhAeHk5ubi47duzg/fff5/Tp0zXWNZvNjB07lrS0NFq2bElpaSmHDx/m448/ZsOGDXXaD+rk7QHt2rXjP//zP40AKiwsJDg4GJPJhMVi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K7ObaO7QoUMcPXqUdu3aMXToUMLCwli7di05OTnExMQwYMAA7rnnHr7//vsaby86dOgQpaWlBAUFMWHCBMrLyzl79qxxa1J2djZlZWVA1WR3p0+fJi4ujscee4xmzZqxYcMGSktLad26NX/84x/p0qVLrdusix07drB48WLGjBlDUlISK1as4JNPPmHv3r3k5uYSFBREbGwst912G2lpaURFRTF8+HDOnz8PwI033siCBQs4fvw4Gzdu5MCBA5w/fx6LxUJ0dDR9+vRh0KBBQNW8HFu2bPFIu0VEmgIlGCIiXqS8vJwnnniCmTNn0q9fPxISEnj22WddlnfW8djaf6BZs2b069ePfv362S0/cuQIzz33HOvXr3e53uLiYpYtW8a4cePo2LEjmZmZdssff/xx48pFRUUFM2fO5K233sJsNjNy5EiHKxnvvfceJ0+e9Gifiblz53Lp0iUee+wxIiIieOSRR3jkkUeclr18+bKRENmKj48nPj7e5TbOnTvH1KlTKS0t9Vi7RUQaOyUYIiJepqSkhBkzZrBkyRLS09Pp0qULLVq0ICgoiOLiYs6ePcuPP/7IN9984/SX9cOHZB5eJgAAATBJREFUDzNq1Cgeeugh7r77bqKjoykqKuL06dP87//+L8uXL7frY+HKvHnzOHXqFAMHDqRt27aEhoa6nLAvKyuLf/3Xf+Whhx6ie/fuREZGcunSJQ4cOMCyZcv49ttvjSsCnvT+++/z+eefM3ToULp3705cXByhoaGUlZWRk5PDkSNH2LlzJxs2bODSpUtGve+++47x48dz1113kZSURExMDJGRkQQFBZGfn8/Ro0fZsmULK1euVHIhItcdn+TkZPeH+hAREREREamBOnmLiIiIiIjHKMEQERERERGPUYIhIiIiIiIeowRDREREREQ8RgmGiIiIiIh4jBIMERERERHxGCUYIiIiIiLiMUowRERERETEY5RgiIiIiIiIxyjBEBERERERj1GCISIiIiIiHvP/1po3SS5ti5YAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(12, 8))\n", "\n", "plt.scatter(range(num_feats), # x = SNP position\n", " model.coef_, # y = -log10 p-value (the higher the more significant)\n", " s=200)\n", "\n", "# Plot the causal SNPs in red\n", "plt.scatter(causl, model.coef_[causl],\n", " color=def_colors[1], s=200)\n", "\n", "plt.xlabel(\"features\", fontsize=28)\n", "plt.ylabel(\"ncLasso weight\", fontsize=28)\n", "plt.xlim([0, num_feats])\n", "\n", "plt.savefig('structured_sparsity/nclasso_weights.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The algorithm is much better at identifying causal features!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Validation" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "y_test_new = np.hstack((y_test, np.zeros((num_feats, ))))\n", "X_test_new = 1/(np.sqrt(l2+1)) * np.vstack((X_test, np.sqrt(l2)*S.T))" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "y_pred = model.predict(X_test_new)[:y_test.shape[0]]" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "rmse = np.sqrt(metrics.mean_squared_error(y_test, y_pred))" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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W/v379e///1vrVq1Sl988UWDx8zMzNSf//znBrdbvHhxjcnM0SIxMVGSfDoZOn+bxMREFRUVhaxfDXnwwQfVvn17HT58WC+++GKj9QMAYG+EflySpkyZoilTptT6WkVFhd544w3Nnz/f75r1a9asUXZ2tgYMGKCkpCQVFxerU6dOysjI8L7uq7179+qb3/ym7r77bg0bNqzGEB+n06lu3bqpW7dumjBhgpYtW6aFCxfWmI8Qbjk5ORo7dqzl4/hyAlObuLg4SfLpqv3521Tv1xi6du3qvbP0xBNPNOodBwCAvRH6gQscPnxYy5cv90729MeWLVt06tQpJScn65ZbbtFf//pXDRs2TJJ06NAh5eTk+HW8kpISPffcc3ruuefUoUMHXXXVVerWrZt69uypbt26yeFwyOVyaeLEiWrRokW9i2/t3LlTU6dO9fs9+aqx1wEoLy9XYmKiYmJiGtz2/G3Ky8tD2a06GYah//mf/5HL5dKaNWu0Y8eORukHAODSEHWhv1WrVpo0aZIGDhyo1NRUlZSUKCcnR8uXL9f27dstHTs1NVVjx45VVlaWWrduLYfDoRMnTig3N1dvvvmmNm3aFKR3gcZ2/oq8TqdTqampGjRokEaMGKErrrhCzz77rO6//34dPnzYr+O63W6tX79eY8aM0e23366//e1vGjp0qKSGa/M35PDhwzp8+LB3Aai0tDQ9+OCDuvPOOyVJI0aM0KpVq/TBBx9YaidanTlzRomJid5hPvU5fxt/50YEy913363MzEydOnVKv/3tbxulDwCAS0dUhf6uXbvqmWeeUXJysqSqq6DJyckaNGiQsrKytHDhQr300ksBHXvIkCH6n//5HzVt2lSSVFZWJtM01b59e7Vv314tWrQg9NvIhSvyfvLJJ9q6davefvttLViwQMnJyXr88cc1ceJEv4fMrFmzRmPGjNFVV12l0aNHKy0tTR6Px6+hPb7Iz8/X448/roSEBN16662Sqn6OGyv0x8fHB6XK0BdffKGzZ8/6vV9+fr5SUlJ02WWXNbht9aTfwsLCRhtSM3HiRElVd2D69etX6zYtWrTwPq5e2O3cuXM15osAAOCLqAn9cXFx3jC2b98+Pfroo/r000/VpEkTPfDAAxo/frymT5+uffv2adu2bX4de8CAAfr5z38ul8ulVatWacmSJd4rvM2bN9fVV1+t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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(12, 12))\n", "\n", "plt.scatter(y_test, y_pred, s=200)\n", "\n", "plt.xlabel(\"true y\", fontsize=28)\n", "plt.ylabel(\"prediction\", fontsize=28)\n", "plt.xlim([np.min(y_test)-0.05, np.max(y_test)+0.05])\n", "plt.ylim([np.min(y_test)-0.05, np.max(y_test)+0.05])\n", "\n", "plt.text(0, 0.6, 'RMSE = %.2f' % rmse, fontsize=28)\n", "\n", "plt.savefig('structured_sparsity/nclasso_pred.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The performance improved noticeably." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## sfan" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/chagaz/repositories/sfan/code\n" ] } ], "source": [ "cd code/" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "import tempfile" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create dimacs file from adjacency matrix" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "def convert_W_to_dimacs(W, dimacs_fname):\n", " num_edges = np.sum(W)\n", " print \"Considering %d edges\" % num_edges\n", " \n", " num_features = W.shape[0]\n", " \n", " with open(dimacs_fname, 'w') as g:\n", " g.write(\"p max %d %d\\n\" % (num_features, num_edges)) \n", " for u, v in zip(np.nonzero(W)[0], np.nonzero(W)[1]):\n", " g.write(\"a %d %d %d\\n\" % ((u+1), (v+1), int(W[u, v])))\n", " g.close()" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "w_fh, w_fname = tempfile.mkstemp(suffix='network.dimacs')" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/tmp/tmpzt1RsBnetwork.dimacs\n" ] } ], "source": [ "print w_fname" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Considering 9198 edges\n" ] } ], "source": [ "convert_W_to_dimacs(W, w_fname) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create node weights file from t-test scores" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "def compute_node_weights(X, y, node_weights_fname):\n", " num_features = X.shape[1]\n", " \n", " with open(node_weights_fname, 'w') as g:\n", " for feat_idx in range(num_features):\n", " myX = X[:, feat_idx]\n", " myX = sm.add_constant(myX)\n", " est = sm.regression.linear_model.OLS(y, myX)\n", " est2 = est.fit()\n", " g.write(\"%.3e\\n\" % np.abs(est2.tvalues[1]))\n", " g.close()" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "c_fh, c_fname = tempfile.mkstemp(suffix='scores_0.txt')" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/tmp/tmpRNRf6Uscores_0.txt\n" ] } ], "source": [ "print c_fname" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "compute_node_weights(X_train, y_train, c_fname)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run sfan" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "lbd = 5.\n", "eps = 1." ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['# lambda 5.0', '# eta 1.0', '89 281 284 499 504 528 602 635 647 830 ', 'Task (1) computation time: 0.381317', 'Task average computation time: 0.381317', 'Standard deviation computation time: 0.0', 'Network building time: 0.399693', 'gt_maxflow computation time: 0.073883', 'Process time: 0.808468', '']\n" ] } ], "source": [ "vv = !python multitask_sfan.py -k 1 -w $w_fname -r $c_fname -l $lbd -e $eps\n", "print vv" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get selected features" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[88, 280, 283, 498, 503, 527, 601, 634, 646, 829]\n" ] } ], "source": [ "selected = [(int(i)-1) for i in vv[2].split()]\n", "print selected " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot selected features" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/chagaz/repositories/sfan\n" ] } ], "source": [ "cd .." ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "non_selected = [ix for ix in range(num_feats) if ix not in selected]" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "image/png": "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eTwetWnTJqg++vXrp4EDB+qzzz7TZ599FnyxAAAAQCMVEgEjNjZWHo9HkrR69epa19m8ebNOnTolSerZs6flPqKjo/X444/rzJkzevHFF4MvFgAAAGjEQiJgpKamyuGoLtV7a9T5TNPU3r17JUlt27a13MdDDz2kq6++Wm+99ZYOHDgQfLEAAABAIxb0KFJNmjTRHXfcoW7duqlVq1aKjY31hYCLGTZsmOW+kpKSfK9ruz3q/GXnrh+IDh06aPTo0dq7d68to1ABAAAAjVVQAaN///565pln1KRJE0mSYRgBbWeaZjDdKTo62ve6rKzM73pnzpyRJMXExATctmEYevLJJ+VyufS73/1OFRUVQdU4fPhwDR8+XJLUtGnToNoAAAAAQp3lgNGhQwf99re/ldPplGEYOnLkiLZu3aqTJ0+qqqqqPmqsV6NGjVKnTp20bNky5ebmBt3OokWLtGjRIknS3Llz7SoPAAAACCmWA0ZmZqZcLpfKy8v1m9/8Rv/7v/9bH3XV4L0yIVXPh1FaWlrret4rHadPnw6o3aSkJD300EMqLi7WzJkz614oAAAA0MhZfsj7pptukmmamjt37mUJF1LN5y6Sk5P9ruddFugEeRMnTlR8fLxycnJUUlKimJiYGv95b/1yuVy+9wAAAAD4Z/kKRkJCgiTpn//8p+3F+LNnzx5VVVXJ4XCobdu2vtGizmUYhm/+C38jTZ2vRYsWkqpHkHrooYf8rnfffffpvvvukyT16NHDavkAAABAo2H5CsaxY8ckSZWVlbYX409paam2bNkiSerVq1et63Tu3Nn30Pm6desuW20AAAAAvmH5CsYXX3yh7373u2rXrp3vl/7LYcmSJerUqZMGDx6sP/7xjzp69GiN5WPHjpUk5efn13qFozbjx4+/6PIPPvhALVu2VHZ2trKzs4MrHAAAAGhELF/BeOedd1RVVaUxY8bI6XTWR021WrhwoQoKChQfH69Zs2YpNTVVUvUs34888ogyMjIkSVlZWRdsu379eq1fv14PPPDAZasXAAAAaIwsB4ytW7dqxowZatu2rWbMmCG3210fdV2grKxMkydP1okTJ+TxeLRgwQJ9+umnWrFihcaNG6eqqir94Q9/qNNQswAAAADqxvItUvfff78kKS8vT3369NGHH36otWvXavfu3TWGk/Xn9ddft17l/9mxY4dG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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(12, 8))\n", "\n", "plt.scatter(selected, # x = SNP position\n", " np.ones(shape=(len(selected), 1)),\n", " color=def_colors[0], s=200)\n", "\n", "plt.scatter(non_selected, \n", " np.zeros(shape=(len(non_selected), 1)),\n", " color=def_colors[0], s=200)\n", "\n", "plt.scatter(causl, \n", " np.ones(shape=(len(causl), )),\n", " color=def_colors[1], s=200)\n", "\n", "plt.xlabel(\"features\", fontsize=28)\n", "plt.ylabel(\"sfan selection\", fontsize=28)\n", "plt.xlim([0, num_feats])\n", "\n", "plt.savefig('structured_sparsity/sfan_selected.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "sfan selected exactly the right features! " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Validation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Create predictive model from the selected features only " ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model = linear_model.LinearRegression(fit_intercept=True)\n", "model.fit(X_train[:, selected], y_train)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "y_pred = model.predict(X_test[:, selected])" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "rmse = np.sqrt(metrics.mean_squared_error(y_test, y_pred))" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "image/png": "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33xT//jHP7x/jomJUWJioh544AElJiYqISFBzz//vEaPHq1z585Veqzz588rPDxc119/vRISEpSZWfHFPN26dVNiYuIl+1XkySef1H333SdJOnXqlFasWKFPPvlEX331lUJCQtSiRQslJSVp0KBB3mNWJj09Xb/4xS+q3M7trh9dCMoTGxurZ599VrGxsSouLtYbb7yhTZs2ye12q3fv3po4caKio6P1m9/8RpMnT9aBAwcCMu7x48d15MgR3XTTTX7vO2LECE2dOlWSlJmZqcWLF+uzzz5T06ZNNXr0aA0aNEjXX3+95s2bp4cfflimaQZkzgCAK5kyPF16qsEdFSdThgzVzb+nCf1okL766isdPHjwktt27Nih1atX6/nnn1efPn0UFxenUaNGadmyZZUe68CBA2ratKlatWqlO++8Uy+//HKF25ae5f/kk08UGxt7SXlQWR06dNDo0aMlSZ999pkeeeQR5ebmXrLNp59+qvfee0/PPfecunXrpiZNmlQ6z/Pnz1/xmO3m0UcfVWxsrCRpzpw5Wrt2rfe+jz/+WDt37tSiRYsUGRmpJ5544pIyK3+9+OKLysjIUEZGhs6cOaOWLVvqrbfe8usYjRo10g9+8ANJUlZWliZOnKgzZ85479+yZYtmzpypUaNGqVevXrrzzju1Zs2aas8ZAFA50xnqbcvp/86mTGeoDPeVpbZ1ARfyAmUUFxfrxRdf9P65b9++Ve5jmqbeeecdSZ4Sn4q4XC7dfvvtkqS333670mMOGjTIW9Lzpz/96YrAf7lPP/1UW7ZsqXKudta0aVPv879169ZLAn+pnTt36t///rckqU+fPurcuXO1x3vxxReVlpZ2SUj318iRI70f1v74xz+We6wFCxZ4y3pSU1OrPRYAoGqGu6h6gV+SDMOzfx1F6Acus2/fPu/Pl9eFV6T07GubNm3UvXv3crcZNGiQmjRpoqKiIq1fv77S47Vo0cL787Fjx3yaQ0N38803y+XyfHm5evXqCrcre19tX7CckpIiScrLy9N7771X7jYFBQXe+zp27KjWrVvX2PwAoKExZMqZn12tfZ352XW2tEci9ANXKNslpbi42Kd9vvjiC33yySeSKr5Qt/T2tLS0Ks/cFxV9c6agXbt2Ps2hoUtOTvb+vGPHjgq3+/TTT72dmcruU9OcTqeSkpK8c7pw4UKF25bt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w/vvv6/rr79ejRo10m233aZ33nnnim0iIiJ02223SZIOHDjgXVgMAAB/1Isz/ZGRkerSpYsk6cMPPyx3mz179ujs2bOSpN69e/t87KFDh0ry/OPrb3tG2NfSpUu9deUTJ06U0+n0a/+srCwNGDBA/fv3V0pKit8Xi06ZMkWPPfZYlbXeLVu21NSpU71/ru0QW5vOnDnj/Yalb9++3pKnsnr06OHtprRt27ZLVj4ua/v27dq+fbtWr14dvAlLWrVqlXeNgKlTp6pp06ZXbPP444+rcePGkjzvSwAAqqNenOlv166dHA7P55OK6llN09TRo0fVrVs3n5epDw0NVadOnSRJn332mRITEzVlyhT17t1bUVFRys7O1kcffaRXX31Vx48fD8yDQb1w+vRprV69WmPGjFHr1q01ZMiQoJboXC4iIkKpqal64IEHvAH0s88+05kzZ2SapuLj43XDDTdo5MiR3kWeNmzYUGktvK8r8kqe9qL18UPwokWL1K9fP8XGxmru3Lnq0qWLNm3aJLfbrT59+mjChAlyuVw6d+6c5s+fb2ms66+/XldffbX3z6UNBiTp6quv9n64KLVhw4YrOu/k5eXp+eef189//nO1aNFCf/3rX7V48WJ9/vnnatq0qe655x7dfPPNkjzfpFjtAAUAaLjqReiPjY31/lxeac/l95XdvjItW7b09sdu06aNZsyYofDwcBUUFKi4uFitW7fWvffeqyFDhmj69OnVurgQ9derr76qu+++W6GhoZo8ebLefvvtGquZP3XqlLdUpW/fvurbt2+l269evVq/+tWvKt3G1xV5JU/ZW338oJudna0f/vCHmj9/vuLj4zVu3DiNGzfukm1yc3M1c+ZMHThwwNJYd999t4YPH17ufcnJyUpOTr7kth07dpTbbnPVqlVq3ry5HnroIbVq1UpPPfXUFdt8/PHHevLJJxv0NRsAAGvqRegvvRhSqnxhmtJyDF+XqS/9ylzylHCcPn1a06dP93b/ue666zR79mwlJibq17/+tUaPHq3c3NzqPATUQ1lZWfr3v/+te+65R4mJibr99tsrrBMPtGXLlmnNmjW66aab1KNHD3Xq1EkJCQlq3LixSkpKlJeXpy+++EKffPKJ3nnnHe3fv79G5lUf7Nu3T9/+9rf17W9/W9/61rfUqlUrORwOnThxQmlpaXr99dcvaZdZ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9AMAAACGI/QDAAAAhiP0AwAAAIYj9AMAAACGI/QDAAAAhiP0AwAAAIYj9AMAAACGI/QDAAAAhnMlewAmKi0t1fr165M9DHyuqKhIx48fT/YwkIaYO4gF8wexYP4gHKWlpWEfa1VUVARsHAuQdOvXr9fixYuTPQykIeYOYsH8QSyYP4g3lvcAAAAAhiP0AwAAAIZzjho1akWyBwHYbd++fckeAtIUcwexYP4gFswfxBNr+gEAAADDsbwHAAAAMByhHwAAADAc+/QjLYwYMUJLlixRVVWV3G632tvbtWfPHr344ovauXNn1O3m5eVp8eLFqqmpUWlpqbq6utTY2Khf/vKX2rJlSxwrQDLFe/4UFhaqpqZGlZWVmjBhgtxut/x+vw4fPqydO3fqhRde0KeffmpDJUg0u3729OVwOLRu3TpNmjRJkrR27VqtXbs2Lm0jueycP263WwsWLNCMGTN04YUXyuFw6NixY9q7d6/eeust1dXVxakKmIIP8iLljRs3Ts8995yuuOIKFRQUqKurS8OGDdOYMWP01a9+Vd3d3Xr//fcjbnfkyJFat26dZs2apaKiInm9XuXm5uriiy/Wtddeq6KiIv3ud7+zoSIkkh3z53//939VXV2t8vJyFRQUyOv1yuVyqbi4WJMnT9aNN96oQ4cO6cCBAzZVhUSw62fP2b7xjW/oa1/7Wuj/d+3apV27dsXcLpLLzvlz9dVX6yc/+YkqKyt1wQUXyOfzSZKKi4s1btw4FRYW6vXXX49nOTAAy3uQ0rKysvTkk0+qsLBQ+/bt02233aZZs2appqZGtbW1cjgcWrZsma688sqI2165cqVGjx6tQ4cO6c4771R1dbVmzpypp556Sj6fT7feeqtuvPFGG6pCotg1f1wul3bt2qVHH31U119/vaqrqzVjxgzddddd+uijj5Sdna3vfe97GjdunE2VwW52/uzpa+TIkbr33nvV3NysY8eOxWn0SDY7589XvvIVPfbYY8rPz9err76qm2++WVVVVZo5c6auvvpqPfjgg/r9739vQ1VId7zSj5R222236frrr5fH49Fdd92lQ4cOSZJOnTql7du3a/z48SovL1d5ebk2bNgQdrvV1dVatGiRfD6fli5dqr1790qSfD6fPvjgAxUUFGjq1KmaNGmS/uu//kt+v9+W+mAvu+bPzp079R//8R/av3+/Ojs7JUmBQEBHjhzR22+/rRtuuEH5+fnKzMzkLfY0ZdfcOduKFSt06aWX6tFHH9WVV16pYcOG8Uq/AeyaP3l5efrJT36iYcOG6ZlnntETTzyh1tbW0ONer1dNTU1qaGiIe01If7zSj5Q2e/ZsSdJvfvMbtbS09Hu8trZWkjRx4kRdcsklYbc7Z84cSdKOHTvU2Ng4YLt+v1/FxcW64oorohk6UoBd8+ePf/zjoI+dOHEitCxs4sSJkQwXKcSuudPXzJkzddVVV+mdd97RO++8E/1gkXLsmj/z5s2T2+3W4cOHtWbNmvgMFkMGoR8pKzc3NxSa3n333QGPaWho0MmTJyUponA+ffp0SdIf/vCHAR9vaWnRxx9/HHG7SB12zp/z6X3lzeHgR2w6SsTcyc7O1ne+8x11dXVp1apV0Q8WKcfO+dP7gtXbb78dWscPhIvfSEhZY8aMCYWm3gB+tkAgoIMHD0qSysvLw2q3qKhIhYWFknTOD1r29jlmzJiwx4zUYdf8Ccfll18u6dzzC6krEXNn6dKluvDCC/Xss8/qs88+i36wSDl2zZ/MzExdeumlkqSPPvpIl1xyiR577DH99re/1e9+9ztt3LhR//zP/6zS0tI4VAETEfqRsoqLi0NfD/T26NmP9T0+Hu32fqgu3HaRWuyaP+dTXV2tyZMnS5I2b94clzaRWHbPncsuu0wLFizQwYMH9dxzz0U3SKQsu+ZPaWmpMjIyJElf+MIX9Pzzz+v6669XTk6Oenp6NHr0aN1yyy168cUXVVFREUMFMBWhHykrOzs79LXX6x30uK6uLklSTk5OWO32PS6cdnNzc8NqF6nFrvlzLm63Ww8//LAkqa6ubtC39pHa7Jw7lmXp4Ycflsvl0uOPP66enp7oB4qUZNf8GTZsWOjrJUuWqK2tTcuWLVNVVZWqq6t155136uDBg8rPz9e//du/qaCgIMoKYCpCPwDEQU5Ojn74wx9qxIgRam5u1ve///1kDwkp6LbbbtPkyZP129/+Vtu3b0/2cJBG+n5GyOl06tFHHz1jDn3wwQf6zne+I5/Pp6KiIracRj+EfqSs3ldBpOCex4PpfVWld+vE8+l7XDjtdnR0hNUuUotd82cgmZmZeuKJJzR58mT95S9/0d///d+fsY0e0otdc6e4uFhLly5Ve3u7nnzyydgGiZRl1/zp+7vowIEDA97R98CBA9qxY4ckNqFAf4R+pKy+ayHdbvegx/U+Fu6NbcJtt3edJTfMSU92zZ+zuVwurVy5UpWVlWpra9N9990X+oAe0pNdc+e+++5Tfn6+amtr5fF4lJOTc8Yfy7IkBedU7/eQfhLxu+tcP2N6HyspKQmrXQwdhH6krKamptBNsQbb3cCyrNAex4PtknC2EydO6Pjx45KksWPHDnpcb59/+tOfwh4zUodd86cvp9Opf/3Xf1VVVZU8Ho/+4R/+YcD7PiC92DV3endVWbp0qbZu3drvT+/jd955Z+h7SD92zZ/W1taIXpwIBAJhH4uhgdCPlNXR0aEPP/xQkga9VfmUKVNCH24a6K3OwdTX10uSKisrB3zc7XaHflj3vlWK9GLn/JGCv7RXrFihmpoadXV1afny5dwF0xB2zx2Yzc750/v76Fw39CorK5MktoJFP4R+pLQ333xTUvDuhiNGjOj3+KJFiyRJe/fujWhJRW+7X/7ylzV+/Ph+jy9cuFAOh0MtLS2hfyAg/dg1fyTpkUce0Zw5c9Td3a0HH3xQu3btin3ASBl2zJ177rlH06dPH/RPc3OzJGnt2rWh7yE92fWz57XXXpMUfJd6oBetxo4dG1rL33tncKAXoR8p7Ve/+pWam5uVn5+vH/3oR6EbZeXm5ur+++9XTU2NJGn16tX9zq2vr1d9fb3uvvvufo/V1dWpoaFBTqdTq1at0pQpUyRJGRkZWrhwoW6//XZJ0po1a9hSL43ZNX+WL1+uG2+8UT09PXrooYfYmtNAds0dDA12zZ/t27eH7iS/YsWKM95JmDp1qh5//HE5nU59+umn2rRpkx2lIY25kj0A4Fy8Xq8eeOAB/fSnP9XEiRP18ssvq729XTk5OXI6nfL7/Vq9enVUW99997vf1dq1azV69GitW7dOHo9HWVlZcrmCfy1eeeUVbdy4Md4lIYHsmD8lJSX6m7/5G0nBNbMPPfSQHnrooUGPnz17dsx1IPHs/NkD89k5fx555BH97Gc/0/jx47V69Wp1dnbK5/MpPz9fknT06FE98MAD57xHAIYmQj9S3v79+7VgwQItWbJEVVVVcrvdam1t1Z49e/TCCy9EvZ726NGjWrhwoe644w5dddVVKi0tlcfjUWNjo1555RVt2bIlzpUgGeI9f/rulZ2RkcEdmw1m188eDA12zZ/W1lYtXrxYt99+u6677jpdfPHFcrlcOnDggOrq6vT888+zZTAGZFVUVPDxbgAAAMBgrOkHAAAADEfoBwAAAAxH6AcAAAAMR+gHAAAADEfoBwAAAAxH6AcAAAAMR+gHAAAADEfoBwAAAAxH6AcAAAAMR+gHAAAADEfoB4AhYu7cuaqvr1d9fb1KS0uTPRwAQAIR+gEAAADDEfoBAAAAwxH6AQAAAMNZFRUVgWQPAgBgn4qKCq1Zs+a8x91zzz3atWuXJOnRRx/VvHnz1NzcrPnz52vEiBFasGCBqqurVVJSovz8fD3wwAOqq6s7o/2+bQxk06ZNGjVqlDZv3qzvfe97gx43duxY3XzzzZo+fbpGjhwpl8ullpYWvffee3rppZfU2NgY4bMQ9Itf/EITJkxQU1OTbrnllnMem5GRoTfeeEOFhYV65513tHz58qj6BIBU4Er2AAAAqW3y5Mn693//d11wwQUJ6e++++7TokWL5HQ6z/j+xRdfrIsvvljz5s3TmjVr9J//+Z8Rt71hwwY99NBDKisr0xe/+EW9//77gx47a9YsFRYWSpJeffXViPsCgFRC6AcAw+3Zsyf0Kv3f/d3fSZKW70IO6wAABjlJREFULVumY8eOnXHcoUOH+p2bm5urxx9/XNnZ2XrmmWe0fft2dXR0aMyYMfrss8/iPtZvf/vb+sY3viFJamho0Kuvvqr/+7//k8fjUXl5uW699VZNnTpVS5cuVVtbm15++eWI2n/zzTf1j//4j8rJydH8+fPPGfrnz58vSTp27Ji2bdsWfVEAkAII/QBguK6uLh04cEATJ04Mfe+TTz4JK7QXFhaqs7NT3/rWt/TRRx+Fvv/hhx/GfZyVlZWhwL9q1Sq99NJLZzy+b98+vfnmm/r+97+v2bNna9myZXrjjTfU3t4edh8ej0dvvfWW5s+fr2uuuUarVq1SV1dXv+NKSkpUWVkpSXr99dfl8/liqAwAko8P8gIAzmn9+vVnBH673HHHHZKkbdu29Qv8vfx+v1auXCmv16v8/Hxdc801EffTu1QnLy9P11577YDHzJ07N7S8iKU9AExA6AcAnNPrr79uex95eXmqqKiQJP33f//3OY89efKkDhw4IEn6q7/6q4j7ev/99/Xxxx9Lkr72ta8NeMy8efMkSbt379bBgwcj7gMAUg3LewAAg/J4PAOu9Y+3yy67TC5X8FfSihUrtGLFirDOGzFiRFT9bdy4UcuXL9e0adP0hS98QZ988knosYqKCo0ePVoSr/IDMAev9AMABnXy5MmE9FNUVBTVednZ2VGd99prr8nr9Uo6/YHdXr2v/veu/wcAE/BKPwBgUH6/PyH99N2ec9WqVaqvrw/rvM7Ozqj6a21tVV1dna677jrdcMMNevrpp+X3+5WXl6eamhpJ0ltvvTXgh3wBIB0R+gEAMen7DwPLss55bE5OzoDfP3HiROjr3t2G7LZhwwZdd911crvd+spXvqKtW7fq+uuvD717wNIeACZheQ8ADBGBgD03YO/o6Ah9XVBQMOhxw4cPH3QZT2NjY+gfD9OmTYvvAAexc+dOffrpp5JOL/Hp/e/HH3+shoaGhIwDABKB0A8AQ0R3d3fo68zMzLi12/eDvpMmTRr0uNmzZw/62IkTJ/TBBx9Ikq655hq53e64je9cNm7cKEmaMWOGKioqNGXKFEnSpk2bEtI/ACQKoR8Ahoi+d+Dt3Z0mHtrb20P7+M+bN0/Dhw/vd8zYsWN17733nrOdn//855KCS4BWrVo1YDu9HA6H5syZo5EjR8Ywcmnz5s3q6elRRkaGHnvsMUnSqVOn9Nprr8XULgCkGueoUaNWJHsQAAD7tbW16fbbb5fL5VJZWZmam5vldDo1bNgwFRQUyOv1hu48O2vWLF122WU6efKkXnzxxfO27fP5VF1drdzcXFVXV6utrU1Op1NlZWW66aab9Mgjj+jPf/6z/H6/cnJy1NjYqLq6ujPa+PTTT5WTk6MvfvGLGjlypObPn6/8/Hw5nU7l5eXpoosu0pe+9CV9/etf17/8y79o7ty52rRpk44fPx71c9LZ2akJEyaorKxMubm5kqS6ujpt3rw56jYBIBXxQV4AGCI6Ojr00ksv6Y477tDEiRO1evXqMx6/5557tGvXrqjafvXVV/XXf/3Xuuaaa1RWVqYf/OAHZzx+6NAhLV++XD/+8Y/P2c5TTz2l1tZW3X333SoqKtJdd92lu+66a8Bju7u7Q9tuxmLDhg2aNWtW6P9Z2gPARIR+ABhCfvzjH+uTTz7RDTfcoPLycuXn54duihWrhx9+WNu3b9e8efNUXl4up9Opzz77TG+//bZ+8YtfqL29Pax21q1bpzfeeEM333yzKisrNXr0aOXn58vr9erYsWPav3+/duzYoS1btqi1tTXmcb/77rs6fvy4ioqKdPToUf3+97+PuU0ASDVWRUWFPds5AACQBkpKSrRp0yY5nU4988wzevrpp5M9JACIOz7ICwAY0ubNmyen0ym/38/SHgDGIvQDAIasnJwc3XLLLZKkHTt2hPbtBwDTsKYfADCkFBUVKS8vT8XFxfrWt76l4uJiSdKzzz6b5JEBgH0I/QCAIeX+++/XvHnzzvjer3/966h3LgKAdEDoBwAMSd3d3Tp06JB+/etf6/nnn0/2cADAVuzeAwAAABiOD/ICAAAAhiP0AwAAAIYj9AMAAACGI/QDAAAAhiP0AwAAAIYj9AMAAACG+3+5QjO1aXBCegAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize(12, 12))\n", "\n", "plt.scatter(y_test, y_pred, s=200)\n", "\n", "plt.xlabel(\"true y\", fontsize=28)\n", "plt.ylabel(\"prediction\", fontsize=28)\n", "plt.xlim([np.min(y_test)-0.05, np.max(y_test)+0.05])\n", "plt.ylim([np.min(y_test)-0.05, np.max(y_test)+0.05])\n", "\n", "plt.text(0, 0.6, 'RMSE = %.2f' % rmse, fontsize=28)\n", "\n", "plt.savefig('structured_sparsity/sfan_pred.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once the correct features are selected, the linear regression can make good predictions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Clean up" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "import os\n", "os.remove(c_fname)\n", "os.remove(w_fname)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.12" } }, "nbformat": 4, "nbformat_minor": 2 }