# Cargar los datos del archivo Salary_Data.csv
directorioActual <- dirname(rstudioapi::getSourceEditorContext()$path)
archivo <- file.path(directorioActual, "Salary_Data.csv")
datos <- read.csv(archivo)
# Mostrar los primeros registros de la base de datos
head(datos)
## Age Gender Education.Level Job.Title Experience Salary
## 1 32 Male Bachelor's Software Engineer 5 90000
## 2 28 Female Master's Data Analyst 3 65000
## 3 45 Male PhD Senior Manager 15 150000
## 4 36 Female Bachelor's Sales Associate 7 60000
## 5 52 Male Master's Director 20 200000
## 6 29 Male Bachelor's Marketing Analyst 2 55000
lm_fit <- lm(Salary ~ Experience, data = datos)
# Mostrar los coeficientes del modelo
summary(lm_fit)
##
## Call:
## lm(formula = Salary ~ Experience, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -118904 -26003 4129 24064 74064
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 91000.63 1054.44 86.30 <2e-16 ***
## Experience 4978.44 94.24 52.83 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 33570 on 3012 degrees of freedom
## Multiple R-squared: 0.4809, Adjusted R-squared: 0.4808
## F-statistic: 2791 on 1 and 3012 DF, p-value: < 2.2e-16
# Graficar los datos y la línea de regresión
plot(Salary ~ Experience, data = datos, main = "Relación entre Experiencia y Salario",
xlab = "Experiencia (años)", ylab = "Salario ($)")
abline(lm_fit, col = "blue")
nuevas_experiencias <- c(11, 12, 13, 14, 15)
nuevas_predicciones <- predict(lm_fit, newdata = data.frame(Experience = nuevas_experiencias))
nuevas_predicciones
## 1 2 3 4 5
## 145763.5 150742.0 155720.4 160698.8 165677.3
# Agregar las nuevas predicciones al conjunto de datos
nuevos_salarios <- c(datos$Salary, nuevas_predicciones)
nuevas_experiencias <- c(datos$Experience, nuevas_experiencias)
# Crear un nuevo data frame con los datos actualizados
nuevo_data <- data.frame(Experience = nuevas_experiencias, Salary = nuevos_salarios)
# Ajustar el nuevo modelo de regresión lineal
lm_fit_nuevo <- lm(Salary ~ Experience, data = nuevo_data)
# Mostrar los coeficientes del nuevo modelo
summary(lm_fit_nuevo)
##
## Call:
## lm(formula = Salary ~ Experience, data = nuevo_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -118904 -25980 4129 24064 74064
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 91000.63 1053.54 86.38 <2e-16 ***
## Experience 4978.44 94.13 52.89 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 33540 on 3017 degrees of freedom
## Multiple R-squared: 0.4811, Adjusted R-squared: 0.4809
## F-statistic: 2797 on 1 and 3017 DF, p-value: < 2.2e-16
Se observar que los coeficientes estimados para la variable “Experience” y para la “Intercept” no han cambiado entre la actividad 1 y la actividad 2, ya que se ha utilizado el modelo de regresión lineal ajustado con el conjunto de datos original para hacer predicciones sobre nuevos registros, pero los coeficientes estimados no han cambiado en comparación con el modelo original ajustado solo con los datos iniciales.
indice_punto <- 5 # Índice del punto a multiplicar por 100 (cambiar según el punto deseado)
nuevo_salary <- datos$Salary[indice_punto] * 100
nueva_experience <- datos$Experience[indice_punto]
# Multiplicar el salario por 100
nuevo_data$Salary[indice_punto] <- nuevo_salary
# Ajustar el nuevo modelo de regresión lineal después de modificar el punto
lm_fit_modificado <- lm(Salary ~ Experience, data = nuevo_data)
# Mostrar los coeficientes del modelo modificado
summary(lm_fit_modificado)
##
## Call:
## lm(formula = Salary ~ Experience, data = nuevo_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -160880 -31711 -2207 14505 19784419
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 82083 11371 7.219 6.61e-13 ***
## Experience 6675 1016 6.570 5.89e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 362000 on 3017 degrees of freedom
## Multiple R-squared: 0.01411, Adjusted R-squared: 0.01378
## F-statistic: 43.17 on 1 and 3017 DF, p-value: 5.892e-11
Se observa que el coeficiente estimado para la variable “Experience” ha cambiado de 4978.44 a 6675 después de multiplicar el salario por 100.
Esto significa que al modificar el valor del salario para un punto específico, se ha alterado la relación entre la experiencia y el salario en el modelo.