CV <- function (df, n) {
# Cualquier seed debe funcionar, se probo con el del ejemplo de clase para comparar
# set.seed(161)
index <- 1:nrow(df)
shuffle_index <- sample(index)
shuffle_df <- df[shuffle_index,]
delta <- nrow(df)/n
result <- data.frame()
for (i in 1:n) {
if (i == 1) {
test <- shuffle_df[1:delta,]
train <- shuffle_df[-(1:delta),]
} else {
test <- shuffle_df[((i-1)*delta):(i*delta),]
train <- shuffle_df[-(((i-1)*delta):(i*delta)),]
}
fit <- lm(data = train)
ptest <- fit$coefficients[1]
for (j in 2:ncol(df)) {
ptest <- ptest + fit$coefficients[j]*test[j]
}
RMSE<-sqrt( sum( (test[1] - as.vector(ptest))^2 )/nrow(test) )
result <- rbind(result, c(RMSE))
}
colnames(result) <- c("RMS")
return(result)
}
faith <- data.frame(faithful$waiting, faithful$eruptions)
CV(faith, 5)
CV(faith, 10)
LS0tDQp0aXRsZTogIkNyb3NzIFZhbGlkYXRpb24iDQphdXRob3I6ICJMdWlzIEppbWVuZXoiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQpgYGB7ciBmdW5jaW9ufQ0KQ1YgPC0gZnVuY3Rpb24gKGRmLCBuKSB7DQogICMgQ3VhbHF1aWVyIHNlZWQgZGViZSBmdW5jaW9uYXIsIHNlIHByb2JvIGNvbiBlbCBkZWwgZWplbXBsbyBkZSBjbGFzZSBwYXJhIGNvbXBhcmFyDQogICMgc2V0LnNlZWQoMTYxKQ0KICANCiAgaW5kZXggPC0gMTpucm93KGRmKQ0KICBzaHVmZmxlX2luZGV4IDwtIHNhbXBsZShpbmRleCkNCiAgc2h1ZmZsZV9kZiA8LSBkZltzaHVmZmxlX2luZGV4LF0NCiAgDQogIGRlbHRhIDwtIG5yb3coZGYpL24NCiAgDQogIHJlc3VsdCA8LSBkYXRhLmZyYW1lKCkNCiAgDQogIGZvciAoaSBpbiAxOm4pIHsNCiAgICBpZiAoaSA9PSAxKSB7DQogICAgICB0ZXN0IDwtIHNodWZmbGVfZGZbMTpkZWx0YSxdDQogICAgICB0cmFpbiA8LSBzaHVmZmxlX2RmWy0oMTpkZWx0YSksXQ0KICAgIH0gZWxzZSB7DQogICAgICB0ZXN0IDwtIHNodWZmbGVfZGZbKChpLTEpKmRlbHRhKTooaSpkZWx0YSksXQ0KICAgICAgdHJhaW4gPC0gc2h1ZmZsZV9kZlstKCgoaS0xKSpkZWx0YSk6KGkqZGVsdGEpKSxdDQogICAgfQ0KICAgIA0KICAgIGZpdCA8LSBsbShkYXRhID0gdHJhaW4pDQogICAgcHRlc3QgPC0gZml0JGNvZWZmaWNpZW50c1sxXQ0KICAgIA0KICAgIGZvciAoaiBpbiAyOm5jb2woZGYpKSB7DQogICAgICBwdGVzdCA8LSBwdGVzdCArIGZpdCRjb2VmZmljaWVudHNbal0qdGVzdFtqXQ0KICAgIH0NCiAgICANCiAgICBSTVNFPC1zcXJ0KCBzdW0oICh0ZXN0WzFdIC0gYXMudmVjdG9yKHB0ZXN0KSleMiApL25yb3codGVzdCkgKQ0KICAgIHJlc3VsdCA8LSByYmluZChyZXN1bHQsIGMoUk1TRSkpDQogIH0NCiAgDQogIGNvbG5hbWVzKHJlc3VsdCkgPC0gYygiUk1TIikNCiAgcmV0dXJuKHJlc3VsdCkNCn0NCg0KYGBgDQoNCmBgYHtyIHBydWViYX0NCmZhaXRoIDwtIGRhdGEuZnJhbWUoZmFpdGhmdWwkd2FpdGluZywgZmFpdGhmdWwkZXJ1cHRpb25zKQ0KQ1YoZmFpdGgsIDUpDQpDVihmYWl0aCwgMTApDQpgYGANCg0K