es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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])
Tags:  , , ,

Answer

  1. Avatar for 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érmino hum^2 no puede ser procesado como un argumento numérico. Puedes solucionar este error envolviendo el término hum^2 en la función I(), 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)


    Para probar la calidad de tus predicciones, puedes calcular el error cuadrático medio (RMSE) entre tus valores predichos y los recuentos de alquiler reales en tu conjunto de pruebas. La función `rmse()` que intentaste utilizar no es una función incorporada de R, pero se puede definir fácilmente de la siguiente manera: ```{r} rmse <- function(predicted, actual) { sqrt(mean((predicted - actual)^2)) }

    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.

Comments are closed.