una rectas recta perpendiculares pendiente paralelas ejercicios ejemplos ecuaciones ecuacion r ggplot2 statistics regression linear-regression

rectas - Obtener la intersección y la pendiente del eje y desde una regresión lineal de datos múltiples y pasar los valores de intersección y pendiente a un marco de datos



rectas paralelas y perpendiculares ejercicios (1)

Supongo que estás buscando geom_smooth . Si llama a esta función con el method = "lm" argumento method = "lm" , calculará un ajuste lineal para todos los grupos:

ggplot(xm, aes(x = x, y = value, color = cols)) + geom_point(size = 3) + labs(x = "x", y = "y") + geom_smooth(method = "lm", se = FALSE)

También puede especificar un ajuste cuadrático con la función poly y el argumento formula :

ggplot(xm, aes(x = x, y = value, color=cols)) + geom_point(size = 3) + labs(x = "x", y = "y") + geom_smooth(method = "lm", se = FALSE, formula = y ~ poly(x, 2))

Para extraer los coeficientes de regresión correspondientes, puede usar este enfoque:

# create a list of coefficients fits <- by(xm[-2], xm$cols, function(i) coef(lm(value ~ x, i))) # create a data frame data.frame(cols = names(fits), do.call(rbind, fits)) # cols X.Intercept. x # y y -277.20000 105.40000 # s s -99.06667 35.13333 # t t -594.40000 210.80000

Si quieres un ajuste cuadrático, simplemente reemplaza el value ~ x con el value ~ poly(x, 2) .

Tengo un marco de datos x1 , que se generó con el siguiente fragmento de código,

x <- c(1:10) y <- x^3 z <- y-20 s <- z/3 t <- s*6 q <- s*y x1 <- cbind(x,y,z,s,t,q) x1 <- data.frame(x1)

Me gustaría extraer el intercepto del eje y y la pendiente del ajuste de regresión lineal para los datos,

x y z s t q 1 1 1 -19 -6.333333 -38 -6.333333 2 2 8 -12 -4.000000 -24 -32.000000 3 3 27 7 2.333333 14 63.000000 4 4 64 44 14.666667 88 938.666667 5 5 125 105 35.000000 210 4375.000000 6 6 216 196 65.333333 392 14112.000000 7 7 343 323 107.666667 646 36929.666667 8 8 512 492 164.000000 984 83968.000000 9 9 729 709 236.333333 1418 172287.000000 10 10 1000 980 326.666667 1960 326666.666667

Utilizo los siguientes códigos para fundir y trazar tres columnas de datos,

xm <- melt(x1, id=names(x1)[1], measure=names(x1)[c(2, 4, 5)], variable = "cols") plt <- ggplot(xm) + geom_point(aes(x=x,y= value, color=cols), size=3) + labs(x = "x", y = "y")

Ahora lo que necesito es obtener un ajuste lineal de mínimos cuadrados para todos los datos por separado y almacenar el intercepto y la pendiente resultantes en un nuevo marco de datos.

Yo uso plt + geom_abline() pero no obtengo el resultado deseado. ¿Podría alguien decirme cómo resolver esto?