{"id":519,"date":"2023-07-29T15:29:02","date_gmt":"2023-07-29T15:29:02","guid":{"rendered":"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/"},"modified":"2023-07-29T15:29:02","modified_gmt":"2023-07-29T15:29:02","slug":"como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r","status":"publish","type":"post","link":"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/","title":{"rendered":"Como fazer valida\u00e7\u00e3o cruzada para desempenho do modelo em r"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\">Nas estat\u00edsticas, muitas vezes constru\u00edmos modelos por dois motivos:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\">Entenda o relacionamento entre uma ou mais vari\u00e1veis preditoras e<\/span> <span style=\"color: #000000;\">uma vari\u00e1vel de resposta.<\/span><\/li>\n<li> <span style=\"color: #000000;\">Use um modelo para prever observa\u00e7\u00f5es futuras.<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\"><strong>A valida\u00e7\u00e3o cruzada<\/strong> \u00e9 \u00fatil para estimar qu\u00e3o bem um modelo \u00e9 capaz de prever observa\u00e7\u00f5es futuras.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Por exemplo, podemos construir um <a href=\"https:\/\/statorials.org\/pt\/estatologia-explica-conceitos-de-forma-simples-e-direta-facilitamos-o-aprendizado-de-estatistica\/\" target=\"_blank\" rel=\"noopener noreferrer\">modelo de regress\u00e3o linear m\u00faltipla<\/a><\/span> <span style=\"color: #000000;\">que usa <em>idade<\/em> e <em>renda<\/em> como vari\u00e1veis preditoras e <em>status de inadimpl\u00eancia como<\/em> vari\u00e1vel de resposta.<\/span> <span style=\"color: #000000;\">Neste caso, podemos querer ajustar o modelo a um conjunto de dados e depois utilizar esse modelo para prever, com base no<\/span> <span style=\"color: #000000;\">rendimento e na idade de um novo requerente, a probabilidade de incumprimento do empr\u00e9stimo.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Para determinar se o modelo tem forte capacidade preditiva, precisamos us\u00e1-lo para fazer previs\u00f5es sobre<\/span> <span style=\"color: #000000;\">dados nunca vistos antes. Isso nos permitir\u00e1 estimar o <strong>erro de previs\u00e3o<\/strong> do modelo.<\/span><\/p>\n<h2> <strong><span style=\"color: #000000;\">Usando valida\u00e7\u00e3o cruzada para estimar erros de previs\u00e3o<\/span><\/strong><\/h2>\n<p> <span style=\"color: #000000;\"><strong>A valida\u00e7\u00e3o cruzada<\/strong> refere-se a diferentes maneiras pelas quais podemos estimar o erro de previs\u00e3o.<\/span> <span style=\"color: #000000;\">A abordagem geral para<\/span> <span style=\"color: #000000;\">valida\u00e7\u00e3o cruzada \u00e9:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Separe um certo n\u00famero de observa\u00e7\u00f5es no conjunto de dados \u2013 normalmente 15-25% de todas as observa\u00e7\u00f5es.<\/span><br \/> <span style=\"color: #000000;\"><strong>2.<\/strong> Ajustar (ou \u201ctreinar\u201d) o modelo nas observa\u00e7\u00f5es que mantemos no conjunto de dados.<\/span><br \/> <span style=\"color: #000000;\"><strong>3.<\/strong> Teste o qu\u00e3o bem o modelo pode fazer previs\u00f5es sobre observa\u00e7\u00f5es que n\u00e3o usamos para treinar o modelo.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Medindo a qualidade de um modelo<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Quando usamos o modelo ajustado para fazer previs\u00f5es sobre novas observa\u00e7\u00f5es, podemos usar diversas m\u00e9tricas diferentes para medir a qualidade do modelo, incluindo:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>M\u00faltiplo R-quadrado:<\/strong> Mede a for\u00e7a da rela\u00e7\u00e3o linear entre as vari\u00e1veis preditoras e a<\/span> <span style=\"color: #000000;\">vari\u00e1vel de resposta. Um m\u00faltiplo R ao quadrado de 1 indica uma rela\u00e7\u00e3o linear perfeita, enquanto um<\/span> <span style=\"color: #000000;\">m\u00faltiplo R ao quadrado de 0 indica nenhuma rela\u00e7\u00e3o linear. Quanto maior o m\u00faltiplo R-quadrado, maior a probabilidade de as vari\u00e1veis preditoras preverem a vari\u00e1vel resposta.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>Erro quadr\u00e1tico m\u00e9dio (RMSE):<\/strong> mede o erro m\u00e9dio de previs\u00e3o cometido pelo modelo ao prever o valor<\/span> <span style=\"color: #000000;\">de uma nova observa\u00e7\u00e3o. Esta \u00e9 a dist\u00e2ncia m\u00e9dia entre o valor verdadeiro de uma observa\u00e7\u00e3o e o valor previsto pelo modelo.<\/span> Valores <span style=\"color: #000000;\">mais baixos<\/span> <span style=\"color: #000000;\">para RMSE indicam melhor ajuste do modelo.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>Erro M\u00e9dio Absoluto (MAE):<\/strong> Esta \u00e9 a diferen\u00e7a m\u00e9dia absoluta entre o valor verdadeiro de uma observa\u00e7\u00e3o e o valor previsto pelo modelo.<\/span> <span style=\"color: #000000;\">Esta m\u00e9trica \u00e9 geralmente menos sens\u00edvel a valores discrepantes do que o RMSE. Valores mais baixos para MAE indicam melhor ajuste do modelo.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Implementando quatro t\u00e9cnicas diferentes de valida\u00e7\u00e3o cruzada em R<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Explicaremos ent\u00e3o como implementar as seguintes t\u00e9cnicas de valida\u00e7\u00e3o cruzada em R:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Abordagem do conjunto de valida\u00e7\u00e3o<\/span><br \/> <span style=\"color: #000000;\"><strong>2.<\/strong> Valida\u00e7\u00e3o cruzada k-fold<\/span><br \/> <span style=\"color: #000000;\"><strong>3.<\/strong> Deixe a valida\u00e7\u00e3o cruzada de lado<\/span><br \/> <span style=\"color: #000000;\"><strong>4.<\/strong> Valida\u00e7\u00e3o cruzada repetida de k-fold<\/span><\/p>\n<p> <span style=\"color: #000000;\">Para ilustrar como usar essas diferentes t\u00e9cnicas, usaremos um subconjunto do conjunto de dados R integrado <em>mtcars<\/em> :<\/span><\/p>\n<pre style=\"background-color: #e5e5e5; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#define dataset\n<\/span>data &lt;- mtcars[, c(\"mpg\", \"disp\", \"hp\", \"drat\")]\n\n<span style=\"color: #008080;\">#view first six rows of new data\n<\/span>head(data)\n\n# mpg disp hp drat\n#Mazda RX4 21.0 160 110 3.90\n#Mazda RX4 Wag 21.0 160 110 3.90\n#Datsun 710 22.8 108 93 3.85\n#Hornet 4 Drive 21.4 258 110 3.08\n#Hornet Sportabout 18.7 360 175 3.15\n#Valiant 18.1 225 105 2.76\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Construiremos um modelo de regress\u00e3o linear m\u00faltipla usando <em>disp<\/em> , <em>hp<\/em> e <em>drat<\/em> como vari\u00e1veis preditoras e <em>mpg<\/em><\/span> <span style=\"color: #000000;\">como vari\u00e1vel de resposta.<\/span><\/p>\n<h2> <strong><span style=\"color: #000000;\">Abordagem do conjunto de valida\u00e7\u00e3o<\/span><\/strong><\/h2>\n<p> <span style=\"color: #000000;\">A <strong>abordagem do conjunto de valida\u00e7\u00e3o<\/strong> funciona da seguinte maneira:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Divida os dados em dois conjuntos: um conjunto \u00e9 usado para treinar o modelo (ou seja, estimar os par\u00e2metros do modelo)<\/span> <span style=\"color: #000000;\">e o outro conjunto \u00e9 usado para testar o modelo. Geralmente, o conjunto de treinamento \u00e9 gerado selecionando aleatoriamente<\/span> <span style=\"color: #000000;\">70-80% dos dados, e os 20-30% restantes dos dados s\u00e3o usados como conjunto de teste.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>2.<\/strong> Crie o modelo usando o conjunto de dados de treinamento.<\/span><br \/> <span style=\"color: #000000;\"><strong>3.<\/strong> Use o modelo para fazer previs\u00f5es sobre os dados do conjunto de testes.<\/span><br \/> <span style=\"color: #000000;\"><strong>4.<\/strong> Me\u00e7a a qualidade do modelo usando m\u00e9tricas como R-quadrado, RMSE e MAE.<\/span><\/p>\n<h3> <strong><span style=\"color: #000000;\">Exemplo:<\/span><\/strong><\/h3>\n<p> <span style=\"color: #000000;\">O exemplo a seguir usa o conjunto de dados que definimos acima. Primeiro, dividimos os dados em<\/span><br \/> <span style=\"color: #000000;\">um conjunto de treinamento e um conjunto de teste, usando 80% dos dados como conjunto de treinamento e os 20% restantes dos dados<\/span> <span style=\"color: #000000;\">como conjunto de teste. A seguir, constru\u00edmos o modelo usando o<\/span> <span style=\"color: #000000;\">conjunto de treinamento. Em seguida, usamos o modelo para fazer previs\u00f5es sobre o conjunto de testes. Por fim, medimos a qualidade do<\/span> <span style=\"color: #000000;\">modelo usando R-quadrado, RMSE e MAE.<\/span><\/p>\n<pre style=\"background-color: #e5e5e5; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#load <em>dplyr<\/em> library used for data manipulation\n<\/span>library(dplyr)\n\n<span style=\"color: #008080;\">#load <em>caret<\/em> library used for partitioning data into training and test set\n<\/span>library(caret)\n\n<span style=\"color: #008080;\">#make this example reproducible\n<\/span>set.seed(0)\n\n<span style=\"color: #008080;\">#define the dataset\n<\/span>data &lt;- mtcars[, c(\"mpg\", \"disp\", \"hp\", \"drat\")]\n\n<span style=\"color: #008080;\">#split the dataset into a training set (80%) and test set (20%).\n<\/span>training_obs &lt;- data$mpg %&gt;% createDataPartition(p = 0.8, list = FALSE)\n\ntrain &lt;- data[training_obs, ]\ntest &lt;- data[-training_obs, ]\n\n<span style=\"color: #008080;\"># Build the linear regression model on the training set\n<\/span>model &lt;- lm(mpg ~ ., data = train)\n\n<span style=\"color: #008080;\"># Use the model to make predictions on the test set\n<\/span>predictions &lt;- model %&gt;% predict(test)\n\n<span style=\"color: #008080;\">#Examine R-squared, RMSE, and MAE of predictions\n<\/span>data.frame(R_squared = R2(predictions, test$mpg),\n           RMSE = RMSE(predictions, test$mpg),\n           MAE = MAE(predictions, test$mpg))\n\n#R_squared RMSE MAE\n#1 0.9213066 1.876038 1.66614\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Ao comparar diferentes modelos, aquele que produz o menor RMSE no conjunto de teste \u00e9 o modelo preferido.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Vantagens e desvantagens desta abordagem<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">A vantagem da abordagem do conjunto de valida\u00e7\u00e3o \u00e9 que ela \u00e9 simples e computacionalmente eficiente. A desvantagem<\/span> <span style=\"color: #000000;\">\u00e9 que o modelo \u00e9 constru\u00eddo usando apenas parte do total de dados. Se os dados que deixamos<\/span> <span style=\"color: #000000;\">de fora do conjunto de treinamento contiverem informa\u00e7\u00f5es interessantes ou valiosas, o modelo n\u00e3o as levar\u00e1 em considera\u00e7\u00e3o.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>abordagem de valida\u00e7\u00e3o cruzada k-fold<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">A <strong>abordagem de valida\u00e7\u00e3o cruzada k-fold<\/strong> funciona da seguinte forma:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Divida aleatoriamente os dados em k \u201cdobras\u201d ou subconjuntos (por exemplo, 5 ou 10 subconjuntos).<\/span><br \/> <span style=\"color: #000000;\"><strong>2.<\/strong> Treine o modelo em todos os dados, deixando de fora apenas um subconjunto.<\/span><br \/> <span style=\"color: #000000;\"><strong>3.<\/strong> Use o modelo para fazer previs\u00f5es sobre os dados do subconjunto que foi deixado de fora.<\/span><br \/> <span style=\"color: #000000;\"><strong>4.<\/strong> Repita esse processo at\u00e9 que cada um dos k subconjuntos tenha sido usado como conjunto de teste.<\/span><br \/> <span style=\"color: #000000;\"><strong>5<\/strong> . Me\u00e7a a qualidade do modelo calculando a m\u00e9dia dos k erros de teste. Isto \u00e9 conhecido<\/span><br \/> <span style=\"color: #000000;\">como um erro de valida\u00e7\u00e3o cruzada.<\/span><\/p>\n<h3> <strong><span style=\"color: #000000;\">Exemplo<\/span><\/strong><\/h3>\n<p> <span style=\"color: #000000;\">Neste exemplo, primeiro dividimos os dados em<\/span> <span style=\"color: #000000;\">5 subconjuntos. Em seguida, ajustamos o modelo usando todos os dados, exceto um subconjunto. Em seguida, usamos o modelo para fazer<\/span> <span style=\"color: #000000;\">previs\u00f5es sobre o subconjunto que foi deixado de fora e registrar o erro do teste (usando R-quadrado, RMSE e MAE). Repetimos<\/span> <span style=\"color: #000000;\">esse processo at\u00e9 que cada subconjunto tenha sido usado como conjunto de teste. Ent\u00e3o simplesmente calculamos a m\u00e9dia dos 5<\/span> <span style=\"color: #000000;\">erros de teste.<\/span><\/p>\n<pre style=\"background-color: #e5e5e5; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#load <em>dplyr<\/em> library used for data manipulation\n<\/span>library(dplyr)\n\n<span style=\"color: #008080;\">#load <em>caret<\/em> library used for partitioning data into training and test set\n<\/span>library(caret)\n\n<span style=\"color: #008080;\">#make this example reproducible\n<\/span>set.seed(0)\n\n<span style=\"color: #008080;\">#define the dataset\n<\/span>data &lt;- mtcars[, c(\"mpg\", \"disp\", \"hp\", \"drat\")]\n\n<span style=\"color: #008080;\">#define the number of subsets (or \"folds\") to use\n<\/span>train_control &lt;- trainControl(method = \"cv\", number = 5)\n\n<span style=\"color: #008080;\">#train the model\n<\/span>model &lt;- train(mpg ~ ., data = data, method = \"lm\", trControl = train_control)\n\n<span style=\"color: #008080;\">#Summarize the results\n<\/span>print(model)\n\n#Linear Regression \n#\n#32 samples\n#3 predictor\n#\n#No pre-processing\n#Resampling: Cross-Validated (5 fold) \n#Summary of sample sizes: 26, 25, 26, 25, 26 \n#Resampling results:\n#\n# RMSE Rsquared MAE     \n#3.095501 0.7661981 2.467427\n#\n#Tuning parameter 'intercept' was held constant at a value of TRUE\n<\/strong><\/pre>\n<h3> <strong><span style=\"color: #000000;\">Vantagens e desvantagens desta abordagem<\/span><\/strong><\/h3>\n<p> <span style=\"color: #000000;\">A vantagem da abordagem de valida\u00e7\u00e3o cruzada k-fold sobre a abordagem do conjunto de valida\u00e7\u00e3o \u00e9 que ela constr\u00f3i o modelo v\u00e1rias vezes diferentes<\/span> <span style=\"color: #000000;\">usando diferentes partes de dados a cada vez, portanto, n\u00e3o temos a chance de omitir dados importantes ao construir<\/span> <span style=\"color: #000000;\">o modelo.<\/span><\/p>\n<p> <span style=\"color: #000000;\">A parte subjetiva desta abordagem \u00e9 escolher o valor a ser usado para k, ou seja, o n\u00famero de subconjuntos nos quais dividir<\/span> <span style=\"color: #000000;\">os dados. Em geral, valores de k mais baixos levam a um vi\u00e9s mais alto, mas a uma variabilidade menor, enquanto valores de k mais altos<\/span> <span style=\"color: #000000;\">levam a um vi\u00e9s mais baixo, mas a uma variabilidade mais alta.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Na pr\u00e1tica, k \u00e9 geralmente escolhido como igual a 5 ou 10, porque esse n\u00famero de<\/span> <span style=\"color: #000000;\">subconjuntos tende a evitar simultaneamente muito vi\u00e9s e muita variabilidade.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Abordagem de valida\u00e7\u00e3o cruzada Leave One Out (LOOCV)<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">A <strong>abordagem LOOCV<\/strong> funciona da seguinte forma:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Construa o modelo usando todas as observa\u00e7\u00f5es do conjunto de dados, exceto uma.<\/span><br \/> <span style=\"color: #000000;\"><strong>2.<\/strong> Use o modelo para prever o valor da observa\u00e7\u00e3o faltante. Registre o erro ao testar esta previs\u00e3o.<\/span><br \/> <span style=\"color: #000000;\"><strong>3.<\/strong> Repita este processo para cada observa\u00e7\u00e3o no conjunto de dados.<\/span><br \/> <span style=\"color: #000000;\"><strong>4.<\/strong> Me\u00e7a a qualidade do modelo calculando a m\u00e9dia de todos os erros de previs\u00e3o.<\/span><\/p>\n<h3> <strong><span style=\"color: #000000;\">Exemplo<\/span><\/strong><\/h3>\n<p> <span style=\"color: #000000;\">O exemplo a seguir demonstra como executar LOOCV para o mesmo conjunto de dados usado nos exemplos anteriores:<\/span><\/p>\n<pre style=\"background-color: #e5e5e5; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#load <em>dplyr<\/em> library used for data manipulation\n<\/span>library(dplyr)\n\n<span style=\"color: #008080;\">#load <em>caret<\/em> library used for partitioning data into training and test set\n<\/span>library(caret)\n\n<span style=\"color: #008080;\">#make this example reproducible\n<\/span>set.seed(0)\n\n<span style=\"color: #008080;\">#define the dataset\n<\/span>data &lt;- mtcars[, c(\"mpg\", \"disp\", \"hp\", \"drat\")]\n\n<span style=\"color: #008080;\">#specify that we want to use LOOCV\n<\/span>train_control &lt;- trainControl( <span style=\"color: #800080;\">method = \"LOOCV\"<\/span> )\n\n<span style=\"color: #008080;\">#train the model\n<\/span>model &lt;- train(mpg ~ ., data = data, method = \"lm\", trControl = train_control)\n\n<span style=\"color: #008080;\">#summarize the results\n<\/span>print(model)\n\n#Linear Regression \n#\n#32 samples\n#3 predictor\n#\n#No pre-processing\n#Resampling: Leave-One-Out Cross-Validation \n#Summary of sample sizes: 31, 31, 31, 31, 31, 31, ... \n#Resampling results:\n#\n# RMSE Rsquared MAE     \n#3.168763 0.7170704 2.503544\n#\n#Tuning parameter 'intercept' was held constant at a value of TRUE\n<\/strong><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Vantagens e desvantagens desta abordagem<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">A vantagem do LOOCV \u00e9 que usamos todos os pontos de dados, o que geralmente reduz poss\u00edveis vieses. Por\u00e9m, como<\/span> <span style=\"color: #000000;\">utilizamos o modelo para prever o valor de cada observa\u00e7\u00e3o, isso poderia levar a uma maior variabilidade no<\/span> <span style=\"color: #000000;\">erro de previs\u00e3o.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Outra desvantagem desta abordagem \u00e9 que ela deve se ajustar a um n\u00famero t\u00e3o grande de modelos que pode se tornar ineficiente e computacionalmente pesada.<\/span><\/p>\n<h2> <strong><span style=\"color: #000000;\">Abordagem repetida de valida\u00e7\u00e3o cruzada k-fold<\/span><\/strong><\/h2>\n<p> <span style=\"color: #000000;\">Podemos realizar <strong>valida\u00e7\u00e3o cruzada repetida de k dobras<\/strong> simplesmente realizando a valida\u00e7\u00e3o cruzada de k dobras v\u00e1rias vezes. O erro final \u00e9 o erro m\u00e9dio do<\/span> <span style=\"color: #000000;\">n\u00famero de repeti\u00e7\u00f5es.<\/span><\/p>\n<p> <span style=\"color: #000000;\">O exemplo a seguir realiza uma valida\u00e7\u00e3o cruzada de 5 vezes, repetida 4 vezes:<\/span><\/p>\n<pre style=\"background-color: #e5e5e5; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#load <em>dplyr<\/em> library used for data manipulation\n<\/span>library(dplyr)\n\n<span style=\"color: #008080;\">#load <em>caret<\/em> library used for partitioning data into training and test set\n<\/span>library(caret)\n\n<span style=\"color: #008080;\">#make this example reproducible\n<\/span>set.seed(0)\n\n<span style=\"color: #008080;\">#define the dataset\n<\/span>data &lt;- mtcars[, c(\"mpg\", \"disp\", \"hp\", \"drat\")]\n\n<span style=\"color: #008080;\">#define the number of subsets to use and number of times to repeat k-fold CV\n<\/span>train_control &lt;- trainControl(method = \"repeatedcv\", number = 5, <span style=\"color: #800080;\">repeats = 4<\/span> )\n\n<span style=\"color: #008080;\">#train the model\n<\/span>model &lt;- train(mpg ~ ., data = data, method = \"lm\", trControl = train_control)\n\n<span style=\"color: #008080;\">#summarize the results\n<\/span>print(model)\n\n#Linear Regression \n#\n#32 samples\n#3 predictor\n#\n#No pre-processing\n#Resampling: Cross-Validated (5 fold, repeated 4 times) \n#Summary of sample sizes: 26, 25, 26, 25, 26, 25, ... \n#Resampling results:\n#\n# RMSE Rsquared MAE     \n#3.176339 0.7909337 2.559131\n#\n#Tuning parameter 'intercept' was held constant at a value of TRUE\n<\/strong><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Vantagens e desvantagens desta abordagem<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">A vantagem da abordagem de valida\u00e7\u00e3o cruzada repetida k-fold \u00e9 que para cada repeti\u00e7\u00e3o os dados ser\u00e3o divididos em subconjuntos ligeiramente diferentes, o que deve fornecer uma estimativa ainda mais imparcial do erro de previs\u00e3o do modelo. A desvantagem desta abordagem \u00e9 que ela pode ser computacionalmente intensiva, uma vez que temos que repetir o processo de ajuste do modelo v\u00e1rias vezes.<\/span><\/p>\n<h2> <strong><span style=\"color: #000000;\">Como escolher o n\u00famero de dobras na valida\u00e7\u00e3o cruzada<\/span><\/strong><\/h2>\n<p> <span style=\"color: #000000;\">A parte mais subjetiva da valida\u00e7\u00e3o cruzada \u00e9 decidir quantas dobras (ou seja, subconjuntos) usar. Em geral, quanto menor o n\u00famero de dobras, mais enviesadas ser\u00e3o as estimativas de erro, mas menos vari\u00e1veis elas ser\u00e3o. Por outro lado, quanto maior o n\u00famero de dobras, menos enviesadas ser\u00e3o as estimativas de erro, mas mais vari\u00e1veis elas ser\u00e3o.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Tamb\u00e9m \u00e9 importante ter em mente o tempo de c\u00e1lculo. Para cada dobra, voc\u00ea precisar\u00e1 treinar um novo padr\u00e3o e, embora seja um processo lento, pode demorar muito se voc\u00ea escolher um n\u00famero alto de dobras.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Na pr\u00e1tica, a valida\u00e7\u00e3o cruzada geralmente \u00e9 realizada com 5 ou 10 dobras, pois proporciona um bom equil\u00edbrio entre variabilidade e vi\u00e9s, al\u00e9m de ser computacionalmente eficiente.<\/span><\/p>\n<h2> <strong>Como escolher um modelo ap\u00f3s realizar a valida\u00e7\u00e3o cruzada<\/strong><\/h2>\n<p> <span style=\"color: #000000;\">A valida\u00e7\u00e3o cruzada \u00e9 usada para avaliar o erro de previs\u00e3o de um modelo. Isso pode nos ajudar a escolher entre dois ou mais modelos diferentes, destacando qual modelo tem o menor erro de previs\u00e3o (com base em RMSE, R-quadrado, etc.).<\/span><\/p>\n<p> <span style=\"color: #000000;\">Depois de usarmos a valida\u00e7\u00e3o cruzada para selecionar o melhor modelo, usamos <em>todos os<\/em> dados dispon\u00edveis para ajustar o modelo escolhido. N\u00e3o usamos as inst\u00e2ncias reais do modelo que treinamos durante a valida\u00e7\u00e3o cruzada para nosso modelo final.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Por exemplo, podemos usar a valida\u00e7\u00e3o cruzada de 5 vezes para determinar qual modelo \u00e9 melhor usar entre dois modelos de regress\u00e3o diferentes. No entanto, uma vez identificado qual modelo \u00e9 melhor usar, usamos <em>todos<\/em> os dados para ajustar o modelo final. Ou seja, n\u00e3o esquecemos nenhuma das dobras na hora de construir o modelo final.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nas estat\u00edsticas, muitas vezes constru\u00edmos modelos por dois motivos: Entenda o relacionamento entre uma ou mais vari\u00e1veis preditoras e uma vari\u00e1vel de resposta. Use um modelo para prever observa\u00e7\u00f5es futuras. A valida\u00e7\u00e3o cruzada \u00e9 \u00fatil para estimar qu\u00e3o bem um modelo \u00e9 capaz de prever observa\u00e7\u00f5es futuras. Por exemplo, podemos construir um modelo de regress\u00e3o [&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-519","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>Como fazer valida\u00e7\u00e3o cruzada para desempenho do modelo em R - Estatoriais<\/title>\n<meta name=\"description\" content=\"Este tutorial explica quatro maneiras diferentes de realizar valida\u00e7\u00e3o cruzada em R para avaliar o desempenho do modelo.\" \/>\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\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como fazer valida\u00e7\u00e3o cruzada para desempenho do modelo em R - Estatoriais\" \/>\n<meta property=\"og:description\" content=\"Este tutorial explica quatro maneiras diferentes de realizar valida\u00e7\u00e3o cruzada em R para avaliar o desempenho do modelo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-29T15:29:02+00:00\" \/>\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=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/\",\"url\":\"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/\",\"name\":\"Como fazer valida\u00e7\u00e3o cruzada para desempenho do modelo em R - Estatoriais\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/pt\/#website\"},\"datePublished\":\"2023-07-29T15:29:02+00:00\",\"dateModified\":\"2023-07-29T15:29:02+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666\"},\"description\":\"Este tutorial explica quatro maneiras diferentes de realizar valida\u00e7\u00e3o cruzada em R para avaliar o desempenho do modelo.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Lar\",\"item\":\"https:\/\/statorials.org\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Como fazer valida\u00e7\u00e3o cruzada para desempenho do modelo 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":"Como fazer valida\u00e7\u00e3o cruzada para desempenho do modelo em R - Estatoriais","description":"Este tutorial explica quatro maneiras diferentes de realizar valida\u00e7\u00e3o cruzada em R para avaliar o desempenho do modelo.","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\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/","og_locale":"pt_PT","og_type":"article","og_title":"Como fazer valida\u00e7\u00e3o cruzada para desempenho do modelo em R - Estatoriais","og_description":"Este tutorial explica quatro maneiras diferentes de realizar valida\u00e7\u00e3o cruzada em R para avaliar o desempenho do modelo.","og_url":"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/","og_site_name":"Statorials","article_published_time":"2023-07-29T15:29:02+00:00","author":"Dr. benjamim anderson","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Dr. benjamim anderson","Tempo estimado de leitura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/","url":"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/","name":"Como fazer valida\u00e7\u00e3o cruzada para desempenho do modelo em R - Estatoriais","isPartOf":{"@id":"https:\/\/statorials.org\/pt\/#website"},"datePublished":"2023-07-29T15:29:02+00:00","dateModified":"2023-07-29T15:29:02+00:00","author":{"@id":"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666"},"description":"Este tutorial explica quatro maneiras diferentes de realizar valida\u00e7\u00e3o cruzada em R para avaliar o desempenho do modelo.","breadcrumb":{"@id":"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/pt\/como-realizar-validacao-cruzada-para-desempenho-do-modelo-em-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Lar","item":"https:\/\/statorials.org\/pt\/"},{"@type":"ListItem","position":2,"name":"Como fazer valida\u00e7\u00e3o cruzada para desempenho do modelo 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\/519","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=519"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/posts\/519\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/media?parent=519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/categories?post=519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/tags?post=519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}