diff --git a/xicorr.ipynb b/xicorr.ipynb index d55dd24..fe1bcf2 100644 --- a/xicorr.ipynb +++ b/xicorr.ipynb @@ -6,7 +6,8 @@ "name": "xicorr.ipynb", "provenance": [], "collapsed_sections": [], - "authorship_tag": "ABX9TyPUlsT6KuGfIwhEKgliVO+J", + "mount_file_id": "1ij5R4zzazK9Ji3J2SAa2RUSZ2b1hkyI4", + "authorship_tag": "ABX9TyPzAIixJDAhWWQYfGcpa942", "include_colab_link": true }, "kernelspec": { @@ -38,12 +39,12 @@ "metadata": { "id": "-4vX69aFhGlb" }, - "execution_count": 1, + "execution_count": null, "outputs": [] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "id": "-1bLlqB6hDjQ" }, @@ -77,7 +78,6 @@ " left = np.cumsum(np.flip(counts))[(counts.size - 1) - inverse]\n", " return 1. - 0.5 * float(np.abs(np.diff(right)).sum() / np.mean(left * (n - left)))\n", "\n", - "from scipy.stats import rankdata\n", "\n", "def xicorr_orig(x: 'ArrayLike', y: 'ArrayLike') -> float:\n", " \"\"\"Original R implementation of Xi translated into Python\n", @@ -85,6 +85,9 @@ " R implementation:\n", " https://github.com/cran/XICOR/blob/master/R/calculateXI.R\n", " \"\"\"\n", + "\n", + " from scipy.stats import rankdata\n", + "\n", " x = np.asarray(x)\n", " y = np.asarray(y)\n", " n = x.size\n", @@ -99,34 +102,101 @@ { "cell_type": "code", "source": [ + "X = np.load('/content/drive/MyDrive/dosenbach2007_timeseries.npz')['arr_0']" + ], + "metadata": { + "id": "AxqcY-XSqNqL" + }, + "execution_count": 88, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "X[0][0]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "_rqDenM3qclG", + "outputId": "9e05be78-6093-4c03-9937-300e896483ff" + }, + "execution_count": 99, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "32" + ] + }, + "metadata": {}, + "execution_count": 99 + } + ] + }, + { + "cell_type": "code", + "source": [ "x = np.random.rand(125) + 2\n", "y = x**2 + x + np.sqrt(x) + 12 + np.random.randn(125)\n", "\n", - "from scipy.stats import pearsonr\n", "\n", - "xicorr(x, y), xicorr2(x, y), xicorr_orig(x, y), pearsonr(x, y)[0]" + "for i in range(len(X)):\n", + " x = X[i][1]\n", + " y = X[i][2]\n", + "\n", + " from scipy.stats import pearsonr\n", + "\n", + " print(f'sub_{i}:', xicorr(x, y), xicorr2(x, y), xicorr_orig(x, y), pearsonr(x, y)[0])\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "_lUdB0FxhSGw", - "outputId": "3cc8fd00-b880-48ba-82c5-6bd40e03f85c" + "outputId": "4ea2457d-2f7a-4570-a28d-47c6c6cd9304" }, - "execution_count": 84, + "execution_count": 103, "outputs": [ { - "output_type": "execute_result", - "data": { - "text/plain": [ - "(0.5468509984639016,\n", - " 0.5468509984639016,\n", - " 0.5468509984639016,\n", - " 0.8923135014900104)" - ] - }, - "metadata": {}, - "execution_count": 84 + "output_type": "stream", + "name": "stdout", + "text": [ + "sub_0: 0.05971582181259605 0.05971582181259605 0.05971582181259605 0.007057805036315024\n", + "sub_1: 0.02188940092165903 0.02188940092165903 0.02188940092165903 0.05709108235559736\n", + "sub_2: 0.11847158218125964 0.11847158218125964 0.11847158218125964 0.35156058295897297\n", + "sub_3: -0.004992319508448473 -0.004992319508448473 -0.004992319508448473 0.007753525326876064\n", + "sub_4: 0.3160522273425499 0.3160522273425499 0.3160522273425499 0.688780863414386\n", + "sub_5: -0.08870967741935476 -0.08870967741935476 -0.08870967741935476 0.04074056728328548\n", + "sub_6: 0.030721966205837226 0.030721966205837226 0.030721966205837226 0.31886534096959906\n", + "sub_7: 0.18682795698924726 0.18682795698924726 0.18682795698924726 0.5295077968729054\n", + "sub_8: 0.081989247311828 0.081989247311828 0.081989247311828 -0.4073567278311721\n", + "sub_9: 0.0643241167434716 0.0643241167434716 0.0643241167434716 0.16035001468148263\n", + "sub_10: 0.004224270353302639 0.004224270353302639 0.004224270353302639 -0.0017708462342737451\n", + "sub_11: 0.035522273425499185 0.035522273425499185 0.035522273425499185 0.0884169650086374\n", + "sub_12: 0.046658986175115214 0.046658986175115214 0.046658986175115214 -0.00015848439682089626\n", + "sub_13: 0.03590629800307221 0.03590629800307221 0.03590629800307221 -0.07561658397244023\n", + "sub_14: -0.005952380952380931 -0.005952380952380931 -0.005952380952380931 0.027196366379864764\n", + "sub_15: 0.037634408602150504 0.037634408602150504 0.037634408602150504 -0.023365355634358476\n", + "sub_16: -0.004992319508448473 -0.004992319508448473 -0.004992319508448473 0.04638615068057758\n", + "sub_17: -0.043010752688172005 -0.043010752688172005 -0.043010752688172005 -0.03483487350881016\n", + "sub_18: 0.049347158218125964 0.049347158218125964 0.049347158218125964 0.24801276531894492\n", + "sub_19: 0.19854070660522272 0.19854070660522272 0.19854070660522272 0.49034516733068445\n", + "sub_20: 0.0038402457757296116 0.0038402457757296116 0.0038402457757296116 0.18363832525018858\n", + "sub_21: 0.028033794162826475 0.028033794162826475 0.028033794162826475 0.32805666138666145\n", + "sub_22: 0.022849462365591378 0.022849462365591378 0.022849462365591378 0.3428984291846277\n", + "sub_23: 0.0005760368663594306 0.0005760368663594306 0.0005760368663594306 0.37827926330590994\n", + "sub_24: 0.019009216589861766 0.019009216589861766 0.019009216589861766 -0.014662758255547994\n", + "sub_25: 0.0071044546850997925 0.0071044546850997925 0.0071044546850997925 0.31079563307701513\n", + "sub_26: 0.092741935483871 0.092741935483871 0.092741935483871 0.34952238435895855\n", + "sub_27: 0.20852534562211977 0.20852534562211977 0.20852534562211977 0.6566733607025322\n", + "sub_28: -0.033986175115207296 -0.033986175115207296 -0.033986175115207296 -0.13475542316468594\n", + "sub_29: 0.06682027649769584 0.06682027649769584 0.06682027649769584 0.44675728779363655\n", + "sub_30: 0.05030721966205842 0.05030721966205842 0.05030721966205842 0.4287767220184844\n", + "sub_31: 0.006144393241167445 0.006144393241167445 0.006144393241167445 0.16001212766044476\n" + ] } ] }