{"id":1194,"date":"2023-07-27T08:19:55","date_gmt":"2023-07-27T08:19:55","guid":{"rendered":"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/"},"modified":"2023-07-27T08:19:55","modified_gmt":"2023-07-27T08:19:55","slug":"regressione-della-cresta-in-r","status":"publish","type":"post","link":"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/","title":{"rendered":"Regressione della cresta in r (passo dopo passo)"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/statorials.org\/it\/regressione-della-cresta\/\" target=\"_blank\" rel=\"noopener noreferrer\">La regressione della cresta<\/a> \u00e8 un metodo che possiamo utilizzare per adattare un modello di regressione quando nei dati \u00e8 presente <a href=\"https:\/\/statorials.org\/it\/regressione-multicollinearita\/\" target=\"_blank\" rel=\"noopener noreferrer\">la multicollinearit\u00e0<\/a> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">In poche parole, la regressione dei minimi quadrati tenta di trovare stime di coefficienti che minimizzino la somma residua dei quadrati (RSS):<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>RSS = \u03a3(y <sub>i<\/sub> \u2013 \u0177 <sub>i<\/sub> )2<\/strong><\/span><\/p>\n<p> <span style=\"color: #000000;\">Oro:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\"><strong>\u03a3<\/strong> : simbolo greco che significa <em>somma<\/em><\/span><\/li>\n<li> <span style=\"color: #000000;\"><strong>y <sub>i<\/sub><\/strong> : il valore di risposta effettivo per l&#8217; <sup>i-esima<\/sup> osservazione<\/span><\/li>\n<li> <span style=\"color: #000000;\"><strong>\u0177 <sub>i<\/sub><\/strong> : il valore di risposta previsto basato sul modello di regressione lineare multipla<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Al contrario, la regressione della cresta cerca di minimizzare quanto segue:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>RSS + \u03bb\u03a3\u03b2 <sub>j<\/sub> <sup>2<\/sup><\/strong><\/span><\/p>\n<p> <span style=\"color: #000000;\">dove <em>j<\/em> va da 1 a <em>p<\/em> variabili predittive e \u03bb \u2265 0.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Questo secondo termine nell&#8217;equazione \u00e8 noto come <em>penalit\u00e0 di ritiro<\/em> . Nella regressione della cresta, selezioniamo un valore per \u03bb che produce il test MSE pi\u00f9 basso possibile (errore quadratico medio).<\/span><\/p>\n<p> <span style=\"color: #000000;\">Questo tutorial fornisce un esempio passo passo di come eseguire la regressione della cresta in R.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 1: caricare i dati<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Per questo esempio, utilizzeremo il set di dati integrato di R chiamato <strong>mtcars<\/strong> . Utilizzeremo <strong>hp<\/strong> come variabile di risposta e le seguenti variabili come predittori:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\">mpg<\/span><\/li>\n<li> <span style=\"color: #000000;\">peso<\/span><\/li>\n<li> <span style=\"color: #000000;\">merda<\/span><\/li>\n<li> <span style=\"color: #000000;\">qsec<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Per eseguire la regressione ridge, utilizzeremo le funzioni del pacchetto <strong>glmnet<\/strong> . Questo pacchetto richiede che la <a href=\"https:\/\/statorials.org\/it\/variabili-risposte-esplicative\/\" target=\"_blank\" rel=\"noopener noreferrer\">variabile di risposta<\/a> sia un vettore e che l&#8217;insieme di variabili predittive sia della classe <strong>data.matrix<\/strong> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Il codice seguente mostra come definire i nostri dati:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008080;\">#define response variable<\/span>\ny &lt;- mtcars$hp\n\n<span style=\"color: #008080;\">#define matrix of predictor variables\n<\/span>x &lt;- data.matrix(mtcars[, c('mpg', 'wt', 'drat', 'qsec')])\n<\/strong><\/span><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 2: adattare il modello di regressione Ridge<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Successivamente, utilizzeremo la funzione <strong>glmnet()<\/strong> per adattare il modello di regressione Ridge e specificheremo <strong>alpha=0<\/strong> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Si noti che impostare alpha uguale a 1 equivale a utilizzare la regressione Lazo e impostare alpha su un valore compreso tra 0 e 1 equivale a utilizzare una rete elastica.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Si noti inoltre che la regressione ridge richiede che i dati siano standardizzati in modo tale che ciascuna variabile predittiva abbia una media pari a 0 e una deviazione standard pari a 1.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Fortunatamente, <strong>glmnet()<\/strong> esegue automaticamente questa standardizzazione per te. Se hai gi\u00e0 standardizzato le variabili, puoi specificare <strong>standardize=False<\/strong> .<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008080;\"><span style=\"color: #000000;\"><span style=\"color: #993300;\">library<\/span> (glmnet)<\/span>\n\n#fit ridge regression model\n<\/span>model &lt;- glmnet(x, y, alpha = <span style=\"color: #008000;\">0<\/span> )\n\n<span style=\"color: #008080;\">#view summary of model\n<\/span>summary(model)\n\n          Length Class Mode   \na0 100 -none- numeric\nbeta 400 dgCMatrix S4     \ndf 100 -none- numeric\ndim 2 -none- numeric\nlambda 100 -none- numeric\ndev.ratio 100 -none- numeric\nnulldev 1 -none- numeric\nnpasses 1 -none- numeric\njerr 1 -none- numeric\noffset 1 -none- logical\ncall 4 -none- call   \nnobs 1 -none- numeric\n<\/strong><\/span><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 3: scegli un valore ottimale per Lambda<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Successivamente, identificheremo il valore lambda che produce l&#8217;errore quadratico medio (MSE) pi\u00f9 basso del test utilizzando <a href=\"https:\/\/statorials.org\/it\/k-piega-convalida-incrociata\/\" target=\"_blank\" rel=\"noopener noreferrer\">la convalida incrociata k-fold<\/a> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Fortunatamente, <strong>glmnet<\/strong> ha la funzione <strong>cv.glmnet()<\/strong> che esegue automaticamente la convalida incrociata k-fold utilizzando k = 10 volte.<\/span> <\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008080;\">#perform k-fold cross-validation to find optimal lambda value\n<\/span>cv_model &lt;- cv. <span style=\"color: #3366ff;\">glmnet<\/span> (x, y, alpha = <span style=\"color: #008000;\">0<\/span> )\n\n<span style=\"color: #008080;\">#find optimal lambda value that minimizes test MSE\n<\/span>best_lambda &lt;- cv_model$ <span style=\"color: #3366ff;\">lambda<\/span> . <span style=\"color: #3366ff;\">min<\/span>\nbest_lambda\n\n[1] 10.04567\n\n<span style=\"color: #008080;\">#produce plot of test MSE by lambda value<\/span>\nplot(cv_model) \n<\/strong><\/span><\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-11860 \" src=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/faiter1.png\" alt=\"validazione incrociata per la regressione della cresta in R\" width=\"443\" height=\"426\" srcset=\"\" sizes=\"\"><\/p>\n<p> <span style=\"color: #000000;\">Il valore lambda che minimizza il test MSE risulta essere <strong>10.04567<\/strong> .<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Passaggio 4: analizzare il modello finale<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Infine, possiamo analizzare il modello finale prodotto dal valore lambda ottimale.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Possiamo utilizzare il seguente codice per ottenere le stime dei coefficienti per questo modello:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008080;\">#find coefficients of best model\n<\/span>best_model &lt;- glmnet(x, y, alpha = <span style=\"color: #008000;\">0<\/span> , lambda = best_lambda)\ncoef(best_model)\n\n5 x 1 sparse Matrix of class \"dgCMatrix\"\n                    s0\n(Intercept) 475.242646\nmpg -3.299732\nwt 19.431238\ndrat -1.222429\nqsec -17.949721<\/strong><\/span><\/pre>\n<p> <span style=\"color: #000000;\">Possiamo anche produrre un grafico Trace per visualizzare come sono cambiate le stime dei coefficienti a causa dell&#8217;aumento di lambda:<\/span> <\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008080;\">#produce Ridge trace plot<\/span>\nplot(model, xvar = \" <span style=\"color: #008000;\">lambda<\/span> \")<\/strong><\/span> <\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-11861 \" src=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/creter2.png\" alt=\"Traccia della cresta in R\" width=\"419\" height=\"411\" srcset=\"\" sizes=\"\"><\/p>\n<p> <span style=\"color: #000000;\">Infine, possiamo calcolare l&#8217; <a href=\"https:\/\/statorials.org\/it\/buon-valore-di-r-quadrato\/\" target=\"_blank\" rel=\"noopener noreferrer\">R quadrato del modello<\/a> sui dati di addestramento:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008080;\">#use fitted best model to make predictions\n<\/span>y_predicted &lt;- <span style=\"color: #3366ff;\">predict<\/span> (model, s = best_lambda, newx = x)\n\n<span style=\"color: #008080;\">#find OHS and SSE<\/span>\nsst &lt;- <span style=\"color: #3366ff;\">sum<\/span> ((y - <span style=\"color: #3366ff;\">mean<\/span> (y))^2)\nsse &lt;- <span style=\"color: #3366ff;\">sum<\/span> ((y_predicted - y)^2)\n\n<span style=\"color: #008080;\">#find R-Squared\n<\/span>rsq &lt;- 1 - sse\/sst\nrsq\n\n[1] 0.7999513\n<\/strong><\/span><\/pre>\n<p> <span style=\"color: #000000;\">La R al quadrato risulta essere <strong>0,7999513<\/strong> . Cio\u00e8, il modello migliore \u00e8 stato in grado di spiegare il <strong>79,99%<\/strong> della variazione nei valori di risposta dei dati di addestramento.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Puoi trovare il codice R completo utilizzato in questo esempio <a href=\"https:\/\/github.com\/Statorials\/R-Guides\/blob\/main\/ridge_regression.R\" target=\"_blank\" rel=\"noopener noreferrer\">qui<\/a> .<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La regressione della cresta \u00e8 un metodo che possiamo utilizzare per adattare un modello di regressione quando nei dati \u00e8 presente la multicollinearit\u00e0 . In poche parole, la regressione dei minimi quadrati tenta di trovare stime di coefficienti che minimizzino la somma residua dei quadrati (RSS): RSS = \u03a3(y i \u2013 \u0177 i )2 Oro: [&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>Regressione della cresta in R (passo dopo passo)<\/title>\n<meta name=\"description\" content=\"Questo tutorial spiega come eseguire la regressione della cresta in R, incluso un esempio passo passo.\" \/>\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\/regressione-della-cresta-in-r\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Regressione della cresta in R (passo dopo passo)\" \/>\n<meta property=\"og:description\" content=\"Questo tutorial spiega come eseguire la regressione della cresta in R, incluso un esempio passo passo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-27T08:19:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/faiter1.png\" \/>\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=\"3 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/\",\"url\":\"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/\",\"name\":\"Regressione della cresta in R (passo dopo passo)\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/it\/#website\"},\"datePublished\":\"2023-07-27T08:19:55+00:00\",\"dateModified\":\"2023-07-27T08:19:55+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae\"},\"description\":\"Questo tutorial spiega come eseguire la regressione della cresta in R, incluso un esempio passo passo.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Casa\",\"item\":\"https:\/\/statorials.org\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Regressione della cresta in r (passo dopo passo)\"}]},{\"@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":"Regressione della cresta in R (passo dopo passo)","description":"Questo tutorial spiega come eseguire la regressione della cresta in R, incluso un esempio passo passo.","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\/regressione-della-cresta-in-r\/","og_locale":"it_IT","og_type":"article","og_title":"Regressione della cresta in R (passo dopo passo)","og_description":"Questo tutorial spiega come eseguire la regressione della cresta in R, incluso un esempio passo passo.","og_url":"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/","og_site_name":"Statorials","article_published_time":"2023-07-27T08:19:55+00:00","og_image":[{"url":"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/faiter1.png"}],"author":"Benjamin anderson","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Benjamin anderson","Est. reading time":"3 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/","url":"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/","name":"Regressione della cresta in R (passo dopo passo)","isPartOf":{"@id":"https:\/\/statorials.org\/it\/#website"},"datePublished":"2023-07-27T08:19:55+00:00","dateModified":"2023-07-27T08:19:55+00:00","author":{"@id":"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae"},"description":"Questo tutorial spiega come eseguire la regressione della cresta in R, incluso un esempio passo passo.","breadcrumb":{"@id":"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/it\/regressione-della-cresta-in-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Casa","item":"https:\/\/statorials.org\/it\/"},{"@type":"ListItem","position":2,"name":"Regressione della cresta in r (passo dopo passo)"}]},{"@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\/1194"}],"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=1194"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/posts\/1194\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/media?parent=1194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/categories?post=1194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/tags?post=1194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}