Diseño experimental 2137 Juan C. Benavides Ejemplos Regresión Diseño experimental 2137 Juan C. Benavides Tomado en parte de: http://webspace.ship.edu/pgmarr/Geo441/Lectures/
Ques es regresión? Es una técnica estadistica para predecir el valor mas probable de una variable con respecto a otra variable ”independiente” Usa la naturaleza de la relación lineal (correlación-covarianza) entre variables Contesta dos preguntas basicas: Cual es la relación entre las variables? Con que certeza podemos predecir una variable? Hubbel Expanding universe
The statistical Sleuth Practical Regression and Anova using R Linear Models with R regression towards mediocrity Galton 1875 https://cran.r-project.org/doc/contrib/Faraway-PRA.pdf http://www.utstat.toronto.edu/~brunner/books/LinearModelsWithR.pdf
Que es regresión? Tecnica que trata de explicar la “VARIACIÓN” en una variable dependiente usando variable(s) independientes #R a<-sort(rnorm(50)) unif1<-seq(1,50)+rnorm(50) x<-seq(-25,24) fun1<-(x+rnorm(50))^2 fun2<-(x+abs(x+rnorm(50)))^2 fun3<-sort(unif1^2) par(mfrow=c(2,2)) plot(x,unif1) plot(x,-unif1) plot(x,(x+rnorm(50))^2) plot(x,fun3)
par(mfrow=c(2,2)) plot(x,unif1);abline(lm(unif1~x),lwd=3,col="red") plot(x,-unif1); abline(lm((-unif1)~x),lwd=3,col="red") scatter.smooth(fun1~ x,lpars = list(col = "red", lwd = 3)) scatter.smooth(fun3~ x,lpars = list(col = "red", lwd = 3))
Que es regresión linear? Tecnica que trata de explicar la “VARIACIÓN” en una variable dependiente usando UNA variable independiente Regresión tiene implicito causa y efecto entre variables Las variables deben ser continuas (o no?) Dependent variable Independent variable (x)
Que es regresión linear? Si la variable independiente tiene un poder de explicación suficiente el modelo puede ser usado para predicción La regresión simple ajusta una linea recta a las variables Dependent variable Independent variable (x)
Que es regresión linear? La recta resultado de la regresión tiene dos coeficientes Intercepto Pendiente Independent variable (x) Dependent variable (y) y’ = b0 + b1X ± є b0 (y intercept) B1 = slope = ∆y/ ∆x є
Que es regresión linear? pendiente Tasa de cambio Cambio en unidades de la variable dependiente con respecto a la independiente Independent variable (x) Dependent variable (y) y’ = b0 + b1X ± є b0 (y intercept) B1 = slope = ∆y/ ∆x є
Que es regresión linear? intercepto Valor de la variable dependiente cuando la independiente es 0 (x=0) Independent variable (x) Dependent variable (y) y’ = b0 + b1X ± є b0 (y intercept) B1 = slope = ∆y/ ∆x є
Que es regresión linear? La recta resultado de la regresión tiene dos coeficientes Intercepto Pendiente unif1<-seq(1,50)+rnorm(50) x<-seq(-25,24) plot(x,unif1) reg1<-lm(unif1~x) coef(reg1) abline(coef(reg1)) predict(reg1)
Predicción en regresión Independent variable (x) Dependent variable Zero Prediction: y Observation: y ^ predict(reg1) El valor de la variable se marca con y El valor predicho se denota como y ^
Predicción en regresión Prediction error: ε Observation: y ^ Prediction: y Zero La variación para cada observación puede ser descrita como: y = y + ε valor= explicado + Error ^
La recta de regresión Dependent variable Independent variable (x) La recta es construida usando una tecnica estadistica conocida como minimos cuadrados Se selecciona la recta con la minima desviación de los errores de predicción Suma de cuadrados del error SSE
La recta de regresión Population mean: y Dependent variable Independent variable (x) Primero se calcula la SUMA de Cuadrados de la Regresion SSR Desviación de cada valor con respecto a la media ^ SSR = ∑ ( y – y )2 (Variación explicada) SSE = ∑ ( y – y ) 2 (Variación no explicada) SST = SSR + SSE = ∑ ( y – y ) 2 (Variación total en y) ^
Ajuste de la recta de regresión Population mean: y Dependent variable Independent variable (x) Coeficiente de determinación R2 es la proporción de la variación total SST explicada por la regresión SSR R2 varia entre 0 y 1 Determina (en porcentaje) que tan precisa es la regresión 𝑅 2 = 𝑆𝑆𝑅 𝑆𝑆𝑇 = 𝑆𝑆𝑅 𝑆𝑆𝑅+𝑆𝑆𝐸
Variabilidad de la recta de regresión x <- rnorm(20) df <- data.frame(x = x, y = x + rnorm(20)) plot(y ~ x, data = df)# model mod <- lm(y ~ x, data = df)# predicts + interval newx <-seq(min(df$x),max(df$x), length.out=100) preds <- predict(mod, newdata = data.frame(x=newx), interval = 'confidence') # plot plot(y ~ x, data = df, type = 'n') # add fill polygon(c(rev(newx), newx), c(rev(preds[ ,3]), preds[ ,2]), col = 'grey80', border = NA)# model abline(mod) # intervals lines(newx, preds[ ,3], col ='red') lines(newx, preds[ ,2], col ='red') Error estandard ES (SE) mide el grado de variabilidad de la regresión Util para determinar intervalos de confianza de la predicción K es el número de variables independientes en el modelo (1) 𝑆𝐸= 𝑆𝑆𝐸 𝑛−𝑘
Ecuación de la recta de regresión Independent variable (x) Dependent variable (y) y’ = b0 + b1X ± є b0 (y intercept) B1 = slope = ∆y/ ∆x є y = A + β * x + ε y= valor medido de la variable dependiente x= valor medido de la variable independiente β= relación de cambio entre x & y A= intercepto (valor que toma y cuando x=0) ε= variación de los residuos (error)
Regresión múltiple y= valor medido de la variable dependiente Independent variable (x) Dependent variable (y) y’ = b0 + b1X ± є b0 (y intercept) B1 = slope = ∆y/ ∆x є y = A + β1X1+β2X2+ … + βkXk + ε y= valor medido de la variable dependiente xi= valor medido de la variable independiente i βi= relación de cambio entre xi & y A= intercepto (valor que toma y cuando x=0) ε= variación de los residuos (error)
Regresión no linear y = A + β log(X) Relaciones no lineares pueden ser ajustadas como regresiones lineares usando transformaciones
Regresión = el valor predicho de la variable X = el valor de la variable independiente a = el valor de la variable cuando x=0 (intercepto) b = la tasa de cambio de la variable x con respecto a y (pendiente)
Regresión-coeficientes Valores a y b a = el valor de la variable cuando x=0 (intercepto) b = la tasa de cambio de la variable x con respecto a y (pendiente)
Asunciones en regresión Hay una subpoblación de respuestas distribuidas normalmente para cada valor de la variable explicativa. Los promedios de las subpoblaciones caen en una función de línea recta de la variable explicativa. Las desviaciones estándar de la subpoblación son todas iguales (σ). La selección de una observación de cualquiera de las subpoblaciones es independiente de la selección de cualquier otra observación.
Intervalos de confianza Se requiere que el pH se reduzca hasta 6 para poder ser procesado el material El 95% estará en ese pH entre 2.9 y 5.1 horas
Interpolación y extrapolación Inferencias a partir de la recta de regresión Si cae dentro del intervalo medido es interpolación, si cae por fuera es extrapolación https://images.tutorvista.com/cms/images/113/extrapolation-points.png
Valores ajustados (fitted) y residuos Valores ajustados (estimados o fitted) son aquellos que son calculados sobre la línea de regresión (interpolación) Residuos son las distancias verticales entre los valores originales y los valores ajustados
Valores ajustados (fitted) y residuos Valores ajustados (estimados o fitted) son aquellos que son calculados sobre la línea de regresión (interpolación) Residuos son las distancias verticales entre los valores originales y los valores ajustados El sombrerito ^ indica que son parámetros estimados
Estimadores de los parámetros usando mínimos cuadrados Pendiente 𝛽= 𝑐𝑜𝑣(𝑥,𝑦) 𝑣𝑎𝑟(𝑥) = ( 𝑥 𝑖 − 𝑥 )( 𝑦 𝑖 − 𝑦 ) ( 𝑋 𝑖 − 𝑥 ) 2 Intercepto 𝑦 =a+b 𝑥 a= 𝑦 -b 𝑥 Si: Entonces: Coeficiente de determinación 𝑅 2 = 𝑐𝑜𝑣(𝑥,𝑦) 2 𝑣𝑎𝑟 𝑥 ∗𝑣𝑎𝑟(𝑦)
Sumas de cuadrados en regresión unif1<-seq(1,50)+rnorm(50) x<-seq(-25,24)plot(x,unif1) meanx<-mean(x); meanunif<-mean(unif1) reg1<-lm(unif1~x);summary(reg1) covxy<-cov(x,unif1) varx<-var(x); vary<-var(unif1) slope<-covxy/varx intercept<-meanunif-slope*meanx r2<- covxy^2/(varx*vary) abline(intercept,slope,col="blue",lwd=8) abline(coef(reg1),col="red")
Distribución de los parámetros-pendiente Regla para los grados de libertad DF residuos = Número de observaciones- Número de parámetros en el modelo de las medias
Distribución de los parámetros-intercepto Regla para los grados de libertad DF residuos = Número de observaciones- Número de parámetros en el modelo de las medias
Sumas de cuadrados en regresión Suma de cuadrados totales 𝑆𝑆𝑇= ( 𝑋 𝑖 − 𝑥 ) 2 Varianza 𝑣𝑎𝑟(𝑥)= ( 𝑋 𝑖 − 𝑥 ) 2 𝑛−1 covarianza 𝑐𝑜𝑣𝑎𝑟(𝑥)= ( 𝑥 𝑖 − 𝑥 )( 𝑦 𝑖 − 𝑦 ) 𝑛−1 Pendiente 𝛽= 𝑐𝑜𝑣(𝑥,𝑦) 𝑣𝑎𝑟(𝑥) = ( 𝑥 𝑖 − 𝑥 )( 𝑦 𝑖 − 𝑦 ) ( 𝑋 𝑖 − 𝑥 ) 2
Intervalos de confianza e intervalos de predicción
Intervalos de confianza e intervalos de predicción Intervalo de confianza de la regresión Intervalo de confianza de la regresión en predicción
Pruebas de hipotesis en regresión Hay un efecto de la pendiente Es la velocidad de las estrellas mayor mientras mas alejada estén? Existe una relación con la distancia? Pendiente diferente de 0 (cero) Hay un intercepto ? Cual es la edad del universo acorde a la tasa de expansión?
Pruebas de hipotesis en regresión Parametros Pendiente Valor pendiente= 𝜷 Desviación de la pendiente = 𝜎 𝛽 𝜎 𝛽 = 𝑆 𝑆 𝑥𝑥 = ( 𝑦 𝑖 − 𝑦 𝑖 ) 2 𝑛−2 ( 𝑥 𝑖 − 𝑥 𝑖 ) 2 Diferencia entre cada valor y su valor predicho Dividido por la variación en x
Pruebas de hipotesis en regresión De dos lados Ho: 𝜷1=0 Ha: 𝜷1≠0 Valor t Regla de decisión Pendiente recta de regresión mayor o menor a 0 𝑡 𝑜𝑏𝑠 = 𝐵 1 𝜎 𝐵1 𝑡 𝑜𝑏𝑠 ≥ 𝑡 𝛼 2 ,𝑛−2
Pruebas de hipotesis en regresión De dos lados Ho: 𝜷1=0 Ha: 𝜷1≠0 Valor t Regla de decisión Pendiente recta de regresión mayor o menor a 0 unif1<-seq(1,50)+rnorm(50) x<-seq(-25,24) plot(x,unif1) reg1<-lm(unif1~x) coef(reg1) abline(coef(reg1)) predict(reg1) 𝑡 𝑜𝑏𝑠 = 𝐵 1 𝜎 𝐵1 𝑡 𝑜𝑏𝑠 ≥ 𝑡 𝛼 2 ,𝑛−2 val1<-sum((unif1-predict(reg1))^2) val2<-sum((x-mean(x))^2) n=length(x) sd_reg<-sqrt(1/(n-2))* (sqrt(val1)/sqrt(val2)) summary(reg1)
Diagnosticos de la regresion múltiple Residuos Distribución homogenea require(datasets) data(stackloss) plot(stackloss$Air.Flow,stackloss$stack.loss) g <- lm(stack.loss ~ Air.Flow,data=stackloss) plot(g$res,ylab="Residuals",main="Index plot of residuals") #mayores o menores residuos sort(g$res)
Residuos
Residuos
Residuos g <- lm(stack.loss ~ Air.Flow,data=stackloss) plot(g$fit,g$res,xlab="Fitted",ylab="Residuals") abline(h=0,col="red") plot(g$fit,abs(g$res),xlab="Fitted",ylab="|Residuals|") Residuos Valores absolutos de residuos
Residuos Crear distribuciones de residuos con cierta estructura par(mfrow=c(3,3)) for(i in 1:9) plot(1:50,rnorm(50)) for(i in 1:9) plot(1:50,(1:50)*rnorm(50)) for(i in 1:9) plot(1:50,sqrt((1:50))*rnorm(50)) for(i in 1:9) plot(1:50,cos((1:50)*pi/15)+rnorm(50)) par(mfrow=c(1,1))
Residuos y varianza Dataset de las islas Galapagos: 30 islas, numero de especies de plantas y ortas variables Dos modelos uno con los datos originales, el otro transformado con la raíz cuadrada library(Faraway) gg <- lm(Species ~ Area + Elevation + Scruz + Nearest + Adjacent, data=gala) plot(gg$fit,gg$res,xlab="Fitted",ylab="Residuals", main="Untransformed Response") gs <- lm(sqrt(Species) ~ Area+ Elevation+ Scruz+ Nearest+ Adjacent, gala) plot(gs$fit,gs$res,xlab="Fitted",ylab="Residuals", main="Square root Response")
Residuos y varianza Dataset de las islas Galapagos: 30 islas, numero de especies de plantas y ortas variables gg <- lm(Species ~ Area + Elevation + Scruz + Nearest + Adjacent, data=gala) plot(gg$fit,gg$res,xlab="Fitted",ylab="Residuals", main="Untransformed Response") gs <- lm(sqrt(Species) ~ Area+ Elevation+ Scruz+ Nearest+ Adjacent, gala) plot(gs$fit,gs$res,xlab="Fitted",ylab="Residuals", main="Square root Response")
Diagnosticos de la regresion Influencia (leverage) Que tanto el valor afecta la pendiente x <- model.matrix(g) lev <- hat(x) plot(lev,ylab="Leverages",main="Index plot of Leverages") abline(h=2*5/50,col="red") #2p /n regla de decisión #valores por encima de ese valor tienen influencia alta #p numero de coeficientes #n numero de datos
Outliers Valores que no tienen otros valores cerca a ellos En ocasiones se pueden ocultar
Outliers Valores que no tienen otros valores cerca a ellos En ocasiones se pueden ocultar jack <- rstudent(g) plot(jack,ylab="Jacknife Residuals",main="Jacknife Residuals") jack[abs(jack)==max(abs(jack))]
Outliers Valores que no tienen otros valores cerca a ellos En ocasiones se pueden ocultar Un outlier en un modelo puede no serlo en otro 3D-4D-5D Los outliers pueden ser el producto de una distribución no normal Tiene un efecto mayor en data sets pequeños
Que hacer con los outliers Primero revisar que no sea un error de digitación o instrumental Examinar el contexto fisico (espacio y tiempo) Clima, condiciones Comparar el modelo con y sin los outliers url <- "http://rstatistics.net/wp-content/uploads/2015/09/ozone.csv" inputData <- read.csv(url) # import data outlier_values <- boxplot.stats(inputData$pressure_height)$out # outlier values boxplot(inputData$pressure_height, main="Pressure Height", boxwex=0.1) mtext(paste("Outliers: ", paste(outlier_values, collapse=", ")), cex=0.6) El descubrimiento del agujero de ozono en la antartica
Que hacer con los outliers Distancia de Cook (Cook’s distance) Revisar si es mayor que 1 El descubrimiento del agujero de ozono en la antartica
Ejemplo http://www.science.oregonstate.edu/~schaferd/Sleuth/files/sleuth3csv.zip
Ejemplo – fluidos (tiempo en el cual no es capaz de transmitir corriente) setwd() volt<-read.csv("case0802.csv",header=TRUE) plot(volt$Voltage,volt$Time,xlab="Voltage", ylab="Time (min)")
Ejemplo plot(volt$Voltage,log(volt$Time),xlab="Voltage", ylab="log Time (min)",col=volt$Group) ga <- lm(log(Time) ~Voltage, data=volt) abline(ga)
Ejemplo summary(ga) coef(ga)
Anova y regresion Es el modelo de ANOVA significativo El modelo (todo) explica algo de la varianza? Les recuerda de ANOVA Prueba F??
Anova y regresion Total=Modelo+Error Partición de la varianza entre varianza explicada y no explicada por el modelo Principio de ANOVA Sumas de cuadrados Total (Syy) dfTotal = n-1 Error (SSE) dfError = n-2 Model (SSR) dfModel = 1 𝑆 𝑦𝑦 = ( 𝑦 𝑖 − 𝑦 ) 2 𝑆𝑆𝐸= ( 𝑦 𝑖 − 𝑦 𝑖 ) 2 𝑆 𝑚𝑜𝑑𝑒𝑙𝑜 = ( 𝑦 − 𝑦 𝑖 ) 2 Total=Modelo+Error
Anova y regresion Usando nuestro ejemplo del día 𝑆 𝑦𝑦 = ( 𝑦 𝑖 − 𝑦 ) 2 #anova en regresion syy<-sum((unif1-mean(unif1))^2) sse<-sum((unif1-predict(reg1))^2) smodelo<-sum((mean(unif1)-predict(reg1))^2) df_total<- n-1 #syy df_sse<- n-2 df_modelo<- 1 m_sse<-sse/df_sse m_smodelo<-smodelo/df_modelo #valor f y probabilidad anova(reg1) f_reg1<- m_smodelo/m_sse 1-pf(f_reg1,df1=1,df2=df_sse) 𝑆 𝑦𝑦 = ( 𝑦 𝑖 − 𝑦 ) 2 𝑆𝑆𝐸= ( 𝑦 𝑖 − 𝑦 𝑖 ) 2 𝑆 𝑚𝑜𝑑𝑒𝑙𝑜 = ( 𝑦 − 𝑦 𝑖 ) 2 Si F1,48>5.35 se rechaza Ho qf(0.975,df1=1,df2=48)
Anova en regresion Anova en regresión compara la variabilidad el modelo de regresión contra un modelo que es solo la media (error?)
Anova en regresion Total=Modelo+Error
Pero anova = regresion “…an ANOVA reports each mean and a p-value that says at least two are significantly different. A regression reports only one mean(as an intercept), and the differences between that one and all other means, but the p-values evaluate those specific comparisons. It’s all the same model, the same information, but presented in different ways. Understand what the model tells you in each way, and you are empowered.” http://www.theanalysisfactor.com/why-anova-and-linear-regression-are-the-same-analysis/
anova = regresion “The models differ in their basic aim ANOVA is mostly concerned to present differences between categories' means in the data Linear regression is mostly concern to estimate a sample mean response and an associated σ2.” http://stats.stackexchange.com/questions/34616/difference-between-regression-analysis-and-analysis-of-variance
Anova de una vía o regresión Cuando los datos están arreglados en grupos (ejemplo actual) los análisis se pueden realizar con una Anova de una vía o en regresión Si la regresión es significativa se usa regresión Menos grados de libertad en la SSreg Mas grados de libertad en el error Interpolación
Anova de una vía o regresión Lack of fit-prueba de ajuste en regresión Prueba F modificada para determinar si es adecuado la regresión
Lack of fit-prueba de ajuste de la regresión Anova
Lack of fit-prueba de ajuste de la regresión Promedio constante Regresión Anova
Lack of fit-prueba de ajuste de la regresión
Taller 6 Datos en https://goo.gl/FdjNPz Dos archivos areavsdiversity.csv fragmetantion.csv El taller consiste en realizar una regresión simple con interpretación de asunciones, coeficientes (pruebas t), R2, Anova (prueba F) En el segundo ejercicio realizar una análisis de Lack of Fit para determinar si es mejor la regresión o la Anova
possibility of alternative conflicting models and seek them out”. “Sometimes the data speak with a clear and unanimous voice —the conclusions are incontestable. Other times, differing conclusions may be drawn depending on the model chosen. We should acknowledge the possibility of alternative conflicting models and seek them out”. Faraway 2002