{"id":520,"date":"2023-07-29T15:29:02","date_gmt":"2023-07-29T15:29:02","guid":{"rendered":"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/"},"modified":"2023-07-29T15:29:02","modified_gmt":"2023-07-29T15:29:02","slug":"come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r","status":"publish","type":"post","link":"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/","title":{"rendered":"Come eseguire la convalida incrociata per le prestazioni del modello in r"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\">In statistica, spesso costruiamo modelli per due motivi:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\">Comprendere la relazione tra una o pi\u00f9 variabili predittive e<\/span> <span style=\"color: #000000;\">una variabile di risposta.<\/span><\/li>\n<li> <span style=\"color: #000000;\">Utilizzare un modello per prevedere le osservazioni future.<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\"><strong>La convalida incrociata<\/strong> \u00e8 utile per stimare quanto bene un modello sia in grado di prevedere le osservazioni future.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Ad esempio, possiamo costruire un modello di regressione lineare multipla<\/span> <span style=\"color: #000000;\">che utilizza <em>et\u00e0<\/em> e <em>reddito<\/em> come variabili predittive e <em>lo stato predefinito come<\/em> variabile di risposta.<\/span> <span style=\"color: #000000;\">In questo caso, potremmo voler adattare il modello a un set di dati e quindi utilizzare tale modello per prevedere, in base al<\/span> <span style=\"color: #000000;\">reddito e all&#8217;et\u00e0 del nuovo richiedente, la probabilit\u00e0 che non riesca a onorare il prestito.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Per determinare se il modello ha una forte capacit\u00e0 predittiva, dobbiamo usarlo per fare previsioni su<\/span> <span style=\"color: #000000;\">dati mai visti prima. Questo ci permetter\u00e0 di stimare l\u2019 <strong>errore di previsione<\/strong> del modello.<\/span><\/p>\n<h2> <strong><span style=\"color: #000000;\">Utilizzo della convalida incrociata per stimare l&#8217;errore di previsione<\/span><\/strong><\/h2>\n<p> <span style=\"color: #000000;\"><strong>La convalida incrociata<\/strong> si riferisce a diversi modi in cui possiamo stimare l&#8217;errore di previsione.<\/span> <span style=\"color: #000000;\">L&#8217;approccio generale alla<\/span> <span style=\"color: #000000;\">convalida incrociata \u00e8:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Mettere da parte un certo numero di osservazioni nel set di dati, in genere il 15-25% di tutte le osservazioni.<\/span><br \/> <span style=\"color: #000000;\"><strong>2.<\/strong> Adattare (o \u201caddestrare\u201d) il modello alle osservazioni che conserviamo nel set di dati.<\/span><br \/> <span style=\"color: #000000;\"><strong>3.<\/strong> Testare la capacit\u00e0 del modello di fare previsioni sulle osservazioni che non abbiamo utilizzato per addestrare il modello.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Misurare la qualit\u00e0 di un modello<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Quando utilizziamo il modello adattato per fare previsioni su nuove osservazioni, possiamo utilizzare diversi parametri per misurare la qualit\u00e0 del modello, tra cui:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>R quadrato multiplo:<\/strong> misura la forza della relazione lineare tra le variabili predittive e la<\/span> <span style=\"color: #000000;\">variabile di risposta. Un multiplo R quadrato di 1 indica una relazione lineare perfetta mentre un<\/span> <span style=\"color: #000000;\">multiplo R quadrato di 0 indica alcuna relazione lineare. Maggiore \u00e8 il multiplo R quadrato, maggiore \u00e8 la probabilit\u00e0 che le variabili predittive prevedano la variabile di risposta.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>Errore quadratico medio (RMSE):<\/strong> misura l&#8217;errore di previsione medio commesso dal modello quando prevede il valore<\/span> <span style=\"color: #000000;\">di una nuova osservazione. Questa \u00e8 la distanza media tra il valore reale di un&#8217;osservazione e il valore previsto dal modello.<\/span> Valori <span style=\"color: #000000;\">pi\u00f9 bassi<\/span> <span style=\"color: #000000;\">per RMSE indicano un migliore adattamento del modello.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>Errore assoluto medio (MAE):<\/strong> questa \u00e8 la differenza media assoluta tra il valore reale di un&#8217;osservazione e il valore previsto dal modello.<\/span> <span style=\"color: #000000;\">Questa metrica \u00e8 generalmente meno sensibile ai valori anomali rispetto a RMSE. Valori pi\u00f9 bassi per MAE indicano un migliore adattamento del modello.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Implementazione di quattro diverse tecniche di convalida incrociata in R<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Spiegheremo quindi come implementare le seguenti tecniche di convalida incrociata in R:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Approccio dell&#8217;insieme di validazione<\/span><br \/> <span style=\"color: #000000;\"><strong>2.<\/strong> validazione incrociata k-fold<\/span><br \/> <span style=\"color: #000000;\"><strong>3.<\/strong> Lasciare da parte la convalida incrociata<\/span><br \/> <span style=\"color: #000000;\"><strong>4.<\/strong> Convalida incrociata k-fold ripetuta<\/span><\/p>\n<p> <span style=\"color: #000000;\">Per illustrare come utilizzare queste diverse tecniche, utilizzeremo un sottoinsieme del set di dati R integrato in <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;\">Costruiremo un modello di regressione lineare multipla utilizzando <em>disp<\/em> , <em>hp<\/em> e <em>drat<\/em> come variabili predittive e <em>mpg<\/em><\/span> <span style=\"color: #000000;\">come variabile di risposta.<\/span><\/p>\n<h2> <strong><span style=\"color: #000000;\">Approccio dell&#8217;insieme di validazione<\/span><\/strong><\/h2>\n<p> <span style=\"color: #000000;\">L\u2019 <strong>approccio del set di validazione<\/strong> funziona come segue:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Dividere i dati in due insiemi: un insieme viene utilizzato per addestrare il modello (ovvero stimare i parametri del modello)<\/span> <span style=\"color: #000000;\">e l&#8217;altro insieme viene utilizzato per testare il modello. In genere, il set di addestramento viene generato selezionando casualmente<\/span> <span style=\"color: #000000;\">il 70-80% dei dati e il restante 20-30% dei dati viene utilizzato come set di test.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>2.<\/strong> Crea il modello utilizzando il set di dati di training.<\/span><br \/> <span style=\"color: #000000;\"><strong>3.<\/strong> Utilizzare il modello per fare previsioni sui dati del set di test.<\/span><br \/> <span style=\"color: #000000;\"><strong>4.<\/strong> Misurare la qualit\u00e0 del modello utilizzando parametri come R-squared, RMSE e MAE.<\/span><\/p>\n<h3> <strong><span style=\"color: #000000;\">Esempio:<\/span><\/strong><\/h3>\n<p> <span style=\"color: #000000;\">L&#8217;esempio seguente utilizza il set di dati definito in precedenza. Per prima cosa dividiamo i dati in<\/span><br \/> <span style=\"color: #000000;\">un training set e un test set, utilizzando l&#8217;80% dei dati come training set e il restante 20% dei dati<\/span> <span style=\"color: #000000;\">come test set. Successivamente, costruiamo il modello utilizzando il<\/span> <span style=\"color: #000000;\">set di training. Quindi utilizziamo il modello per fare previsioni sul set di test. Infine, misuriamo la qualit\u00e0 del<\/span> <span style=\"color: #000000;\">modello utilizzando R-squared, 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;\">Quando si confrontano modelli diversi, quello che produce il RMSE pi\u00f9 basso sul set di test \u00e8 il modello preferito.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Vantaggi e svantaggi di questo approccio<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Il vantaggio dell\u2019approccio del set di validazione \u00e8 che \u00e8 semplice ed efficiente dal punto di vista computazionale. Lo svantaggio<\/span> <span style=\"color: #000000;\">\u00e8 che il modello viene costruito utilizzando solo una parte dei dati totali. Se i dati che lasciamo<\/span> <span style=\"color: #000000;\">fuori dal training set contengono informazioni interessanti o preziose, il modello non ne terr\u00e0 conto.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Approccio di convalida incrociata k-fold<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">L&#8217; <strong>approccio di convalida incrociata k-fold<\/strong> funziona come segue:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Dividere casualmente i dati in k \u201cpieghe\u201d o sottoinsiemi (ad esempio, 5 o 10 sottoinsiemi).<\/span><br \/> <span style=\"color: #000000;\"><strong>2.<\/strong> Addestrare il modello su tutti i dati, tralasciando solo un sottoinsieme.<\/span><br \/> <span style=\"color: #000000;\"><strong>3.<\/strong> Utilizzare il modello per fare previsioni sui dati del sottoinsieme che \u00e8 stato escluso.<\/span><br \/> <span style=\"color: #000000;\"><strong>4.<\/strong> Ripetere questo processo finch\u00e9 ciascuno dei k sottoinsiemi non \u00e8 stato utilizzato come set di test.<\/span><br \/> <span style=\"color: #000000;\"><strong>5<\/strong> . Misurare la qualit\u00e0 del modello facendo la media dei k errori del test. Questo \u00e8 noto<\/span><br \/> <span style=\"color: #000000;\">come errore di convalida incrociata.<\/span><\/p>\n<h3> <strong><span style=\"color: #000000;\">Esempio<\/span><\/strong><\/h3>\n<p> <span style=\"color: #000000;\">In questo esempio, dividiamo prima i dati in<\/span> <span style=\"color: #000000;\">5 sottoinsiemi. Quindi adattiamo il modello utilizzando tutti i dati tranne un sottoinsieme. Quindi utilizziamo il modello per fare<\/span> <span style=\"color: #000000;\">previsioni sul sottoinsieme che \u00e8 stato escluso e registriamo l&#8217;errore del test (utilizzando R quadrato, RMSE e MAE). Ripetiamo<\/span> <span style=\"color: #000000;\">questo processo finch\u00e9 ciascun sottoinsieme non \u00e8 stato utilizzato come set di test. Quindi calcoliamo semplicemente la media dei 5<\/span> <span style=\"color: #000000;\">errori del test.<\/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;\">Vantaggi e svantaggi di questo approccio<\/span><\/strong><\/h3>\n<p> <span style=\"color: #000000;\">Il vantaggio dell&#8217;approccio di convalida incrociata k-fold rispetto all&#8217;approccio del set di convalida \u00e8 che costruisce il modello pi\u00f9 volte<\/span> <span style=\"color: #000000;\">utilizzando pezzi di dati diversi ogni volta, quindi non dobbiamo rischiare di omettere dati importanti durante la costruzione<\/span> <span style=\"color: #000000;\">del modello.<\/span><\/p>\n<p> <span style=\"color: #000000;\">La parte soggettiva di questo approccio \u00e8 scegliere il valore da utilizzare per k, ovvero il numero di sottoinsiemi in cui dividere<\/span> <span style=\"color: #000000;\">i dati. In generale, valori k pi\u00f9 bassi portano a una distorsione pi\u00f9 elevata ma a una variabilit\u00e0 inferiore, mentre valori k pi\u00f9 alti<\/span> <span style=\"color: #000000;\">portano a una distorsione inferiore ma a una variabilit\u00e0 pi\u00f9 elevata.<\/span><\/p>\n<p> <span style=\"color: #000000;\">In pratica, k viene generalmente scelto pari a 5 o 10, perch\u00e9 questo numero di<\/span> <span style=\"color: #000000;\">sottoinsiemi tende ad evitare contemporaneamente troppa distorsione e troppa variabilit\u00e0.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Approccio LOOCV (Leave One Out Cross-Validation).<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">L\u2019 <strong>approccio LOOCV<\/strong> funziona come segue:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> Costruisci il modello utilizzando tutte le osservazioni tranne una nel set di dati.<\/span><br \/> <span style=\"color: #000000;\"><strong>2.<\/strong> Utilizzare il modello per prevedere il valore dell&#8217;osservazione mancante. Registra l&#8217;errore nel testare questa previsione.<\/span><br \/> <span style=\"color: #000000;\"><strong>3.<\/strong> Ripetere questo processo per ciascuna osservazione nel set di dati.<\/span><br \/> <span style=\"color: #000000;\"><strong>4.<\/strong> Misurare la qualit\u00e0 del modello calcolando la media di tutti gli errori di previsione.<\/span><\/p>\n<h3> <strong><span style=\"color: #000000;\">Esempio<\/span><\/strong><\/h3>\n<p> <span style=\"color: #000000;\">L&#8217;esempio seguente dimostra come utilizzare perform LOOCV per lo stesso set di dati utilizzato negli esempi precedenti:<\/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>Vantaggi e svantaggi di questo approccio<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Il vantaggio di LOOCV \u00e8 che utilizziamo tutti i punti dati, il che generalmente riduce potenziali distorsioni. Tuttavia, poich\u00e9<\/span> <span style=\"color: #000000;\">utilizziamo il modello per prevedere il valore di ciascuna osservazione, ci\u00f2 potrebbe portare a una maggiore variabilit\u00e0 nell\u2019errore di<\/span> <span style=\"color: #000000;\">previsione.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Un altro svantaggio di questo approccio \u00e8 che deve adattarsi a un numero cos\u00ec elevato di modelli che pu\u00f2 diventare inefficiente e computazionalmente pesante.<\/span><\/p>\n<h2> <strong><span style=\"color: #000000;\">Approccio di convalida incrociata ripetuto k-fold<\/span><\/strong><\/h2>\n<p> <span style=\"color: #000000;\">Possiamo eseguire <strong>ripetute validazioni incrociate k-fold<\/strong> semplicemente eseguendo la convalida incrociata k-fold pi\u00f9 volte. L&#8217;errore finale \u00e8 l&#8217;errore medio del<\/span> <span style=\"color: #000000;\">numero di ripetizioni.<\/span><\/p>\n<p> <span style=\"color: #000000;\">L&#8217;esempio seguente esegue una convalida incrociata 5 volte, ripetuta 4 volte:<\/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>Vantaggi e svantaggi di questo approccio<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Il vantaggio dell&#8217;approccio di validazione incrociata ripetuta k-fold \u00e8 che per ogni ripetizione i dati verranno suddivisi in sottoinsiemi leggermente diversi, il che dovrebbe fornire una stima ancora pi\u00f9 imparziale dell&#8217;errore di previsione del modello. Lo svantaggio di questo approccio \u00e8 che pu\u00f2 essere impegnativo dal punto di vista computazionale poich\u00e9 dobbiamo ripetere il processo di adattamento del modello pi\u00f9 volte.<\/span><\/p>\n<h2> <strong><span style=\"color: #000000;\">Come scegliere il numero di pieghe nella convalida incrociata<\/span><\/strong><\/h2>\n<p> <span style=\"color: #000000;\">La parte pi\u00f9 soggettiva della convalida incrociata \u00e8 decidere quante pieghe (ovvero sottoinsiemi) utilizzare. In generale, minore \u00e8 il numero di pieghe, pi\u00f9 distorta \u00e8 la stima dell&#8217;errore, ma meno variabile sar\u00e0. Al contrario, maggiore \u00e8 il numero di pieghe, meno distorte saranno le stime degli errori, ma pi\u00f9 variabili saranno.<\/span><\/p>\n<p> <span style=\"color: #000000;\">\u00c8 anche importante tenere presente il tempo di calcolo. Per ogni piega, dovrai addestrare un nuovo modello e, sebbene si tratti di un processo lento, potrebbe richiedere molto tempo se scegli un numero elevato di pieghe.<\/span><\/p>\n<p> <span style=\"color: #000000;\">In pratica, la convalida incrociata viene solitamente eseguita con 5 o 10 volte, poich\u00e9 ci\u00f2 fornisce un buon equilibrio tra variabilit\u00e0 e distorsione, pur essendo efficiente dal punto di vista computazionale.<\/span><\/p>\n<h2> <strong>Come scegliere un modello dopo aver eseguito la convalida incrociata<\/strong><\/h2>\n<p> <span style=\"color: #000000;\">La convalida incrociata viene utilizzata per valutare l&#8217;errore di previsione di un modello. Questo pu\u00f2 aiutarci a scegliere tra due o pi\u00f9 modelli diversi evidenziando quale modello ha l&#8217;errore di previsione pi\u00f9 basso (basato su RMSE, R-squared, ecc.).<\/span><\/p>\n<p> <span style=\"color: #000000;\">Dopo aver utilizzato la convalida incrociata per selezionare il modello migliore, utilizziamo <em>tutti<\/em> i dati disponibili per adattarli al modello scelto. Non utilizziamo le istanze del modello effettivo che abbiamo addestrato durante la convalida incrociata per il nostro modello finale.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Ad esempio, possiamo utilizzare la convalida incrociata 5 volte per determinare quale modello \u00e8 meglio utilizzare tra due diversi modelli di regressione. Tuttavia, una volta identificato il modello migliore da utilizzare, utilizziamo <em>tutti<\/em> i dati per adattarli al modello finale. In altre parole, non dimentichiamo nessuna delle pieghe durante la costruzione del modello finale.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In statistica, spesso costruiamo modelli per due motivi: Comprendere la relazione tra una o pi\u00f9 variabili predittive e una variabile di risposta. Utilizzare un modello per prevedere le osservazioni future. La convalida incrociata \u00e8 utile per stimare quanto bene un modello sia in grado di prevedere le osservazioni future. Ad esempio, possiamo costruire un modello [&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 convalida incrociata per le prestazioni del modello in R - Statorials<\/title>\n<meta name=\"description\" content=\"Questo tutorial illustra quattro modi diversi per eseguire la convalida incrociata in R per valutare le prestazioni del modello.\" \/>\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\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-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 convalida incrociata per le prestazioni del modello in R - Statorials\" \/>\n<meta property=\"og:description\" content=\"Questo tutorial illustra quattro modi diversi per eseguire la convalida incrociata in R per valutare le prestazioni del modello.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-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=\"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=\"10 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/\",\"url\":\"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/\",\"name\":\"Come eseguire la convalida incrociata per le prestazioni del modello in R - Statorials\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/it\/#website\"},\"datePublished\":\"2023-07-29T15:29:02+00:00\",\"dateModified\":\"2023-07-29T15:29:02+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae\"},\"description\":\"Questo tutorial illustra quattro modi diversi per eseguire la convalida incrociata in R per valutare le prestazioni del modello.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Casa\",\"item\":\"https:\/\/statorials.org\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Come eseguire la convalida incrociata per le prestazioni del modello in r\"}]},{\"@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 convalida incrociata per le prestazioni del modello in R - Statorials","description":"Questo tutorial illustra quattro modi diversi per eseguire la convalida incrociata in R per valutare le prestazioni del modello.","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\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/","og_locale":"it_IT","og_type":"article","og_title":"Come eseguire la convalida incrociata per le prestazioni del modello in R - Statorials","og_description":"Questo tutorial illustra quattro modi diversi per eseguire la convalida incrociata in R per valutare le prestazioni del modello.","og_url":"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/","og_site_name":"Statorials","article_published_time":"2023-07-29T15:29:02+00:00","author":"Benjamin anderson","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Benjamin anderson","Est. reading time":"10 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/","url":"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/","name":"Come eseguire la convalida incrociata per le prestazioni del modello in R - Statorials","isPartOf":{"@id":"https:\/\/statorials.org\/it\/#website"},"datePublished":"2023-07-29T15:29:02+00:00","dateModified":"2023-07-29T15:29:02+00:00","author":{"@id":"https:\/\/statorials.org\/it\/#\/schema\/person\/0896f191fb9fb019f2cd8623112cb3ae"},"description":"Questo tutorial illustra quattro modi diversi per eseguire la convalida incrociata in R per valutare le prestazioni del modello.","breadcrumb":{"@id":"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/it\/come-eseguire-la-convalida-incrociata-per-le-prestazioni-del-modello-in-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Casa","item":"https:\/\/statorials.org\/it\/"},{"@type":"ListItem","position":2,"name":"Come eseguire la convalida incrociata per le prestazioni del modello in r"}]},{"@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\/520"}],"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=520"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/posts\/520\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/media?parent=520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/categories?post=520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/it\/wp-json\/wp\/v2\/tags?post=520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}