slg significa sabermetria que ops obp beisbol r dataframe prediction lm predict

significa - sabermetria pdf



¿Cuál es la diferencia entre lm(ofensa $ R ~ ofensa $ OBP) y lm(R ~ OBP)? (2)

En el primer caso, obtienes esto si imprimes el modelo:

Call: lm(formula = offense$R ~ offense$OBP) Coefficients: (Intercept) offense$OBP -0.1102 0.5276

Pero en el segundo, obtienes esto:

Call: lm(formula = R ~ OBP) Coefficients: (Intercept) OBP -0.1102 0.5276

Mire el nombre de los coeficientes. Cuando crea sus nuevos datos con newdata=data.frame(OBP=0.5) , eso realmente no tiene sentido para el primer modelo, por lo que newdata se ignora y solo obtiene los valores pronosticados con los datos de entrenamiento. Cuando usa offense$R ~ offense$OBP , la fórmula tiene solo dos vectores en cada lado, sin nombres asociados a un data.frame .

La mejor manera de hacerlo es:

obp <- lm(R ~ OBP, data=offense) predict(obp, newdata=data.frame(OBP=0.5), interval="predict")

Y obtendrá el resultado correcto, la predicción para OBP=0.5 .

Estoy tratando de usar R para crear un modelo lineal y usarlo para predecir algunos valores. El tema es estadísticas de béisbol. Si hago esto:

obp <- lm(offense$R ~ offense$OBP) predict(obp, newdata=data.frame(OBP=0.5), interval="predict")

Aparece el error: Mensaje de advertencia: ''newdata'' tenía 1 fila pero las variables encontradas tienen 20 filas.

Sin embargo, si hago esto:

attach(offense) obp <- lm(R ~ OBP) predict(obp, newdata=data.frame(OBP=0.5), interval="predict")

Funciona como se esperaba y obtengo un resultado. ¿Cuál es la diferencia entre los dos? Si solo imprimo OBP y ofensa $ OBP, se ven iguales.


No hay diferencia, obtienes los mismos coeficientes.

Pero algunos estilos de programación son mejores que otros, y se debe evitar adjuntar, al igual que la primera forma más detallada.

La mayoría de los usuarios experimentados

lm(R ~ OBP, offense)

en lugar.