{"id":3999,"date":"2023-07-14T06:42:43","date_gmt":"2023-07-14T06:42:43","guid":{"rendered":"https:\/\/statorials.org\/nl\/spline-regressie-in-r\/"},"modified":"2023-07-14T06:42:43","modified_gmt":"2023-07-14T06:42:43","slug":"spline-regressie-in-r","status":"publish","type":"post","link":"https:\/\/statorials.org\/nl\/spline-regressie-in-r\/","title":{"rendered":"Spline-regressie uitvoeren in r (met voorbeeld)"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\"><strong>Spline-regressie<\/strong> is een type regressie dat wordt gebruikt wanneer er punten of &#8222;knopen&#8220; zijn waar het patroon in de gegevens abrupt verandert en <a href=\"https:\/\/statorials.org\/nl\/eenvoudige-lineaire-regressie-in-r\/\" target=\"_blank\" rel=\"noopener\">lineaire regressie<\/a> en <a href=\"https:\/\/statorials.org\/nl\/polynomiale-regressie-r\/\" target=\"_blank\" rel=\"noopener\">polynomiale regressie<\/a> niet flexibel genoeg zijn om in de gegevens te passen.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Het volgende stapsgewijze voorbeeld laat zien hoe u spline-regressie uitvoert in R.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Stap 1: Cre\u00eber de gegevens<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Laten we eerst een gegevensset in R maken met twee variabelen en een spreidingsdiagram maken om de relatie tussen de variabelen te visualiseren:<\/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=\"auto, \"><\/p>\n<p> <span style=\"color: #000000;\">Het is duidelijk dat de relatie tussen x en y niet-lineair is en dat er twee punten of &#8222;knooppunten&#8220; lijken te zijn waar het patroon in de gegevens abrupt verandert bij x=7 en x=10.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Stap 2: Pas het eenvoudige lineaire regressiemodel toe<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Laten we vervolgens de <a href=\"https:\/\/statorials.org\/nl\/lm-functie-in-r\/\" target=\"_blank\" rel=\"noopener\">functie lm()<\/a> gebruiken om een eenvoudig lineair regressiemodel aan deze gegevensset toe te passen en de regressielijn op het spreidingsdiagram te plotten:<\/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=\"auto, \"><\/p>\n<p> <span style=\"color: #000000;\">Uit het spreidingsdiagram kunnen we zien dat de eenvoudige lineaire regressielijn niet goed bij de gegevens past.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Uit de modelresultaten kunnen we ook zien dat de <a href=\"https:\/\/statorials.org\/nl\/aangepaste-r-kwadraatinterpretatie\/\" target=\"_blank\" rel=\"noopener\">aangepaste R-kwadraatwaarde<\/a> <strong>0,5903<\/strong> is.<\/span><\/p>\n<p> <span style=\"color: #000000;\">We zullen dit vergelijken met de aangepaste R-kwadraatwaarde van een spline-model.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Stap 3: Pas het spline-regressiemodel aan<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Laten we vervolgens de functie <strong>bs()<\/strong> uit het <strong>splines-<\/strong> pakket gebruiken om een spline-regressiemodel met twee knooppunten te fitten, en vervolgens het gepaste model in de spreidingsdiagram plotten:<\/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=\"auto, \"><\/p>\n<p> <span style=\"color: #000000;\">Uit het spreidingsdiagram kunnen we zien dat het spline-regressiemodel de gegevens redelijk goed kan weergeven.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Uit de modelresultaten kunnen we ook zien dat de aangepaste R-kwadraatwaarde <strong>0,8987<\/strong> is.<\/span><\/p>\n<p> <span style=\"color: #000000;\">De aangepaste R-kwadraatwaarde voor dit model is veel hoger dan het eenvoudige lineaire regressiemodel, wat ons vertelt dat het spline-regressiemodel beter bij de gegevens kan passen.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Merk op dat we er voor dit voorbeeld voor hebben gekozen dat de knooppunten zich op x=7 en x=10 bevinden.<\/span><\/p>\n<p> <span style=\"color: #000000;\">In de praktijk zul je zelf knooppuntlocaties moeten kiezen op basis van waar patronen in de data lijken te veranderen en op basis van jouw domeinexpertise.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Aanvullende bronnen<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:<\/span><\/p>\n<p> <a href=\"https:\/\/statorials.org\/nl\/meervoudige-lineaire-regressie-r\/\" target=\"_blank\" rel=\"noopener\">Hoe meervoudige lineaire regressie uit te voeren in R<\/a><br \/> <a href=\"https:\/\/statorials.org\/nl\/exponentiele-regressie-in-r\/\" target=\"_blank\" rel=\"noopener\">Hoe exponenti\u00eble regressie uit te voeren in R<\/a><br \/><a href=\"https:\/\/statorials.org\/nl\/gewogen-kleinste-kwadraten-in-r\/\" target=\"_blank\" rel=\"noopener\">Hoe u een gewogen kleinste kwadratenregressie uitvoert in R<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spline-regressie is een type regressie dat wordt gebruikt wanneer er punten of &#8222;knopen&#8220; zijn waar het patroon in de gegevens abrupt verandert en lineaire regressie en polynomiale regressie niet flexibel genoeg zijn om in de gegevens te passen. Het volgende stapsgewijze voorbeeld laat zien hoe u spline-regressie uitvoert in R. Stap 1: Cre\u00eber de gegevens [&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":[],"class_list":["post-3999","post","type-post","status-publish","format-standard","hentry","category-gids"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Spline-regressie uitvoeren in R (met voorbeeld) - Statorials<\/title>\n<meta name=\"description\" content=\"In deze zelfstudie wordt uitgelegd hoe u spline-regressie in R uitvoert, inclusief een stapsgewijs voorbeeld.\" \/>\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\/nl\/spline-regressie-in-r\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spline-regressie uitvoeren in R (met voorbeeld) - Statorials\" \/>\n<meta property=\"og:description\" content=\"In deze zelfstudie wordt uitgelegd hoe u spline-regressie in R uitvoert, inclusief een stapsgewijs voorbeeld.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/nl\/spline-regressie-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=\"Dr.benjamin anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dr.benjamin anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/nl\/spline-regressie-in-r\/\",\"url\":\"https:\/\/statorials.org\/nl\/spline-regressie-in-r\/\",\"name\":\"Spline-regressie uitvoeren in R (met voorbeeld) - Statorials\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/nl\/#website\"},\"datePublished\":\"2023-07-14T06:42:43+00:00\",\"dateModified\":\"2023-07-14T06:42:43+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219\"},\"description\":\"In deze zelfstudie wordt uitgelegd hoe u spline-regressie in R uitvoert, inclusief een stapsgewijs voorbeeld.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/nl\/spline-regressie-in-r\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/nl\/spline-regressie-in-r\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/nl\/spline-regressie-in-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Thuis\",\"item\":\"https:\/\/statorials.org\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spline-regressie uitvoeren in r (met voorbeeld)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/statorials.org\/nl\/#website\",\"url\":\"https:\/\/statorials.org\/nl\/\",\"name\":\"Statorials\",\"description\":\"Uw gids voor statistische competentie\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/statorials.org\/nl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219\",\"name\":\"Dr.benjamin anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/statorials.org\/nl\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"contentUrl\":\"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"caption\":\"Dr.benjamin anderson\"},\"description\":\"Ik ben Benjamin, een gepensioneerde hoogleraar statistiek die nu een toegewijde Statorials-lesgever is. Ik heb uitgebreide ervaring en expertise op het gebied van statistiek en ik ben vastbesloten om mijn kennis te delen met studenten via Statorials. Lees verder\",\"sameAs\":[\"http:\/\/statorials.org\/nl\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spline-regressie uitvoeren in R (met voorbeeld) - Statorials","description":"In deze zelfstudie wordt uitgelegd hoe u spline-regressie in R uitvoert, inclusief een stapsgewijs voorbeeld.","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\/nl\/spline-regressie-in-r\/","og_locale":"de_DE","og_type":"article","og_title":"Spline-regressie uitvoeren in R (met voorbeeld) - Statorials","og_description":"In deze zelfstudie wordt uitgelegd hoe u spline-regressie in R uitvoert, inclusief een stapsgewijs voorbeeld.","og_url":"https:\/\/statorials.org\/nl\/spline-regressie-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":"Dr.benjamin anderson","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Dr.benjamin anderson","Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/nl\/spline-regressie-in-r\/","url":"https:\/\/statorials.org\/nl\/spline-regressie-in-r\/","name":"Spline-regressie uitvoeren in R (met voorbeeld) - Statorials","isPartOf":{"@id":"https:\/\/statorials.org\/nl\/#website"},"datePublished":"2023-07-14T06:42:43+00:00","dateModified":"2023-07-14T06:42:43+00:00","author":{"@id":"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219"},"description":"In deze zelfstudie wordt uitgelegd hoe u spline-regressie in R uitvoert, inclusief een stapsgewijs voorbeeld.","breadcrumb":{"@id":"https:\/\/statorials.org\/nl\/spline-regressie-in-r\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/nl\/spline-regressie-in-r\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/nl\/spline-regressie-in-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Thuis","item":"https:\/\/statorials.org\/nl\/"},{"@type":"ListItem","position":2,"name":"Spline-regressie uitvoeren in r (met voorbeeld)"}]},{"@type":"WebSite","@id":"https:\/\/statorials.org\/nl\/#website","url":"https:\/\/statorials.org\/nl\/","name":"Statorials","description":"Uw gids voor statistische competentie","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/statorials.org\/nl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219","name":"Dr.benjamin anderson","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/statorials.org\/nl\/#\/schema\/person\/image\/","url":"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","contentUrl":"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","caption":"Dr.benjamin anderson"},"description":"Ik ben Benjamin, een gepensioneerde hoogleraar statistiek die nu een toegewijde Statorials-lesgever is. Ik heb uitgebreide ervaring en expertise op het gebied van statistiek en ik ben vastbesloten om mijn kennis te delen met studenten via Statorials. Lees verder","sameAs":["http:\/\/statorials.org\/nl"]}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"_links":{"self":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/posts\/3999","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/comments?post=3999"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/posts\/3999\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/media?parent=3999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/categories?post=3999"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/tags?post=3999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}