{"id":691,"date":"2025-02-23T20:35:00","date_gmt":"2025-02-23T19:35:00","guid":{"rendered":"https:\/\/noiseonthenet.space\/noise\/?p=691"},"modified":"2025-03-02T22:41:26","modified_gmt":"2025-03-02T21:41:26","slug":"take-the-statistical-test","status":"publish","type":"post","link":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/","title":{"rendered":"Take the (statistical) Test"},"content":{"rendered":"<p> <img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/02\/braden-collum-9HI8UJMSdZA-unsplash.jpg?ssl=1\" alt=\"braden-collum-9HI8UJMSdZA-unsplash.jpg\" \/> Photo by <a href=\"https:\/\/unsplash.com\/@bradencollum?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash\">Braden Collum<\/a> on <a href=\"https:\/\/unsplash.com\/photos\/man-on-running-field-9HI8UJMSdZA?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash\">Unsplash<\/a> <br> <\/p>\n\n<p> Our trip is finally closing: we visited <a href=\"https:\/\/noiseonthenet.space\/noise\/2025\/01\/a-trip-to-jupyter-lab\/\">Jupyter<\/a>, met <a href=\"https:\/\/noiseonthenet.space\/noise\/2025\/01\/meet-the-pandas\/\">Pandas<\/a>, <a href=\"https:\/\/noiseonthenet.space\/noise\/2025\/02\/data-the-final-frontier\/\">explored our datasets<\/a>, <a href=\"https:\/\/noiseonthenet.space\/noise\/2025\/02\/coming-back-down-to-earth\/\">created independent scripts<\/a> and introduced <a href=\"https:\/\/noiseonthenet.space\/noise\/2025\/02\/hold-the-line\/\">linear regression<\/a>. <br> <\/p>\n\n<p> Now is the time to introduce a few statistical tests <br> <\/p>\n\n<p> The jupyter notebooks for this series of posts, the datasets, their source and their attribution are available in this <a href=\"https:\/\/github.com\/noiseOnTheNet\/python-post023_jupyter_analitics\">Github Repo<\/a> <br> <\/p>\n\n<p> <a id=\"orge0304b1\"><\/a> <\/p>\n<div id=\"outline-container-statistical-tests-intro\" class=\"outline-2\">\n<h2 id=\"statistical-tests-intro\">Statistical Tests Intro<\/h2>\n<div class=\"outline-text-2\" id=\"text-statistical-tests-intro\">\n<p> The purpose of this section is merely to introduce a couple of the most common statistical test. <\/p>\n\n<p> There is no attempt to give a complete statistical background; there is no attempt to give any complete list of available tests. <\/p>\n\n<p> The main purpose is to illustrate a typical usage of some of the most common python libraries when performing some more complex analysis. <\/p>\n\n<p> The reader is invited to study the statistical theory before using any test in order to familiarize with names, objectives and common pitfalls. <\/p>\n\n<p> <a id=\"org2aa22df\"><\/a> <\/p>\n<\/div>\n<div id=\"outline-container-bivariate-students-t-test\" class=\"outline-3\">\n<h3 id=\"bivariate-students-t-test\">Bivariate Student&rsquo;s T test<\/h3>\n<div class=\"outline-text-3\" id=\"text-bivariate-students-t-test\">\n<p> We may want to verify if two sample datasets may be coming from the same distribution or different ones, i.e. they are not very different or they are different enough. <\/p>\n\n<p> This test makes some assumptions (e.g. the distribution is normal etc.) please <a href=\"https:\/\/en.wikipedia.org\/wiki\/Student's_t-test\">check the details<\/a> before using this test <\/p>\n\n<p> This test&rsquo;s hypothesis are the following: <\/p>\n\n<ul class=\"org-ul\">\n<li>H0 (base hypothesis) both datasets are coming from a sampling of the same distribution<\/li>\n<li>H1 (alternative hypothesis) the datasets may have been sampled out of different distributions<\/li>\n<\/ul>\n\n<p> In this example we are going to compare the distribution of temperatures measured in Rome in June 1951 with the those measured in June 2009 and try to see if there is any meaningful shift <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cba6f7;\">import<\/span> pandas <span style=\"color: #cba6f7;\">as<\/span> pd\n<span style=\"color: #cba6f7;\">import<\/span> seaborn <span style=\"color: #cba6f7;\">as<\/span> sns\n<span style=\"color: #cba6f7;\">import<\/span> scipy.stats\n<span style=\"color: #cba6f7;\">from<\/span> scipy.stats <span style=\"color: #cba6f7;\">import<\/span> ttest_ind\n<\/pre>\n<\/div>\n\n<p> <a id=\"org0266ebf\"><\/a> read daily temperatures measured in Rome from 1951 to 2009 <\/p>\n\n<p> This is the content: <\/p>\n\n<table border=\"2\" cellspacing=\"0\" cellpadding=\"6\" rules=\"groups\" frame=\"hsides\">\n\n\n<colgroup>\n<col  class=\"org-left\" \/>\n\n<col  class=\"org-left\" \/>\n<\/colgroup>\n<thead>\n<tr>\n<th scope=\"col\" class=\"org-left\">column<\/th>\n<th scope=\"col\" class=\"org-left\">meaning<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"org-left\">SOUID<\/td>\n<td class=\"org-left\">categorical: measurement source id<\/td>\n<\/tr>\n\n<tr>\n<td class=\"org-left\">DATE<\/td>\n<td class=\"org-left\">calendar day in YYYYMMDD format<\/td>\n<\/tr>\n\n<tr>\n<td class=\"org-left\">TG<\/td>\n<td class=\"org-left\">average temperature<\/td>\n<\/tr>\n\n<tr>\n<td class=\"org-left\">Q_TG<\/td>\n<td class=\"org-left\">categorical: quality tag 9=invalid<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cdd6f4;\">roma<\/span> <span style=\"color: #89dceb;\">=<\/span> pd.read_csv(<span style=\"color: #a6e3a1;\">\"TG_SOUID100860.txt\"<\/span>,skiprows<span style=\"color: #89dceb;\">=<\/span><span style=\"color: #fab387;\">20<\/span>)\n<\/pre>\n<\/div>\n\n<p> <a id=\"org0c22ac0\"><\/a> This dataset column names include spaces, we need to remove them <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\">roma.<span style=\"color: #cdd6f4;\">columns<\/span> <span style=\"color: #89dceb;\">=<\/span> <span style=\"color: #f38ba8;\">list<\/span>(<span style=\"color: #f38ba8;\">map<\/span>(<span style=\"color: #f38ba8;\">str<\/span>.strip,roma.columns))\n<\/pre>\n<\/div>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\">roma.columns\n<\/pre>\n<\/div>\n\n<pre class=\"example\">\nIndex(['SOUID', 'DATE', 'TG', 'Q_TG'], dtype='object')\n<\/pre>\n\n\n<p> <a id=\"org907ffbe\"><\/a> let&rsquo;s parse the DATE field into a pandas date series <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\">roma.<span style=\"color: #cdd6f4;\">DATE<\/span> <span style=\"color: #89dceb;\">=<\/span> pd.to_datetime(roma.DATE,<span style=\"color: #f38ba8;\">format<\/span><span style=\"color: #89dceb;\">=<\/span><span style=\"color: #a6e3a1;\">\"%Y%m%d\"<\/span>)\n<\/pre>\n<\/div>\n\n<p> <a id=\"orgd92a377\"><\/a> We can now safely extract month and year <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cdd6f4;\">roma<\/span>[<span style=\"color: #a6e3a1;\">\"MONTH\"<\/span>] <span style=\"color: #89dceb;\">=<\/span> roma.DATE.dt.month\n<\/pre>\n<\/div>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cdd6f4;\">roma<\/span>[<span style=\"color: #a6e3a1;\">\"YEAR\"<\/span>] <span style=\"color: #89dceb;\">=<\/span> roma.DATE.dt.year\n<\/pre>\n<\/div>\n\n<p> <a id=\"org9f89917\"><\/a> Let&rsquo;s clean the dataset from invalid measurements <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cdd6f4;\">roma_cleaned<\/span> <span style=\"color: #89dceb;\">=<\/span> roma.loc[roma.Q_TG <span style=\"color: #89dceb;\">!=<\/span> <span style=\"color: #fab387;\">9<\/span>,:]\n<\/pre>\n<\/div>\n\n<p> <a id=\"orga23419d\"><\/a> Now I will extract the two datasets to compare <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cdd6f4;\">roma_giugno_1951<\/span> <span style=\"color: #89dceb;\">=<\/span> roma_cleaned.loc[\n    (roma_cleaned.YEAR <span style=\"color: #89dceb;\">==<\/span> <span style=\"color: #fab387;\">1951<\/span>) <span style=\"color: #89dceb;\">&amp;<\/span> (roma_cleaned.MONTH <span style=\"color: #89dceb;\">==<\/span> <span style=\"color: #fab387;\">6<\/span>),\n    <span style=\"color: #a6e3a1;\">\"TG\"<\/span>\n]\n<\/pre>\n<\/div>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cdd6f4;\">roma_giugno_2009<\/span> <span style=\"color: #89dceb;\">=<\/span> roma_cleaned.loc[\n    (roma_cleaned.YEAR <span style=\"color: #89dceb;\">==<\/span> <span style=\"color: #fab387;\">2009<\/span>) <span style=\"color: #89dceb;\">&amp;<\/span> (roma_cleaned.MONTH <span style=\"color: #89dceb;\">==<\/span> <span style=\"color: #fab387;\">6<\/span>),\n    <span style=\"color: #a6e3a1;\">\"TG\"<\/span>\n]\n<\/pre>\n<\/div>\n\n<p> <a id=\"org04695e9\"><\/a> Let&rsquo;s apply the test on them <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\">ttest_ind(roma_giugno_1951,roma_giugno_2009)\n<\/pre>\n<\/div>\n\n<pre class=\"example\">\nTtestResult(statistic=np.float64(-2.167425930725216), pvalue=np.float64(0.03432071944797424), df=np.float64(58.0))\n<\/pre>\n\n\n<p> <a id=\"org2128b4e\"><\/a> p-value is about 3% this is not a scientific proof of temperature shift but some more investigations may be worth <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cdd6f4;\">roma_giugno<\/span><span style=\"color: #89dceb;\">=<\/span> roma_cleaned.loc[\n    ((roma_cleaned.YEAR <span style=\"color: #89dceb;\">==<\/span> <span style=\"color: #fab387;\">2009<\/span>) <span style=\"color: #89dceb;\">|<\/span>\n     (roma_cleaned.YEAR <span style=\"color: #89dceb;\">==<\/span> <span style=\"color: #fab387;\">1951<\/span>)) <span style=\"color: #89dceb;\">&amp;<\/span> \n    (roma_cleaned.MONTH <span style=\"color: #89dceb;\">==<\/span> <span style=\"color: #fab387;\">6<\/span>)\n]\nsns.kdeplot(data<span style=\"color: #89dceb;\">=<\/span>roma_giugno,x<span style=\"color: #89dceb;\">=<\/span><span style=\"color: #a6e3a1;\">\"TG\"<\/span>,hue<span style=\"color: #89dceb;\">=<\/span><span style=\"color: #a6e3a1;\">\"YEAR\"<\/span>)\n<\/pre>\n<\/div>\n\n<pre class=\"example\">\n&lt;Axes: xlabel='TG', ylabel='Density'&gt;\n<\/pre>\n\n\n<div id=\"org35e93b5\" class=\"figure\"> <p><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/02\/8c91e89018e367dc62c1159410beb26224b590c1.png?ssl=1\" alt=\"8c91e89018e367dc62c1159410beb26224b590c1.png\" \/> <\/p> <\/div>\n\n<p> <a id=\"org6fdebd8\"><\/a> <\/p>\n<\/div>\n<\/div>\n<div id=\"outline-container-analyisis-of-variance\" class=\"outline-3\">\n<h3 id=\"analyisis-of-variance\">ANalyisis Of VAriance<\/h3>\n<div class=\"outline-text-3\" id=\"text-analyisis-of-variance\">\n<p> <a href=\"https:\/\/en.wikipedia.org\/wiki\/Analysis_of_variance\">Analysis of Variance<\/a> is a family of methodologies that extend Student&rsquo;s T to more than two groups; their goal is to prove whether a factor makes a difference when it splits a set of measurements. <\/p>\n\n<p> It can be used to show if a disease treatment is effective or not. The factor or categorical independend variable is the &ldquo;input&rdquo;, while the health parameter is a continuous dependent variable or &ldquo;output&rdquo;. <\/p>\n\n<p> We are going to show the simplest use of it called <code>Fixed Mixture<\/code> <\/p>\n\n<p> In our exercise we are going to show the relevance of geography, year or gender respect to the unemployment in Italy for people between 15 and 24 <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cdd6f4;\">unemployment<\/span> <span style=\"color: #89dceb;\">=<\/span> pd.read_csv(\n    <span style=\"color: #a6e3a1;\">\"unemployment_it.csv\"<\/span>,\n    dtype<span style=\"color: #89dceb;\">=<\/span>{\n        <span style=\"color: #a6e3a1;\">\"Gender\"<\/span>:<span style=\"color: #a6e3a1;\">\"category\"<\/span>,\n        <span style=\"color: #a6e3a1;\">\"Area\"<\/span>:<span style=\"color: #a6e3a1;\">\"category\"<\/span>,\n        <span style=\"color: #a6e3a1;\">\"Age\"<\/span>:<span style=\"color: #a6e3a1;\">\"category\"<\/span>,\n    }\n)\nunemployment.columns\n<\/pre>\n<\/div>\n\n<pre class=\"example\">\nIndex(['Age', 'Gender', 'Area', 'Frequency', 'Year', 'Rate'], dtype='object')\n<\/pre>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\">unemployment.Gender.unique()\n<\/pre>\n<\/div>\n\n<pre class=\"example\">\n['Male', 'Female']\nCategories (2, object): ['Female', 'Male']\n<\/pre>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\">unemployment.Area.unique()\n<\/pre>\n<\/div>\n\n<pre class=\"example\">\n['North', 'North-west', 'North-east', 'Center', 'South']\nCategories (5, object): ['Center', 'North', 'North-east', 'North-west', 'South']\n<\/pre>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cba6f7;\">import<\/span> statsmodels.api <span style=\"color: #cba6f7;\">as<\/span> sm\n<\/pre>\n<\/div>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cba6f7;\">from<\/span> statsmodels.formula.api <span style=\"color: #cba6f7;\">import<\/span> ols\n<\/pre>\n<\/div>\n\n<p> <a id=\"orgfd9b6fa\"><\/a> Using * in the formula is adding interaction between factor in the analysis <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cdd6f4;\">model<\/span> <span style=\"color: #89dceb;\">=<\/span> ols(<span style=\"color: #a6e3a1;\">'Rate ~ Gender * Area * Year'<\/span>, data<span style=\"color: #89dceb;\">=<\/span>unemployment).fit()\n<\/pre>\n<\/div>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cdd6f4;\">table<\/span> <span style=\"color: #89dceb;\">=<\/span> sm.stats.anova_lm(model, typ<span style=\"color: #89dceb;\">=<\/span><span style=\"color: #fab387;\">2<\/span>)\n<\/pre>\n<\/div>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #f38ba8;\">print<\/span>(table)\n<\/pre>\n<\/div>\n\n<em><\/em>\n<pre class=\"example\" id=\"nil\">\n                        sum_sq     df           F        PR(&gt;F)\nGender             1285.245000    1.0   31.770447  6.601688e-08\nArea              18194.797505    4.0  112.440984  7.299258e-48\nGender:Area          93.451500    4.0    0.577516  6.793006e-01\nYear               1134.738195    1.0   28.050014  3.420439e-07\nGender:Year          20.187814    1.0    0.499030  4.808400e-01\nArea:Year            15.967523    4.0    0.098677  9.827658e-01\nGender:Area:Year     40.068551    4.0    0.247617  9.108217e-01\nResidual           7281.738917  180.0         NaN           NaN\n<\/pre>\n\n<p> <a id=\"org7b7e0a8\"><\/a> The geographical area looks very important respect to the others: the F score is much higher and the p-value is way smaller than any other contributor <\/p>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\"><span style=\"color: #cba6f7;\">import<\/span> seaborn <span style=\"color: #cba6f7;\">as<\/span> sns\n<\/pre>\n<\/div>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\">sns.kdeplot(data<span style=\"color: #89dceb;\">=<\/span>unemployment,x<span style=\"color: #89dceb;\">=<\/span><span style=\"color: #a6e3a1;\">\"Rate\"<\/span>,hue<span style=\"color: #89dceb;\">=<\/span><span style=\"color: #a6e3a1;\">\"Gender\"<\/span>)\n<\/pre>\n<\/div>\n\n<pre class=\"example\">\n&lt;Axes: xlabel='Rate', ylabel='Density'&gt;\n<\/pre>\n\n\n<div id=\"org75d5ea2\" class=\"figure\"> <p><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/02\/c7ada1736dbf4722b2fa90f9ef94c54745c2d195.png?ssl=1\" alt=\"c7ada1736dbf4722b2fa90f9ef94c54745c2d195.png\" \/> <\/p> <\/div>\n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\">sns.kdeplot(data<span style=\"color: #89dceb;\">=<\/span>unemployment,x<span style=\"color: #89dceb;\">=<\/span><span style=\"color: #a6e3a1;\">\"Rate\"<\/span>,hue<span style=\"color: #89dceb;\">=<\/span><span style=\"color: #a6e3a1;\">\"Area\"<\/span>)\n<\/pre>\n<\/div>\n\n<pre class=\"example\">\n&lt;Axes: xlabel='Rate', ylabel='Density'&gt;\n<\/pre>\n\n\n<div id=\"orgd64581c\" class=\"figure\"> <p><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/02\/db12fe102f3d876ae4edd889dc54e05bf5a3dafc.png?ssl=1\" alt=\"db12fe102f3d876ae4edd889dc54e05bf5a3dafc.png\" \/> <\/p> <\/div>\n\n<p> <a id=\"org7267af5\"><\/a> Many examples are available on the internet, e.g. <a href=\"https:\/\/github.com\/KenDaupsey\/One-Way-Repeated-measures-ANOVA\/blob\/main\/One_Way_Repeated_measures_ANOVA.ipynb\">this one<\/a> <\/p>\n\n<p> <a id=\"orge855158\"><\/a> <\/p>\n<\/div>\n<div id=\"outline-container-optional-how-it-works\" class=\"outline-4\">\n<h4 id=\"optional-how-it-works\">(Optional) How it works<\/h4>\n<div class=\"outline-text-4\" id=\"text-optional-how-it-works\">\n<p> The main idea is to see how a grouping is or not relevant to explain the global variance <\/p>\n\n<p> In order to understand this test we can derive a formula representing the contribution to the global variance given by each the variance within each subgroup and the variance between all subgroups <\/p>\n\n<p> Let&rsquo;s start with the usual variance definition <\/p>\n\n<p style=\"text-align:center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=var%5BX%5D+%3A%3D+%5Cfrac%7B%5Csum_%7Bx+%5Cin+X%7D%7B%28x+-+%5Cbar%7Bx%7D%29%5E2%7D%7D%7Bn+-+1%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"var[X] := &#92;frac{&#92;sum_{x &#92;in X}{(x - &#92;bar{x})^2}}{n - 1} \" class=\"latex\" \/> <\/p> \n\n<p> where <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cbar%7Bx%7D+%3D+E%5BX%5D+%3D+%5Cfrac%7B%5Csum_%7Bx+%5Cin+X%7Dx%7D%7Bcard%5BX%5D%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;bar{x} = E[X] = &#92;frac{&#92;sum_{x &#92;in X}x}{card[X]}\" class=\"latex\" \/> <\/p>\n\n<p> given a partition <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X_i&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X_i\" class=\"latex\" \/> i.e. <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cbigcup_%7Bi+%5Cin+G%7D%7BX_i%7D+%3D++X&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;bigcup_{i &#92;in G}{X_i} =  X\" class=\"latex\" \/> and <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=n+%3D+card%5BX%5D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"n = card[X]\" class=\"latex\" \/> ; <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=n_i+%3D+card%5BX_i%5D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"n_i = card[X_i]\" class=\"latex\" \/> ; <\/p>\n\n<p> so <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cbar%7Bx_i%7D+%3D+E%5BX_i%5D+%3D+%5Cfrac%7B%5Csum_%7Bx+%5Cin+X_i%7Dx%7D%7Bn_i%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;bar{x_i} = E[X_i] = &#92;frac{&#92;sum_{x &#92;in X_i}x}{n_i}\" class=\"latex\" \/> <\/p>\n\n<p> breaking the sum into each subgroup and adding and removing <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=x_i&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"x_i\" class=\"latex\" \/> inside the square we have <\/p>\n\n<p style=\"text-align:center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=var%5BX%5D+%3A%3D+%5Cfrac%7B%5Csum_%7Bi+%5Cin+G%7D%7B%5Csum_%7Bx+%5Cin+X_i%7D%28x+-+%5Cbar%7Bx%7D+%2B+%5Cbar%7Bx_i%7D+-+%5Cbar%7Bx_i%7D%29%5E2%7D%7D%7Bn+-+1%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"var[X] := &#92;frac{&#92;sum_{i &#92;in G}{&#92;sum_{x &#92;in X_i}(x - &#92;bar{x} + &#92;bar{x_i} - &#92;bar{x_i})^2}}{n - 1} \" class=\"latex\" \/> <\/p> \n\n<p> developing the square <\/p>\n\n<p style=\"text-align:center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=var%5BX%5D+%3A%3D+%5Cfrac%7B%5Csum_%7Bi+%5Cin+G%7D%7B%5Csum_%7Bx+%5Cin+X_i%7D%28x+-+%5Cbar%7Bx_i%7D%29%5E2+%2B+%28%5Cbar%7Bx_i%7D+-+%5Cbar%7Bx%7D%29%5E2+-2%28x+-+%5Cbar%7Bx_i%7D%29%28%5Cbar%7Bx_i%7D+-+%5Cbar%7Bx%7D%29%7D%7D%7Bn+-+1%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"var[X] := &#92;frac{&#92;sum_{i &#92;in G}{&#92;sum_{x &#92;in X_i}(x - &#92;bar{x_i})^2 + (&#92;bar{x_i} - &#92;bar{x})^2 -2(x - &#92;bar{x_i})(&#92;bar{x_i} - &#92;bar{x})}}{n - 1} \" class=\"latex\" \/> <\/p> \n\n<p> we can bring the constant part outside of the sum <\/p>\n\n<p style=\"text-align:center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=var%5BX%5D+%3A%3D+%5Cfrac%7B%5Csum_%7Bi+%5Cin+G%7D%7B%28+n_i+%28%5Cbar%7Bx_i%7D+-+%5Cbar%7Bx%7D%29%5E2+%2B+%5Csum_%7Bx+%5Cin+X_i%7D%28x+-+%5Cbar%7Bx_i%7D%29%5E2+-2%28%5Cbar%7Bx_i%7D+-+%5Cbar%7Bx%7D%29%5Csum_%7Bx+%5Cin+X_i%7D%7B%28x+-+%5Cbar%7Bx_i%7D%29%7D%7D%29%7D%7Bn+-+1%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"var[X] := &#92;frac{&#92;sum_{i &#92;in G}{( n_i (&#92;bar{x_i} - &#92;bar{x})^2 + &#92;sum_{x &#92;in X_i}(x - &#92;bar{x_i})^2 -2(&#92;bar{x_i} - &#92;bar{x})&#92;sum_{x &#92;in X_i}{(x - &#92;bar{x_i})}})}{n - 1} \" class=\"latex\" \/> <\/p> \n\n<p> by definition of <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cbar%7Bx_i%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;bar{x_i}\" class=\"latex\" \/> we have <\/p>\n\n<p style=\"text-align:center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cforall_%7Bi+%5Cin+G%7D%5Csum_%7Bx+%5Cin+X_i%7D%7B%28x+-+%5Cbar%7Bx_i%7D%29%7D+%3D+0+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;forall_{i &#92;in G}&#92;sum_{x &#92;in X_i}{(x - &#92;bar{x_i})} = 0 \" class=\"latex\" \/> <\/p> \n\n<p> so the last addend can be simplified; let&rsquo;s break the fraction <\/p>\n\n<p style=\"text-align:center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=var%5BX%5D+%3A%3D+%5Cfrac%7B%5Csum_%7Bi+%5Cin+G%7D%7B+n_i+%28%5Cbar%7Bx_i%7D+-+%5Cbar%7Bx%7D%29%5E2+%7D%7D%7Bn+-+1%7D+%2B+%5Cfrac%7B%5Csum_%7Bi+%5Cin+G%7D%7B%5Csum_%7Bx+%5Cin+X_i%7D%28x+-+%5Cbar%7Bx_i%7D%29%5E2%7D%7D%7Bn+-+1%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"var[X] := &#92;frac{&#92;sum_{i &#92;in G}{ n_i (&#92;bar{x_i} - &#92;bar{x})^2 }}{n - 1} + &#92;frac{&#92;sum_{i &#92;in G}{&#92;sum_{x &#92;in X_i}(x - &#92;bar{x_i})^2}}{n - 1} \" class=\"latex\" \/> <\/p> \n\n<p> now we multiply and divide the second part by <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=n_i+-+1&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"n_i - 1\" class=\"latex\" \/> in order to show how it may be seen as a variance <\/p>\n\n<p style=\"text-align:center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=var%5BX%5D+%3A%3D+%5Cfrac%7B%5Csum_%7Bi+%5Cin+G%7D%7B+n_i+%28%5Cbar%7Bx_i%7D+-+%5Cbar%7Bx%7D%29%5E2+%7D%7D%7Bn+-+1%7D+%2B+%5Csum_%7Bi+%5Cin+G%7D%7B%5Cfrac%7B%28n_i+-+1%29%7D%7Bn+-1%7D%5Cfrac%7B%5Csum_%7Bx+%5Cin+X_i%7D%28x+-+%5Cbar%7Bx_i%7D%29%5E2%7D%7Bn_i+-+1%7D%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"var[X] := &#92;frac{&#92;sum_{i &#92;in G}{ n_i (&#92;bar{x_i} - &#92;bar{x})^2 }}{n - 1} + &#92;sum_{i &#92;in G}{&#92;frac{(n_i - 1)}{n -1}&#92;frac{&#92;sum_{x &#92;in X_i}(x - &#92;bar{x_i})^2}{n_i - 1}} \" class=\"latex\" \/> <\/p> \n\n<p> now we can show the variance of each subgroup <\/p>\n\n<p style=\"text-align:center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=var%5BX%5D+%3A%3D+%5Cfrac%7B%5Csum_%7Bi+%5Cin+G%7D%7B+n_i+%28%5Cbar%7Bx_i%7D+-+%5Cbar%7Bx%7D%29%5E2+%7D%7D%7Bn+-+1%7D+%2B+%5Csum_%7Bi+%5Cin+G%7D%7B%5Cfrac%7B%28n_i+-+1%29%7D%7Bn+-1%7Dvar%5BX_i%5D%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"var[X] := &#92;frac{&#92;sum_{i &#92;in G}{ n_i (&#92;bar{x_i} - &#92;bar{x})^2 }}{n - 1} + &#92;sum_{i &#92;in G}{&#92;frac{(n_i - 1)}{n -1}var[X_i]} \" class=\"latex\" \/> <\/p> \n\n<p> both addends are weighted; this is equivalent to <\/p>\n\n<p style=\"text-align:center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=var%5BX%5D+%3A%3D+var%5BE%5BX_i%5D%5D+%2B+E%5Bvar%5BX_i%5D%5D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"var[X] := var[E[X_i]] + E[var[X_i]] \" class=\"latex\" \/> <\/p> \n\n<p> <a id=\"org93078e6\"><\/a> we can rewrite it by using the &ldquo;variance within groups&rdquo; and &ldquo;variance between groups&rdquo; usual names <\/p>\n\n<p style=\"text-align:center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=var%5BX%5D+%3D+var_%7Bbetween%7D+%2B+var_%7Bwithin%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"var[X] = var_{between} + var_{within} \" class=\"latex\" \/> <\/p> \n\n<p> The F-Score is calculated as the ratio of these two components: <\/p>\n\n<p style=\"text-align:center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=F+%3A%3D+var_%7Bwithin%7D+%2F+var_%7Bbetween%7D+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"F := var_{within} \/ var_{between} \" class=\"latex\" \/> <\/p> \n\n<div class=\"org-src-container\">\n<label class=\"org-src-name\"><em><\/em><\/label>\n<pre class=\"src src-python\" id=\"nil\">\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"introduction to statistical tests in Python","protected":false},"author":1,"featured_media":687,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[7],"class_list":["post-691","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-language-learning","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Take the (statistical) Test - Noise On The Net<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Take the (statistical) Test - Noise On The Net\" \/>\n<meta property=\"og:description\" content=\"introduction to statistical tests in Python\" \/>\n<meta property=\"og:url\" content=\"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/\" \/>\n<meta property=\"og:site_name\" content=\"Noise On The Net\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-23T19:35:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-02T21:41:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/02\/braden-collum-9HI8UJMSdZA-unsplash.jpg?fit=1200%2C800&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"marco.p.v.vezzoli\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"marco.p.v.vezzoli\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/\"},\"author\":{\"name\":\"marco.p.v.vezzoli\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\"},\"headline\":\"Take the (statistical) Test\",\"datePublished\":\"2025-02-23T19:35:00+00:00\",\"dateModified\":\"2025-03-02T21:41:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/\"},\"wordCount\":1064,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\"},\"image\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/braden-collum-9HI8UJMSdZA-unsplash.jpg?fit=1200%2C800&ssl=1\",\"keywords\":[\"Python\"],\"articleSection\":[\"Language learning\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/\",\"url\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/\",\"name\":\"Take the (statistical) Test - Noise On The Net\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/braden-collum-9HI8UJMSdZA-unsplash.jpg?fit=1200%2C800&ssl=1\",\"datePublished\":\"2025-02-23T19:35:00+00:00\",\"dateModified\":\"2025-03-02T21:41:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/braden-collum-9HI8UJMSdZA-unsplash.jpg?fit=1200%2C800&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/noiseonthenet.space\\\/noise\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/braden-collum-9HI8UJMSdZA-unsplash.jpg?fit=1200%2C800&ssl=1\",\"width\":1200,\"height\":800},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/2025\\\/02\\\/take-the-statistical-test\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Take the (statistical) Test\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#website\",\"url\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/\",\"name\":\"Noise On The Net\",\"description\":\"Sharing adventures in code\",\"publisher\":{\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/#\\\/schema\\\/person\\\/88c3a70f2b23480197bc61d6e1e2e982\",\"name\":\"marco.p.v.vezzoli\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\",\"caption\":\"marco.p.v.vezzoli\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g\"},\"description\":\"Self taught assembler programming at 11 on my C64 (1983). Never stopped since then -- always looking up for curious things in the software development, data science and AI. Linux and FOSS user since 1994. MSc in physics in 1996. Working in large semiconductor companies since 1997 (STM, Micron) developing analytics and full stack web infrastructures, microservices, ML solutions\",\"sameAs\":[\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/marco-paolo-valerio-vezzoli-0663835\\\/\"],\"url\":\"https:\\\/\\\/noiseonthenet.space\\\/noise\\\/author\\\/marco-p-v-vezzoli\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Take the (statistical) Test - Noise On The Net","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/","og_locale":"en_US","og_type":"article","og_title":"Take the (statistical) Test - Noise On The Net","og_description":"introduction to statistical tests in Python","og_url":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/","og_site_name":"Noise On The Net","article_published_time":"2025-02-23T19:35:00+00:00","article_modified_time":"2025-03-02T21:41:26+00:00","og_image":[{"width":1200,"height":800,"url":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/02\/braden-collum-9HI8UJMSdZA-unsplash.jpg?fit=1200%2C800&ssl=1","type":"image\/jpeg"}],"author":"marco.p.v.vezzoli","twitter_card":"summary_large_image","twitter_misc":{"Written by":"marco.p.v.vezzoli","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/#article","isPartOf":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/"},"author":{"name":"marco.p.v.vezzoli","@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982"},"headline":"Take the (statistical) Test","datePublished":"2025-02-23T19:35:00+00:00","dateModified":"2025-03-02T21:41:26+00:00","mainEntityOfPage":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/"},"wordCount":1064,"commentCount":0,"publisher":{"@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982"},"image":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/02\/braden-collum-9HI8UJMSdZA-unsplash.jpg?fit=1200%2C800&ssl=1","keywords":["Python"],"articleSection":["Language learning"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/","url":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/","name":"Take the (statistical) Test - Noise On The Net","isPartOf":{"@id":"https:\/\/noiseonthenet.space\/noise\/#website"},"primaryImageOfPage":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/#primaryimage"},"image":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/02\/braden-collum-9HI8UJMSdZA-unsplash.jpg?fit=1200%2C800&ssl=1","datePublished":"2025-02-23T19:35:00+00:00","dateModified":"2025-03-02T21:41:26+00:00","breadcrumb":{"@id":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/#primaryimage","url":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/02\/braden-collum-9HI8UJMSdZA-unsplash.jpg?fit=1200%2C800&ssl=1","contentUrl":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/02\/braden-collum-9HI8UJMSdZA-unsplash.jpg?fit=1200%2C800&ssl=1","width":1200,"height":800},{"@type":"BreadcrumbList","@id":"https:\/\/noiseonthenet.space\/noise\/2025\/02\/take-the-statistical-test\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/noiseonthenet.space\/noise\/"},{"@type":"ListItem","position":2,"name":"Take the (statistical) Test"}]},{"@type":"WebSite","@id":"https:\/\/noiseonthenet.space\/noise\/#website","url":"https:\/\/noiseonthenet.space\/noise\/","name":"Noise On The Net","description":"Sharing adventures in code","publisher":{"@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/noiseonthenet.space\/noise\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/noiseonthenet.space\/noise\/#\/schema\/person\/88c3a70f2b23480197bc61d6e1e2e982","name":"marco.p.v.vezzoli","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g","caption":"marco.p.v.vezzoli"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/b9d9aab1df560bc14d73b0b442198f196ce39e7c7a38df1dc22fec0b97f17da9?s=96&d=mm&r=g"},"description":"Self taught assembler programming at 11 on my C64 (1983). Never stopped since then -- always looking up for curious things in the software development, data science and AI. Linux and FOSS user since 1994. MSc in physics in 1996. Working in large semiconductor companies since 1997 (STM, Micron) developing analytics and full stack web infrastructures, microservices, ML solutions","sameAs":["https:\/\/noiseonthenet.space\/noise\/","https:\/\/www.linkedin.com\/in\/marco-paolo-valerio-vezzoli-0663835\/"],"url":"https:\/\/noiseonthenet.space\/noise\/author\/marco-p-v-vezzoli\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/noiseonthenet.space\/noise\/wp-content\/uploads\/2025\/02\/braden-collum-9HI8UJMSdZA-unsplash.jpg?fit=1200%2C800&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pdDUZ5-b9","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts\/691","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/comments?post=691"}],"version-history":[{"count":5,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts\/691\/revisions"}],"predecessor-version":[{"id":706,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/posts\/691\/revisions\/706"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/media\/687"}],"wp:attachment":[{"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/media?parent=691"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/categories?post=691"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/noiseonthenet.space\/noise\/wp-json\/wp\/v2\/tags?post=691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}