{"id":3999,"date":"2023-07-14T06:42:43","date_gmt":"2023-07-14T06:42:43","guid":{"rendered":"https:\/\/statorials.org\/it\/regressione-spline-in-r\/"},"modified":"2023-07-14T06:42:43","modified_gmt":"2023-07-14T06:42:43","slug":"regressione-spline-in-r","status":"publish","type":"post","link":"https:\/\/statorials.org\/it\/regressione-spline-in-r\/","title":{"rendered":"Come eseguire la regressione spline in r (con esempio)"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\"><strong>La regressione spline<\/strong> \u00e8 un tipo di regressione utilizzato quando sono presenti punti o &#8220;nodi&#8221; in cui il modello nei dati cambia bruscamente e <a href=\"https:\/\/statorials.org\/it\/regressione-lineare-semplice-in-r\/\" target=\"_blank\" rel=\"noopener\">la regressione lineare<\/a> e <a href=\"https:\/\/statorials.org\/it\/regressione-polinomiale-r\/\" target=\"_blank\" rel=\"noopener\">la regressione polinomiale<\/a> non sono sufficientemente flessibili per adattarsi ai dati.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Il seguente esempio passo passo mostra come eseguire la regressione spline in R.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Passaggio 1: creare i dati<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Innanzitutto, creiamo un set di dati in R con due variabili e creiamo un grafico a dispersione per visualizzare la relazione tra le variabili:<\/span> <\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#create data frame\n<\/span>df &lt;- data. <span style=\"color: #3366ff;\">frame<\/span> (x=1:20,\n                 y=c(2, 4, 7, 9, 13, 15, 19, 16, 13, 10,\n                     11, 14, 15, 15, 16, 15, 17, 19, 18, 20))\n\n<span style=\"color: #008080;\">#view head of data frame\n<\/span>head(df)\n\n  xy\n1 1 2\n2 2 4\n3 3 7\n4 4 9\n5 5 13\n6 6 15\n\n<span style=\"color: #008080;\">#create scatterplot\n<\/span>plot(df$x, df$y, cex= <span style=\"color: #008000;\">1.5<\/span> , pch= <span style=\"color: #008000;\">19<\/span> )\n<\/strong><\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-31978 aligncenter\" src=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/spline1.jpg\" alt=\"\" width=\"455\" height=\"417\" srcset=\"\" sizes=\"\"><\/p>\n<p> <span style=\"color: #000000;\">Ovviamente la relazione tra xey non \u00e8 lineare e sembrano esserci due punti o &#8220;nodi&#8221; in cui lo schema dei dati cambia bruscamente in x=7 e x=10.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Passaggio 2: adattare il modello di regressione lineare semplice<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Utilizziamo quindi la <a href=\"https:\/\/statorials.org\/it\/funzione-lm-in-r\/\" target=\"_blank\" rel=\"noopener\">funzione lm()<\/a> per adattare un semplice modello di regressione lineare a questo set di dati e tracciamo la linea di regressione adattata sul grafico a dispersione:<\/span> <\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#fit simple linear regression model\n<\/span>linear_fit &lt;- lm(df$y ~ df$x)\n\n<span style=\"color: #008080;\">#view model summary\n<\/span>summary(linear_fit)\n\nCall:\nlm(formula = df$y ~ df$x)\n\nResiduals:\n    Min 1Q Median 3Q Max \n-5.2143 -1.6327 -0.3534 0.6117 7.8789 \n\nCoefficients:\n            Estimate Std. Error t value Pr(&gt;|t|)    \n(Intercept) 6.5632 1.4643 4.482 0.000288 ***\ndf$x 0.6511 0.1222 5.327 4.6e-05 ***\n---\nSignificant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n\nResidual standard error: 3.152 on 18 degrees of freedom\nMultiple R-squared: 0.6118, Adjusted R-squared: 0.5903 \nF-statistic: 28.37 on 1 and 18 DF, p-value: 4.603e-05\n\n<span style=\"color: #008080;\">#create scatterplot\n<\/span>plot(df$x, df$y, cex= <span style=\"color: #008000;\">1.5<\/span> , pch= <span style=\"color: #008000;\">19<\/span> )\n\n<span style=\"color: #008080;\">#add regression line to scatterplot\n<\/span>abline(linear_fit)<\/strong> <\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-31979 aligncenter\" src=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/spline2.jpg\" alt=\"\" width=\"461\" height=\"420\" srcset=\"\" sizes=\"\"><\/p>\n<p> <span style=\"color: #000000;\">Dal grafico a dispersione, possiamo vedere che la semplice linea di regressione lineare non si adatta bene ai dati.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Dai risultati del modello, possiamo anche vedere che il <a href=\"https:\/\/statorials.org\/it\/interpretazione-corretta-del-r-quadrato\/\" target=\"_blank\" rel=\"noopener\">valore R quadrato corretto<\/a> \u00e8 <strong>0,5903<\/strong> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Lo confronteremo con il valore R quadrato modificato di un modello spline.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Passaggio 3: adattare il modello di regressione spline<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Successivamente, utilizziamo la funzione <strong>bs()<\/strong> del pacchetto <strong>splines<\/strong> per adattare un modello di regressione spline con due nodi, quindi tracciare il modello adattato sul grafico a dispersione:<\/span> <\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008000;\">library<\/span> (splines)\n\n<span style=\"color: #008080;\">#fit spline regression model\n<\/span>spline_fit &lt;- lm(df$y ~ bs(df$x, knots=c( <span style=\"color: #008000;\">7<\/span> , <span style=\"color: #008000;\">10<\/span> )))\n\n<span style=\"color: #008080;\">#view summary of spline regression model\n<\/span>summary(spline_fit)\n\nCall:\nlm(formula = df$y ~ bs(df$x, knots = c(7, 10)))\n\nResiduals:\n     Min 1Q Median 3Q Max \n-2.84883 -0.94928 0.08675 0.78069 2.61073 \n\nCoefficients:\n                            Estimate Std. Error t value Pr(&gt;|t|)    \n(Intercept) 2.073 1.451 1.429 0.175    \nbs(df$x, knots = c(7, 10))1 2.173 3.247 0.669 0.514    \nbs(df$x, knots = c(7, 10))2 19.737 2.205 8.949 3.63e-07 ***\nbs(df$x, knots = c(7, 10))3 3.256 2.861 1.138 0.274    \nbs(df$x, knots = c(7, 10))4 19.157 2.690 7.121 5.16e-06 ***\nbs(df$x, knots = c(7, 10))5 16.771 1.999 8.391 7.83e-07 ***\n---\nSignificant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n\nResidual standard error: 1.568 on 14 degrees of freedom\nMultiple R-squared: 0.9253, Adjusted R-squared: 0.8987 \nF-statistic: 34.7 on 5 and 14 DF, p-value: 2.081e-07\n\n<span style=\"color: #008080;\">#calculate predictions using spline regression model\n<\/span>x_lim &lt;- range(df$x)\nx_grid &lt;- seq(x_lim[ <span style=\"color: #008000;\">1<\/span> ], x_lim[ <span style=\"color: #008000;\">2<\/span> ])\npreds &lt;- predict(spline_fit, newdata=list(x=x_grid))\n\n<span style=\"color: #008080;\">#create scatter plot with spline regression predictions\n<\/span>plot(df$x, df$y, cex= <span style=\"color: #008000;\">1.5<\/span> , pch= <span style=\"color: #008000;\">19<\/span> )\nlines(x_grid, preds)<\/strong> <\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-31980 aligncenter\" src=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/spline3.jpg\" alt=\"\" width=\"469\" height=\"426\" srcset=\"\" sizes=\"\"><\/p>\n<p> <span style=\"color: #000000;\">Dal grafico a dispersione, possiamo vedere che il modello di regressione spline \u00e8 in grado di adattarsi abbastanza bene ai dati.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Dai risultati del modello, possiamo anche vedere che il valore R quadrato corretto \u00e8 <strong>0,8987<\/strong> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Il valore R quadrato corretto per questo modello \u00e8 molto pi\u00f9 elevato rispetto al modello di regressione lineare semplice, il che ci dice che il modello di regressione spline \u00e8 in grado di adattarsi meglio ai dati.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Nota che per questo esempio abbiamo scelto che i nodi si trovino in x=7 e x=10.<\/span><\/p>\n<p> <span style=\"color: #000000;\">In pratica, dovrai scegliere tu stesso le posizioni dei nodi in base a dove i modelli nei dati sembrano cambiare e in base alla tua esperienza nel settore.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Risorse addizionali<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">I seguenti tutorial spiegano come eseguire altre attivit\u00e0 comuni in R:<\/span><\/p>\n<p> <a href=\"https:\/\/statorials.org\/it\/regressione-lineare-multipla-r\/\" target=\"_blank\" rel=\"noopener\">Come eseguire la regressione lineare multipla in R<\/a><br \/> <a href=\"https:\/\/statorials.org\/it\/regressione-esponenziale-in-r\/\" target=\"_blank\" rel=\"noopener\">Come eseguire la regressione esponenziale in R<\/a><br \/> <a href=\"https:\/\/statorials.org\/it\/minimi-quadrati-pesati-in-r\/\" target=\"_blank\" rel=\"noopener\">Come eseguire la regressione dei minimi quadrati ponderati in R<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La regressione spline \u00e8 un tipo di regressione utilizzato quando sono presenti punti o &#8220;nodi&#8221; in cui il modello nei dati cambia bruscamente e la regressione lineare e la regressione polinomiale non sono sufficientemente flessibili per adattarsi ai dati. Il seguente esempio passo passo mostra come eseguire la regressione spline in R. Passaggio 1: creare [&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 eseguire la regressione spline in R (con esempio) - Statorials<\/title>\n<meta name=\"description\" content=\"Questo tutorial spiega come eseguire la regressione spline 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-spline-in-r\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come eseguire la regressione spline in R (con esempio) - Statorials\" \/>\n<meta property=\"og:description\" content=\"Questo tutorial spiega come eseguire la regressione spline in R, incluso un esempio passo passo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/it\/regressione-spline-in-r\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-14T06:42:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/spline1.jpg\" \/>\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-spline-in-r\/\",\"url\":\"https:\/\/statorials.org\/it\/regressione-spline-in-r\/\",\"name\":\"Come eseguire la regressione spline in R (con esempio) - Statorials\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/it\/#website\"},\"datePublished\":\"2023-07-14T06:42:43+00:00\",\"dateModified\":\"2023-07-14T06:42:43+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae\"},\"description\":\"Questo tutorial spiega come eseguire la regressione spline in R, incluso un esempio passo passo.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/it\/regressione-spline-in-r\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/it\/regressione-spline-in-r\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/it\/regressione-spline-in-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Casa\",\"item\":\"https:\/\/statorials.org\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Come eseguire la regressione spline in r (con esempio)\"}]},{\"@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 eseguire la regressione spline in R (con esempio) - Statorials","description":"Questo tutorial spiega come eseguire la regressione spline 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-spline-in-r\/","og_locale":"it_IT","og_type":"article","og_title":"Come eseguire la regressione spline in R (con esempio) - Statorials","og_description":"Questo tutorial spiega come eseguire la regressione spline in R, incluso un esempio passo passo.","og_url":"https:\/\/statorials.org\/it\/regressione-spline-in-r\/","og_site_name":"Statorials","article_published_time":"2023-07-14T06:42:43+00:00","og_image":[{"url":"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/spline1.jpg"}],"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-spline-in-r\/","url":"https:\/\/statorials.org\/it\/regressione-spline-in-r\/","name":"Come eseguire la regressione spline in R (con esempio) - Statorials","isPartOf":{"@id":"https:\/\/statorials.org\/it\/#website"},"datePublished":"2023-07-14T06:42:43+00:00","dateModified":"2023-07-14T06:42:43+00:00","author":{"@id":"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae"},"description":"Questo tutorial spiega come eseguire la regressione spline in R, incluso un esempio passo passo.","breadcrumb":{"@id":"https:\/\/statorials.org\/it\/regressione-spline-in-r\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/it\/regressione-spline-in-r\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/it\/regressione-spline-in-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Casa","item":"https:\/\/statorials.org\/it\/"},{"@type":"ListItem","position":2,"name":"Come eseguire la regressione spline in r (con esempio)"}]},{"@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\/3999"}],"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=3999"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/posts\/3999\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/media?parent=3999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/categories?post=3999"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/tags?post=3999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}