cross_validate() i R

Da jeg i forbindelse med min uddannelse i Cognitive Science skulle lære at arbejde med cross-validation i R, bestemte jeg mig for at skrive en cross-validation funktion, som kunne håndtere de fleste af de opgaver, vi blev udsat for. Dette virkede som en god måde at komme mere i dybden med emnet, og øve mine programmeringsfærdigheder.

Funktionen virker indtil videre med gaussiske og binomiale regressionsmodeller – lm(), lmer(), glm() og glmer().

cross_validate() laver balancerede folds på baggrund af 1 variabel (so far)

For hver fold:

  • laver den trænings- og testsæt
  • træner den modellen på træningssættet
  • predicter den den afhængige variabel i testsættet

Ved gaussiske modeller – lm() og lmer() – returneres de gennemsnitlige værdier for RMSE, r2m, r2c, AIC og BIC fra alle folds.

Ved binomiale modeller – glm() og glmer() – bruges predictions til at lave confusion matrix og ROC curve. De associerede værdier hertil – Area Under the Curve, Sensitivity, Specificity, etc., returneres.

Ved begge modeller tælles desuden convergence warnings, så man kan justere sin model eller vælge en anden.

cross_validate_list() bruges til at cross-validere flere modeller på en gang. Ud får man et dataframe med de førnævnte værdier, så man let kan sammenligne sine modeller.

Tjek den nyeste version af koden og en tilhørende manual ud her:

https://github.com/LudvigOlsen/R-cross_validate

Date: oktober 2016
Skills: Programmering, R