{"id":1214,"date":"2023-07-27T06:34:51","date_gmt":"2023-07-27T06:34:51","guid":{"rendered":"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/"},"modified":"2023-07-27T06:34:51","modified_gmt":"2023-07-27T06:34:51","slug":"splines-de-regressao-adaptativa-multivariada-em-r","status":"publish","type":"post","link":"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/","title":{"rendered":"Splines de regress\u00e3o adaptativa multivariada em r"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada\/\" target=\"_blank\" rel=\"noopener noreferrer\">Splines de regress\u00e3o adaptativa multivariada<\/a> (MARS) podem ser usadas para modelar rela\u00e7\u00f5es n\u00e3o lineares entre um conjunto de vari\u00e1veis preditoras e uma <a href=\"https:\/\/statorials.org\/pt\/respostas-explicativas-das-variaveis\/\" target=\"_blank\" rel=\"noopener noreferrer\">vari\u00e1vel de resposta<\/a> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Este m\u00e9todo funciona da seguinte maneira:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Divida um conjunto de dados em <em>k<\/em> partes.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>2.<\/strong> Ajuste um modelo de regress\u00e3o para cada parte.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>3.<\/strong> Use a valida\u00e7\u00e3o cruzada k-fold para escolher um valor para <em>k<\/em> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Este tutorial fornece um exemplo passo a passo de como ajustar um modelo MARS a um conjunto de dados em R.<\/span><\/p>\n<h3> <strong>Passo 1: Carregue os pacotes necess\u00e1rios<\/strong><\/h3>\n<p> <span style=\"color: #000000;\">Para este exemplo, usaremos o conjunto de dados ISLR <strong>Wage<\/strong> <strong>. <em>&nbsp;<\/em><\/strong> pacote, que cont\u00e9m os sal\u00e1rios anuais de 3.000 pessoas, juntamente com uma variedade de vari\u00e1veis preditoras, como idade, escolaridade, ra\u00e7a e muito mais.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Antes de ajustar um modelo MARS aos dados, carregaremos os pacotes necess\u00e1rios:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #993300;\">library<\/span> (ISLR) <span style=\"color: #008080;\">#contains Wage dataset<\/span>\n<span style=\"color: #993300;\">library<\/span> (dplyr) <span style=\"color: #008080;\">#data wrangling<\/span>\n<span style=\"color: #993300;\">library<\/span> (ggplot2) <span style=\"color: #008080;\">#plotting<\/span>\n<span style=\"color: #993300;\">library<\/span> (earth) <span style=\"color: #008080;\">#fitting MARS models<\/span>\n<span style=\"color: #993300;\">library<\/span> (caret) <span style=\"color: #008080;\">#tuning model parameters<\/span>\n<\/strong><\/pre>\n<h3> <strong>Etapa 2: visualizar dados<\/strong><\/h3>\n<p> <span style=\"color: #000000;\">A seguir, exibiremos as primeiras seis linhas do conjunto de dados com o qual estamos trabalhando:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #000000;\"><span style=\"color: #008080;\">#view first six rows of data<\/span>\nhead<\/span> (Wage)\n\n       year age maritl race education region\n231655 2006 18 1. Never Married 1. White 1. &lt; HS Grad 2. Middle Atlantic\n86582 2004 24 1. Never Married 1. White 4. College Grad 2. Middle Atlantic\n161300 2003 45 2. Married 1. White 3. Some College 2. Middle Atlantic\n155159 2003 43 2. Married 3. Asian 4. College Grad 2. Middle Atlantic\n11443 2005 50 4. Divorced 1. White 2. HS Grad 2. Middle Atlantic\n376662 2008 54 2. Married 1. White 4. College Grad 2. Middle Atlantic\n             jobclass health health_ins logwage wage\n231655 1. Industrial 1. &lt;=Good 2. No 4.318063 75.04315\n86582 2. Information 2. &gt;=Very Good 2. No 4.255273 70.47602\n161300 1. Industrial 1. &lt;=Good 1. Yes 4.875061 130.98218\n155159 2. Information 2. &gt;=Very Good 1. Yes 5.041393 154.68529\n11443 2. Information 1. &lt;=Good 1. Yes 4.318063 75.04315\n376662 2. Information 2. &gt;=Very Good 1. Yes 4.845098 127.11574\n<\/strong><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Etapa 3: Criar e otimizar o modelo MARS<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">A seguir, criaremos o modelo MARS para este conjunto de dados e realizaremos <a href=\"https:\/\/statorials.org\/pt\/validacao-cruzada-k-fold\/\" target=\"_blank\" rel=\"noopener noreferrer\">a valida\u00e7\u00e3o cruzada k-fold<\/a> para determinar qual modelo produz o menor teste RMSE (erro quadr\u00e1tico m\u00e9dio).<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #000000;\"><span style=\"color: #008080;\">#create a tuning grid\n<\/span>hyper_grid &lt;- expand. <span style=\"color: #3366ff;\">grid<\/span> (degree = 1:3,\n                          nprune = <span style=\"color: #3366ff;\">seq<\/span> (2, 50, length.out = 10) <span style=\"color: #3366ff;\">%&gt;%<\/span>\n<span style=\"color: #3366ff;\">floor<\/span> ())\n\n<span style=\"color: #008080;\">#make this example reproducible\n<\/span>set.seed(1)\n\n<span style=\"color: #008080;\">#fit MARS model using k-fold cross-validation\n<\/span>cv_mars &lt;- train(\n  x = subset(Wage, select = -c(wage, logwage)),\n  y = Wage$wage,\n  method = \" <span style=\"color: #008000;\">earth<\/span> \",\n  metric = \" <span style=\"color: #008000;\">RMSE<\/span> \",\n  trControl = trainControl(method = \" <span style=\"color: #008000;\">cv<\/span> \", number = 10),\n  tuneGrid = hyper_grid)\n\n<span style=\"color: #008080;\">#display model with lowest test RMSE<\/span>\ncv_mars$results <span style=\"color: #3366ff;\">%&gt;%<\/span>\n  <span style=\"color: #3366ff;\">filter<\/span> (nprune==cv_mars$bestTune$nprune, degree =cv_mars$bestTune$degree)    \ndegree nprune RMSE Rsquared MAE RMSESD RsquaredSD MAESD\t\t\n1 12 33.8164 0.3431804 22.97108 2.240394 0.03064269 1.4554\n<\/span><\/strong><\/pre>\n<p> <span style=\"color: #000000;\">A partir dos resultados, podemos ver que o modelo que produziu o menor MSE de teste foi um modelo com apenas efeitos de primeira ordem (ou seja, sem termos de intera\u00e7\u00e3o) e 12 termos. Este modelo produziu um erro quadr\u00e1tico m\u00e9dio (RMSE) de <strong>33,8164<\/strong> .<\/span><\/p>\n<p> <em><span style=\"color: #000000;\"><strong>Nota:<\/strong> Usamos method=\u201dearth\u201d para especificar um modelo MARS. Voc\u00ea pode encontrar documenta\u00e7\u00e3o para este m\u00e9todo <a href=\"https:\/\/rdrr.io\/cran\/earth\/\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a> .<\/span><\/em><\/p>\n<p> <span style=\"color: #000000;\">Tamb\u00e9m podemos criar um gr\u00e1fico para visualizar o teste RMSE com base no grau e na quantidade de termos:<\/span> <\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #000000;\"><span style=\"color: #008080;\">#display test RMSE by terms and degree<\/span>\nggplot(cv_mars)\n<\/span><\/strong><\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-12023 \" src=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/mars1.png\" alt=\"Modelo MARS em R\" width=\"431\" height=\"439\" srcset=\"\" sizes=\"auto, \"><\/p>\n<p> <span style=\"color: #000000;\">Na pr\u00e1tica, adaptar\u00edamos um modelo MARS com v\u00e1rios outros tipos de modelos como:<\/span><\/p>\n<ul>\n<li> <a href=\"https:\/\/statorials.org\/pt\/regressao-linear-multipla-r\/\" target=\"_blank\" rel=\"noopener noreferrer\">Regress\u00e3o linear m\u00faltipla<\/a><\/li>\n<li> <a href=\"https:\/\/statorials.org\/pt\/regressao-polinomial-r\/\" target=\"_blank\" rel=\"noopener noreferrer\">Regress\u00e3o polinomial<\/a><\/li>\n<li> <a href=\"https:\/\/statorials.org\/pt\/regressao-de-crista-em-r\/\" target=\"_blank\" rel=\"noopener noreferrer\">Regress\u00e3o de pico<\/a><\/li>\n<li> <a href=\"https:\/\/statorials.org\/pt\/regressao-laco-em-r\/\" target=\"_blank\" rel=\"noopener noreferrer\">Regress\u00e3o la\u00e7o<\/a><\/li>\n<li> <a href=\"https:\/\/statorials.org\/pt\/regressao-de-componentes-principais-em-r\/\" target=\"_blank\" rel=\"noopener noreferrer\">Regress\u00e3o de componentes principais<\/a><\/li>\n<li> <a href=\"https:\/\/statorials.org\/pt\/minimos-quadrados-parciais-em-r\/\" target=\"_blank\" rel=\"noopener noreferrer\">M\u00ednimos quadrados parciais<\/a><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Comparar\u00edamos ent\u00e3o cada modelo para determinar qual leva ao menor erro de teste e escolher\u00edamos esse modelo como o modelo ideal a ser usado.<\/span><\/p>\n<p> <span style=\"color: #000000;\">O c\u00f3digo R completo usado neste exemplo pode ser encontrado <a href=\"https:\/\/github.com\/Statorials\/R-Guides\/blob\/main\/multivariate_adaptive_regression_splines.R\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a> .<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Splines de regress\u00e3o adaptativa multivariada (MARS) podem ser usadas para modelar rela\u00e7\u00f5es n\u00e3o lineares entre um conjunto de vari\u00e1veis preditoras e uma vari\u00e1vel de resposta . Este m\u00e9todo funciona da seguinte maneira: 1. Divida um conjunto de dados em k partes. 2. Ajuste um modelo de regress\u00e3o para cada parte. 3. Use a valida\u00e7\u00e3o cruzada [&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-1214","post","type-post","status-publish","format-standard","hentry","category-guia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Splines de regress\u00e3o adaptativa multivariada em R - Statorials<\/title>\n<meta name=\"description\" content=\"Este tutorial explica como ajustar splines de regress\u00e3o adaptativa multivariada a um conjunto de dados em R, com um exemplo.\" \/>\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\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Splines de regress\u00e3o adaptativa multivariada em R - Statorials\" \/>\n<meta property=\"og:description\" content=\"Este tutorial explica como ajustar splines de regress\u00e3o adaptativa multivariada a um conjunto de dados em R, com um exemplo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-27T06:34:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/mars1.png\" \/>\n<meta name=\"author\" content=\"Dr. benjamim anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dr. benjamim anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/\",\"url\":\"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/\",\"name\":\"Splines de regress\u00e3o adaptativa multivariada em R - Statorials\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/pt\/#website\"},\"datePublished\":\"2023-07-27T06:34:51+00:00\",\"dateModified\":\"2023-07-27T06:34:51+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666\"},\"description\":\"Este tutorial explica como ajustar splines de regress\u00e3o adaptativa multivariada a um conjunto de dados em R, com um exemplo.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Lar\",\"item\":\"https:\/\/statorials.org\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Splines de regress\u00e3o adaptativa multivariada em r\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/statorials.org\/pt\/#website\",\"url\":\"https:\/\/statorials.org\/pt\/\",\"name\":\"Statorials\",\"description\":\"O seu guia para a literacia estat\u00edstica!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/statorials.org\/pt\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666\",\"name\":\"Dr. benjamim anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/statorials.org\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"contentUrl\":\"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"caption\":\"Dr. benjamim anderson\"},\"description\":\"Ol\u00e1, sou Benjamin, um professor aposentado de estat\u00edstica que se tornou professor dedicado na Statorials. Com vasta experi\u00eancia e conhecimento na \u00e1rea de estat\u00edstica, estou empenhado em compartilhar meu conhecimento para capacitar os alunos por meio de Statorials. Saber mais\",\"sameAs\":[\"https:\/\/statorials.org\/pt\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Splines de regress\u00e3o adaptativa multivariada em R - Statorials","description":"Este tutorial explica como ajustar splines de regress\u00e3o adaptativa multivariada a um conjunto de dados em R, com um exemplo.","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\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/","og_locale":"pt_PT","og_type":"article","og_title":"Splines de regress\u00e3o adaptativa multivariada em R - Statorials","og_description":"Este tutorial explica como ajustar splines de regress\u00e3o adaptativa multivariada a um conjunto de dados em R, com um exemplo.","og_url":"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/","og_site_name":"Statorials","article_published_time":"2023-07-27T06:34:51+00:00","og_image":[{"url":"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/mars1.png"}],"author":"Dr. benjamim anderson","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Dr. benjamim anderson","Tempo estimado de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/","url":"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/","name":"Splines de regress\u00e3o adaptativa multivariada em R - Statorials","isPartOf":{"@id":"https:\/\/statorials.org\/pt\/#website"},"datePublished":"2023-07-27T06:34:51+00:00","dateModified":"2023-07-27T06:34:51+00:00","author":{"@id":"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666"},"description":"Este tutorial explica como ajustar splines de regress\u00e3o adaptativa multivariada a um conjunto de dados em R, com um exemplo.","breadcrumb":{"@id":"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/pt\/splines-de-regressao-adaptativa-multivariada-em-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Lar","item":"https:\/\/statorials.org\/pt\/"},{"@type":"ListItem","position":2,"name":"Splines de regress\u00e3o adaptativa multivariada em r"}]},{"@type":"WebSite","@id":"https:\/\/statorials.org\/pt\/#website","url":"https:\/\/statorials.org\/pt\/","name":"Statorials","description":"O seu guia para a literacia estat\u00edstica!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/statorials.org\/pt\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-PT"},{"@type":"Person","@id":"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666","name":"Dr. benjamim anderson","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/statorials.org\/pt\/#\/schema\/person\/image\/","url":"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","contentUrl":"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","caption":"Dr. benjamim anderson"},"description":"Ol\u00e1, sou Benjamin, um professor aposentado de estat\u00edstica que se tornou professor dedicado na Statorials. Com vasta experi\u00eancia e conhecimento na \u00e1rea de estat\u00edstica, estou empenhado em compartilhar meu conhecimento para capacitar os alunos por meio de Statorials. Saber mais","sameAs":["https:\/\/statorials.org\/pt"]}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"_links":{"self":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/posts\/1214","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/comments?post=1214"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/posts\/1214\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/media?parent=1214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/categories?post=1214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/tags?post=1214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}