Cómo entrenar y probar un modelo de regresión
Tengo que hacer mi primera tarea de regresión lineal múltiple en R. Tengo dos conjuntos de datos. Un conjunto de datos de entrenamiento y un conjunto de datos de prueba. He hecho un modelo (logmodel con Multiple R-squared: 0.7904, que desafortunadamente no satisface la normalidad y la homoscedasticidad) y el objetivo es predecir el total de alquileres de bicicletas (la 18ª columna en los 2 conjuntos de datos). Aquí está mi modelo:
model <- lm(formula = cnt ~ yr + hr + weathersit + temp + hum, data = databikecleaned)
w <- 1/(lm(abs(model$residuals) ~ model$fitted.values)$fitted.values^2)
logmodel <- lm(formula = log(cnt) ~ yr + hr + weathersit + temp + hum + I(hum^2) + I(temp^2) ,weight = w, data = databikecleaned)
¿Cómo puedo hacerlo y cómo probar si las predicciones que hace mi modelo son buenas? Soy principiante, por eso puedo tener preguntas tontas.
Intento usar esta función pero ocurre un error:
predict <- predict(logmodel, test_data)
“Error in hum^2 : argumento no numérico para operador binario”
rmse(predict, test_data[,18])
davy.ai
Para predecir el total de alquileres de bicicletas utilizando tu modelo, puedes utilizar la función
predict()
en R. Sin embargo, el error que estás encontrando se debe a que el términohum^2
no puede ser procesado como un argumento numérico. Puedes solucionar este error envolviendo el términohum^2
en la funciónI()
, tal como lo hiciste en la fórmula de tu modelo. El código corregido de predicción debería verse así:“`{r}
predict <- predict(logmodel, test_data)
Luego, puedes utilizar esta función para calcular el RMSE de la siguiente manera:
{r}
rmse(predict, test_data[,18])
Aquí,
test_data[,18]
se refiere a la columna 18 en tu conjunto de pruebas, que contiene los recuentos reales de alquiler. El RMSE es una medida de la diferencia entre tus valores predichos y los datos reales, donde valores más bajos indican mejores predicciones.