{"id":831,"date":"2023-07-28T14:53:35","date_gmt":"2023-07-28T14:53:35","guid":{"rendered":"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/"},"modified":"2023-07-28T14:53:35","modified_gmt":"2023-07-28T14:53:35","slug":"pitone-remoto-mahalanobis","status":"publish","type":"post","link":"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/","title":{"rendered":"Come calcolare la distanza di mahalanobis in python"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\">La <strong>distanza di Mahalanobis<\/strong> \u00e8 la distanza tra due punti in uno spazio multivariato. Viene spesso utilizzato per rilevare valori anomali nelle analisi statistiche che coinvolgono pi\u00f9 variabili.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Questo tutorial spiega come calcolare la distanza Mahalanobis in Python.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Esempio: distanza Mahalanobis in Python<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Utilizzare i passaggi seguenti per calcolare la distanza Mahalanobis per ciascuna osservazione in un set di dati in Python.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>Passaggio 1: crea il set di dati.<\/strong><\/span><\/p>\n<p> <span style=\"color: #000000;\">Innanzitutto, creeremo un set di dati che mostra i punteggi degli esami di 20 studenti, insieme al numero di ore trascorse a studiare, il numero di esami pratici che hanno sostenuto e il loro voto attuale nel corso:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #107d3f;\">import<\/span> numpy <span style=\"color: #107d3f;\">as<\/span> np\n<span style=\"color: #107d3f;\">import<\/span> pandas <span style=\"color: #107d3f;\">as<\/span> pd<span style=\"color: #107d3f;\">\nimport<\/span> scipy <span style=\"color: #107d3f;\">as<\/span> stats\n\ndata = {'score': [91, 93, 72, 87, 86, 73, 68, 87, 78, 99, 95, 76, 84, 96, 76, 80, 83, 84, 73, 74],\n        'hours': [16, 6, 3, 1, 2, 3, 2, 5, 2, 5, 2, 3, 4, 3, 3, 3, 4, 3, 4, 4],\n        'prep': [3, 4, 0, 3, 4, 0, 1, 2, 1, 2, 3, 3, 3, 2, 2, 2, 3, 3, 2, 2],\n        'grade': [70, 88, 80, 83, 88, 84, 78, 94, 90, 93, 89, 82, 95, 94, 81, 93, 93, 90, 89, 89]\n        }\n\ndf = pd.DataFrame(data,columns=['score', 'hours', 'prep','grade'])\ndf.head()\n\n score hours prep grade\n0 91 16 3 70\n1 93 6 4 88\n2 72 3 0 80\n3 87 1 3 83\n4 86 2 4 88\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\"><strong>Passaggio 2: calcolare la distanza di Mahalanobis per ciascuna osservazione.<\/strong><\/span><\/p>\n<p> <span style=\"color: #000000;\">Successivamente, scriveremo una breve funzione per calcolare la distanza di Mahalanobis.<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #107d3f;\"><span style=\"color: #008080;\">#create function to calculate Mahalanobis distance<\/span>\ndef<\/span> mahalanobis(x= <span style=\"color: #107d3f;\">None<\/span> , data= <span style=\"color: #107d3f;\">None<\/span> , cov= <span style=\"color: #107d3f;\">None<\/span> ):\n\n    x_mu = x - np.mean(data)\n    if not cov:\n        cov = np.cov(data.values.T)\n    inv_covmat = np.linalg.inv(cov)\n    left = np.dot(x_mu, inv_covmat)\n    mahal = np.dot(left, x_mu.T)\n    return mahal.diagonal()\n\n<span style=\"color: #107d3f;\"><span style=\"color: #008080;\">#create new column in dataframe that contains Mahalanobis distance for each row<\/span><\/span>\ndf['mahalanobis'] = mahalanobis(x=df, data=df[['score', 'hours', 'prep', 'grade']])\n\n<span style=\"color: #008080;\">#display first five rows of dataframe\n<\/span>df.head()\n\n score hours prep grade mahalanobis\n0 91 16 3 70 16.501963\n1 93 6 4 88 2.639286\n2 72 3 0 80 4.850797\n3 87 1 3 83 5.201261\n4 86 2 4 88 3.828734\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\"><strong>Passaggio 3: calcolare il valore p per ciascuna distanza Mahalanobis.<\/strong><\/span><\/p>\n<p> <span style=\"color: #000000;\">Possiamo vedere che alcune distanze di Mahalanobis sono molto pi\u00f9 grandi di altre. Per determinare se qualcuna delle distanze \u00e8 statisticamente significativa, dobbiamo calcolare i loro valori p.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Il valore p per ciascuna distanza viene calcolato come valore p che corrisponde alla statistica chi quadrato della distanza Mahalanobis con k-1 gradi di libert\u00e0, dove k = numero di variabili. Quindi in questo caso utilizzeremo i gradi di libert\u00e0 4-1 = 3.<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #107d3f;\">from<\/span> scipy.stats <span style=\"color: #107d3f;\">import<\/span> chi2\n\n<span style=\"color: #008080;\">#calculate p-value for each mahalanobis distance<\/span> \ndf['p'] = 1 - chi2.cdf(df['mahalanobis'], 3)\n\n<span style=\"color: #008080;\">#display p-values for first five rows in dataframe<\/span>\ndf.head()\n\n score hours prep grade mahalanobis p\n0 91 16 3 70 16.501963 0.000895\n1 93 6 4 88 2.639286 0.450644\n2 72 3 0 80 4.850797 0.183054\n3 87 1 3 83 5.201261 0.157639\n4 86 2 4 88 3.828734 0.280562\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Generalmente, un valore p <strong>inferiore a 0,001<\/strong> \u00e8 considerato un valore anomalo.<\/span> <span style=\"color: #000000;\">Possiamo vedere che la prima osservazione \u00e8 un valore anomalo nel set di dati perch\u00e9 ha un valore p inferiore a 0,001.<\/span><\/p>\n<p> <span style=\"color: #000000;\">A seconda del contesto del problema, potresti decidere di rimuovere questa osservazione dal set di dati perch\u00e9 \u00e8 un valore anomalo e potrebbe influenzare i risultati dell&#8217;analisi.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La distanza di Mahalanobis \u00e8 la distanza tra due punti in uno spazio multivariato. Viene spesso utilizzato per rilevare valori anomali nelle analisi statistiche che coinvolgono pi\u00f9 variabili. Questo tutorial spiega come calcolare la distanza Mahalanobis in Python. Esempio: distanza Mahalanobis in Python Utilizzare i passaggi seguenti per calcolare la distanza Mahalanobis per ciascuna osservazione [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Come calcolare la distanza di Mahalanobis in Python \u2013 Statorials<\/title>\n<meta name=\"description\" content=\"Una semplice spiegazione su come calcolare la distanza di Mahalanobis in Python.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come calcolare la distanza di Mahalanobis in Python \u2013 Statorials\" \/>\n<meta property=\"og:description\" content=\"Una semplice spiegazione su come calcolare la distanza di Mahalanobis in Python.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-28T14:53:35+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/\",\"url\":\"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/\",\"name\":\"Come calcolare la distanza di Mahalanobis in Python \u2013 Statorials\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/it\/#website\"},\"datePublished\":\"2023-07-28T14:53:35+00:00\",\"dateModified\":\"2023-07-28T14:53:35+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae\"},\"description\":\"Una semplice spiegazione su come calcolare la distanza di Mahalanobis in Python.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Casa\",\"item\":\"https:\/\/statorials.org\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Come calcolare la distanza di mahalanobis in python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/statorials.org\/it\/#website\",\"url\":\"https:\/\/statorials.org\/it\/\",\"name\":\"Statorials\",\"description\":\"La tua guida all&#039;alfabetizzazione statistica!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/statorials.org\/it\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae\",\"name\":\"Benjamin anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/statorials.org\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/statorials.org\/it\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"contentUrl\":\"https:\/\/statorials.org\/it\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"caption\":\"Benjamin anderson\"},\"description\":\"Ciao, sono Benjamin, un professore di statistica in pensione diventato insegnante dedicato di Statorials. Con una vasta esperienza e competenza nel campo della statistica, sono ansioso di condividere le mie conoscenze per potenziare gli studenti attraverso Statorials. Scopri di pi\u00f9\",\"sameAs\":[\"https:\/\/statorials.org\/it\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Come calcolare la distanza di Mahalanobis in Python \u2013 Statorials","description":"Una semplice spiegazione su come calcolare la distanza di Mahalanobis in Python.","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:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/","og_locale":"it_IT","og_type":"article","og_title":"Come calcolare la distanza di Mahalanobis in Python \u2013 Statorials","og_description":"Una semplice spiegazione su come calcolare la distanza di Mahalanobis in Python.","og_url":"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/","og_site_name":"Statorials","article_published_time":"2023-07-28T14:53:35+00:00","author":"Benjamin anderson","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Benjamin anderson","Est. reading time":"2 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/","url":"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/","name":"Come calcolare la distanza di Mahalanobis in Python \u2013 Statorials","isPartOf":{"@id":"https:\/\/statorials.org\/it\/#website"},"datePublished":"2023-07-28T14:53:35+00:00","dateModified":"2023-07-28T14:53:35+00:00","author":{"@id":"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae"},"description":"Una semplice spiegazione su come calcolare la distanza di Mahalanobis in Python.","breadcrumb":{"@id":"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/it\/pitone-remoto-mahalanobis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Casa","item":"https:\/\/statorials.org\/it\/"},{"@type":"ListItem","position":2,"name":"Come calcolare la distanza di mahalanobis in python"}]},{"@type":"WebSite","@id":"https:\/\/statorials.org\/it\/#website","url":"https:\/\/statorials.org\/it\/","name":"Statorials","description":"La tua guida all&#039;alfabetizzazione statistica!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/statorials.org\/it\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae","name":"Benjamin anderson","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/statorials.org\/it\/#\/schema\/person\/image\/","url":"https:\/\/statorials.org\/it\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","contentUrl":"https:\/\/statorials.org\/it\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","caption":"Benjamin anderson"},"description":"Ciao, sono Benjamin, un professore di statistica in pensione diventato insegnante dedicato di Statorials. Con una vasta esperienza e competenza nel campo della statistica, sono ansioso di condividere le mie conoscenze per potenziare gli studenti attraverso Statorials. Scopri di pi\u00f9","sameAs":["https:\/\/statorials.org\/it"]}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"_links":{"self":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/posts\/831"}],"collection":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/comments?post=831"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/posts\/831\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/media?parent=831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/categories?post=831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/tags?post=831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}