Utilizando un archivo de texto data.csv que contiene información sobre el tiempo de duración de las sesiones de hemodiálisis (meses) y número de quistes en pacientes hospitalarios. ¿Existe alguna relación entre el tiempo y el número de quistes?
library("ggplot2")
datos = read.csv2(file = "data.csv")
tiempo = as.numeric(datos$Tiempo)
quistes = as.numeric(datos$Quistes)
mod = lm(quistes ~ tiempo, datos)
plot(tiempo, quistes)
title("Número de quistes y tiempo en hemodiálisis")
abline(mod)
Por lo tanto, el modelo que se ajusta a los datos es:
\[ y = mx + c \] \[ y = 1024*10^{-5}m + 4155*10^{-5}\]
Podemos obtener mas informacion del modelo construido:
summary(mod)
##
## Call:
## lm(formula = quistes ~ tiempo, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -25.8814 -3.4532 0.0344 2.6901 25.9934
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.41550 1.67406 0.248 0.805
## tiempo 0.10244 0.01323 7.742 7.11e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.026 on 46 degrees of freedom
## Multiple R-squared: 0.5658, Adjusted R-squared: 0.5564
## F-statistic: 59.95 on 1 and 46 DF, p-value: 7.107e-10
Uno de los datos importantes es el coeficiente de determinación
print(summary(mod)$r.squared)
## [1] 0.5658145
Si observamos los p-values, solo el del intercepto es mayor a 0,05. Entonces:
Se acepta la hipótesis Nula de que el intercepto no es representativo y vale 0.
Se rechaza la hipótesis Nula deel del intercepto es mayor a 0,05, pero el de tiempo es muy bajo. Por lo tanto: que la pendiente de la recta es 0
Considerando lo anterior, el modelo se puede reducir a:
\[ y = 1024*10^{-5}m + 0\] Finalmente, podemos generar una zona de confianza para ver que puntos estan representados por el modelo generado
confianza = confint(mod, level = 0.95)
print(confianza)
## 2.5 % 97.5 %
## (Intercept) -2.9541954 3.7852028
## tiempo 0.0758044 0.1290673
grafico = ggplot(datos,aes(x=tiempo, y=quistes, label= "")) +
geom_point(aes(tiempo,quistes),datos,color = "green")+
theme_bw() + ylab("Numero de quistes")+
xlab("Tiempo en hemodiálisis en meses") + ggtitle("Número de quistes y tiempo en hemodiálisis") +
theme(plot.title = element_text(hjust = 0.5)) +
geom_text(check_overlap = TRUE) +
geom_line(aes(tiempo,quistes),datos,color="blue",cex=0.1) +
geom_smooth(method ="lm", formula = y ~ x,level=0.95)
plot(grafico)
De lo anterior, podemos concluir que utilizando un nivel de confianza del 95% si existe una relación entre tiempo y el número de quistes. Si es directa o no va a depender bien del tiempo, ya que puede variar en algunos casos, pero generalmente tiende a ser directa. Sin embargo, el modelo propuesto no es el adecuado para todos los puntos de datos ya que el coeficiente de determinación no se acerca a 0,99, e incluso con zonas de confianza se puede observar que varios puntos quedan fuera de estas zonas.
df = data.frame(tiempo,quistes)
tiempo = c(4,5,8,9,10)
predict.lm(mod, data.frame(tiempo = tiempo))
## 1 2 3 4 5
## 0.8252472 0.9276830 1.2349906 1.3374264 1.4398623
quistes = c(0.8252472,0.9276830,1.2349906,1.3374264,1.4398623)
df2 = data.frame(tiempo = tiempo, quistes = quistes)
df3 = rbind(df,df2)
tiempo = df3$tiempo
quistes = df3$quistes
Ahora, volvemos a realizar toda la regresión lineal simple:
mod = lm(quistes ~ tiempo, df3)
plot(tiempo, quistes)
title("Número de quistes y tiempo en hemodiálisis")
abline(mod)
Por lo tanto, el modelo que se ajusta a los datos es:
\[ y = 1047*10^{-5}m + 3888*10^{-6}\]
Podemos obtener mas informacion del modelo construido:
summary(mod)
##
## Call:
## lm(formula = quistes ~ tiempo, data = df3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -25.881 -3.033 0.000 2.565 25.993
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.41550 1.41711 0.293 0.771
## tiempo 0.10244 0.01177 8.706 1.17e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.673 on 51 degrees of freedom
## Multiple R-squared: 0.5978, Adjusted R-squared: 0.5899
## F-statistic: 75.79 on 1 and 51 DF, p-value: 1.166e-11
Uno de los datos importantes es el coeficiente de determinación
print(summary(mod)$r.squared)
## [1] 0.5977625
Si observamos los p-values, solo el del intercepto es mayor a 0,05. Por lo tanto:
Se acepta la hipótesis Nula de que el intercepto no es representativo y vale 0.
Se rechaza la hipótesis Nula de que la pendiente de la recta es 0
Considerando lo anterior, el modelo se puede reducir a:
\[ y = 1047*10^{-5}m + 0\] Finalmente, podemos generar una zona de confianza para ver que puntos estan representados por el modelo generado
confianza = confint(mod, level = 0.95)
print(confianza)
## 2.5 % 97.5 %
## (Intercept) -2.42946338 3.2604708
## tiempo 0.07881381 0.1260579
grafico = ggplot(df3,aes(x=tiempo, y=quistes, label= "")) +
geom_point(aes(tiempo,quistes),df3,color = "green")+
theme_bw() + ylab("Numero de quistes")+
xlab("Tiempo en hemodiálisis en meses") + ggtitle("Número de quistes y tiempo en hemodiálisis") +
theme(plot.title = element_text(hjust = 0.5)) +
geom_text(check_overlap = TRUE) +
geom_line(aes(tiempo,quistes),df3,color="blue",cex=0.1) +
geom_smooth(method ="lm", formula = y ~ x,level=0.95)
plot(grafico)
De lo anterior, podemos concluir que utilizando un nivel de confianza del 95% todavia existe una relación entre tiempo y el número de quistes. Si es directa o no va a depender bien del tiempo, ya que puede variar en algunos casos, pero generalmente tiende a ser directa. Sin embargo, el modelo propuesto sigue siendo un modelo no adecuado para todos los puntos de datos ya que el coeficiente de determinación no se acerca a 0,99, e incluso con zonas de confianza se puede observar que varios puntos quedan fuera de estas zonas.
datos = read.csv2(file = "data.csv")
tiempo = as.numeric(datos$Tiempo)
quistes = as.numeric(datos$Quistes)
df = data.frame(tiempo, quistes)
df2 = data.frame(tiempo = 10*100, quistes = 0.8 * 100)
df = rbind(df, df2)
tiempo = df$tiempo
quistes = df$quistes
Ahora, volvemos a realizar toda la regresión lineal simple
mod = lm(quistes ~ tiempo, df)
plot(tiempo, quistes)
title("Número de quistes y tiempo en hemodiálisis")
abline(mod)
Por lo tanto, el modelo que se ajusta a los datos es:
\[ y = 2,18m + 0,084\]
Podemos obtener mas informacion del modelo construido:
summary(mod)
##
## Call:
## lm(formula = quistes ~ tiempo, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -21.415 -3.819 -1.126 2.163 29.067
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.179529 1.311174 1.662 0.103
## tiempo 0.083697 0.006902 12.127 4.45e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.154 on 47 degrees of freedom
## Multiple R-squared: 0.7578, Adjusted R-squared: 0.7527
## F-statistic: 147.1 on 1 and 47 DF, p-value: 4.453e-16
Uno de los datos importantes es el coeficiente de determinación
print(summary(mod)$r.squared)
## [1] 0.7578103
Si observamos los p-values, el del intercepto es mayor a 0,05, pero el de tiempo es muy bajo. Por lo tanto:
Se acepta la hipótesis Nula de que el intercepto no es representativo y vale 0.
Se rechaza la hipótesis Nula de que la pendiente de la recta es 0
Considerando lo anterior, el modelo se puede reducir a:
\[ y = 2,18m + 0\]
Finalmente, podemos generar una zona de confianza para ver que puntos estan representados por el modelo generado
confianza = confint(mod, level = 0.95)
print(confianza)
## 2.5 % 97.5 %
## (Intercept) -0.45821343 4.81727165
## tiempo 0.06981243 0.09758142
grafico = ggplot(df,aes(x=tiempo, y=quistes, label= "")) +
geom_point(aes(tiempo,quistes),df,color = "green")+
theme_bw() + ylab("Numero de quistes")+
xlab("Tiempo en hemodiálisis en meses") + ggtitle("Número de quistes y tiempo en hemodiálisis") +
theme(plot.title = element_text(hjust = 0.5)) +
geom_text(check_overlap = TRUE) +
geom_line(aes(tiempo,quistes),df,color="blue",cex=0.1) +
geom_smooth(method ="lm", formula = y ~ x,level=0.95)
plot(grafico)
De lo anterior, se concluye que utilizando un nivel de confianza del 95% todavia existe una relación entre tiempo y el número de quistes. Si es directa o no va a depender bien del tiempo, ya que puede variar en algunos casos, sin embargo tiende a ser directa. No obstante el modelo propuesto sigue siendo un modelo no adecuado para todos los puntos de datos, ya que el coeficiente de determinación no se acerca a 0,99, e incluso con zonas de confianza se puede observar que varios puntos quedan fuera de estas zonas.
A pesar de que hubo un cambio en uno de los datos, los coeficientes no cambiaron. Probablemente, si hubiera habido un cambio en todos los datos, entonces ahí si se hubiera podido observar un cambio en los coeficientes