Está en la página 1de 3

Ejercicio 2.

Regresión Lineal Simple


1. Modifique su programa de regresión lineal en R para mostrar la recta de
regresión sobre la gráfica de dispersión de los datos, como se muestra en la
imagen adjunta más abajo.
2. La función qqnorm(residuos_estandarizados) genera una gráfica de
probabilidad normal para los residuos estandarizados que toma como
parámetro. La función qqline(residuos_estandarizados) traza una línea recta
que representa la ubicación ideal de una muestra si fuera exactamente normal.
Consulte la ayuda de ambas funciones para mayores detalles. Modifique su
programa de regresión lineal en R para obtener una gráfica de probabilidad
normal (Q-Q plot) como se muestra en la imagen. Recuerde agregar colores,
títulos descriptivos a los ejes y título principal como el mostrado.
3. Ponga a prueba su programa con los datos del Ejercicio 2 del documento

x<-c(1,2,3,4,5,6,7,8)

y<-c(0,0,0.02,0.01,0.01,0.01,0.03,0.03)

x1<-c(9,10,11,12,13,14,15)

y1<-c(0.02,0.04,0.04,0.04,0.03,0.04,0.05)

regresion_lineal_simple <-

function(x, y, decimales=4, nombreX="x", nombreY="y")

# Número de datos

n = length(x)

# beta.gorro1

Sxx = sum(x^2) - 1/n*(sum(x))^2

Sxy = sum(x*y) - 1/n*sum(x)

sum(y)

beta.gorro1 = Sxy/Sxx

# beta.gorro0

beta.gorro0 = mean(y) - beta.gorro1*mean(x)


# ===== # Cálculo de r y r^2

# ---

#r

Syy = sum(y^2) - 1/n*(sum(y))^2

r = Sxy/sqrt(Sxx*Syy)

r2 = r^2

# ===== # Cálculo de residuos

y.gorro = beta.gorro0 + beta.gorro1*x

residuos = y - y.gorro

# --- # Residuos estandarizados

residuos_std = (residuos - mean(residuos))/sd(residuos)

# ===== # Gráficas # ---

# Dividiremos el área de gráfica en una matriz de 2x2

par(mfrow=c(2,2))

# Gráfica de dispersión

plot(x, y, pch=16, col="blue", main="Gráfica de dispersión", xlab=nombreX,


ylab=nombreY)

# Histograma de residuos estandarizados

hist(residuos_std, col="slateblue", xlab="Residuos", ylab="Frecuencia",


main="Histograma de residuos")

# Dispersión de residuos estandarizados vs predichos

plot(y.gorro, residuos_std, pch=16, col="green2", xlab="Valores predichos


(y.gorro)", ylab="Residuos estandarizados", main="Residuos estandarizados vs
Valores predichos")

abline(h=0, col="red", lty=2)

# Recta de regresión sobre la gráfica de dispersión


plot(x, y, pch=16, col="blue", main="Gráfica de dispersión", xlab=nombreX,
ylab=nombreY)

abline(a=beta.gorro0, b=beta.gorro1, col="salmon4")

qqnorm(residuos_std, xlab="cuantiles teoricos", col="brown",pch=16,ylab =


"cuantiles de la muestras",main = "Grafica de probabilidad normal\n (Q-Q
plot)")

qqline(residuos_std,lty=2,col="red")

# Devolvemos el área de graficado a un único elemento, aunque se # escribe


como si fuera una matriz de 1x1

par(mfrow=c(1,1))

# ===== # Resultados

resultado = list(beta.gorro0=beta.gorro0, beta.gorro1=beta.gorro1,


modelo=paste0("y = ",round(beta.gorro0,decimales), " +
",round(beta.gorro1,decimales),"x"), coef_correlacion=r,
coef_determinacion=r2)

return(resultado)

regresion_lineal_simple(x,y)

regresion_lineal_simple(x1,y1)

También podría gustarte