Periodismo de datos Octava sesión formativa Un estadístico escribe en el periódico Juan José Gibaja Martíns DBS - Universidad de Deusto @jjgibaja Madrid, 14 de diciembre de 2012 Homogeneidad Homogeneidad Homogeneidad Homogeneidad Mezcla Mezcla Homogeneidad Mezcla Índice 1) Algunos conceptos estadísticos 2) Varianza en colectivos pequeños 3) Data dredging 4) ¿Demasiado ajustado? 5) Tienes que relativizar Algunos conceptos estadísticos Varianza N 2 Perspectiva (histórica x −μ ) 2 σ = ∑ i =1 i N X Varianza N Perspectiva histórica 2 σ = 2 ∑ (x i −μX ) i =1 N Coeficiente de variación σ CV = μ histórica Perspectiva Covarianza N Perspectiva histórica ∑ ( xi − μ X )( yi − μ Y ) σ XY = i=1 N Covarianza Perspectiva histórica Correlación Perspectiva histórica σ XY ρ XY = σ xσ y Correlación Perspectiva histórica Varianza en colectivos pequeños Varianza en colectivos pequeños Hospital pequeño Hospital grande 15 nacimientos/día histórica 45 nacimientos/día Perspectiva P (niña)=0,5 ¿En cuál de los dos hospitales es más probable que en un día concreto el porcentaje de niñas supere el 60%? Varianza en colectivos pequeños Perspectiva histórica http://www.r-project.org/ Varianza en colectivos pequeños Perspectiva histórica replicates<-10000 P<-0.5 ninas.gr<-rbinom(replicates,45,P) ninas.peq<-rbinom(replicates,15,P) prop.ninas.gr<-ninas.gr/45 prop.ninas.peq<-ninas.peq/15 par(mfrow=c(1,2)) hist(prop.ninas.gr,xlim=range(0,1)) hist(prop.ninas.peq,xlim=range(0,1)) Varianza en colectivos pequeños Perspectiva histórica Varianza en colectivos pequeños P<-0.5 max<-5000 prob<-rep(NA,max-9) for(size in 10:max) { prob[size]<-rbinom(1,size,P)/size } plot(prob,type="n",xlab=”size”) abline(h=P,col=2) number.ll95 <- P - 1.96 * sqrt((P*(1-P)) / (number.seq)) number.ul95 <- P + 1.96 * sqrt((P*(1-P)) / (number.seq)) number.ll999 <- P - 3.29 * sqrt((P*(1-P)) / (number.seq)) number.ul999 <- P + 3.29 * sqrt((P*(1-P)) / (number.seq)) lines(number.seq,number.ll95) lines(number.seq,number.ul95) lines(number.seq,number.ll999,lty=2) lines(number.seq,number.ul999,lty=2) points(prob) Perspectiva histórica Varianza en colectivos pequeños Perspectiva histórica Varianza en colectivos pequeños Perspectiva histórica Varianza en colectivos pequeños Perspectiva histórica Varianza en colectivos pequeños Perspectiva histórica Varianza en colectivos pequeños Perspectiva histórica MORALEJA No debemos extrañarnos ante la existencia de colectivos atípicos si son de reducido tamaño. Data dredging ¿Data dredging? Hipótesis (nula) Perspectiva histórica p-valor (índice de compatibilidad) Evidencia empírica α umbral p−valor<α → Rechazar hipótesis ¿Data dredging? require(MASS) replicates<-10000 sample.size<-20 rho<-0 Sigma<-matrix(c(1,rho,rho,1),2,2) corr<-rep(NA,replicates) for(i in 1:replicates) { x<-mvrnorm(sample.size,c(0,0),Sigma) corr[i]<-cor(x)[1,2] } dev.new() hist(corr) Perspectiva histórica # Probabilidad de abs(correlacion) mayor que k k<-0.45 sum(abs(corr)>k)/replicates # Aproximación de Fisher 2*(1-pnorm(sqrt(sample.size-3)*(atanh(k)-atanh(rho)))) ¿Data dredging? Perspectiva histórica ¿Data dredging? Perspectiva histórica Cor-.= -0,36 ¿Data dredging? Perspectiva histórica ¿Data dredging? Perspectiva histórica > # Probabilidad de abs(correlacion) mayor que k > k<-0.45 > sum(abs(corr)>k)/replicates [1] 0.0482 > # Aproximación de Fisher > 2*(1-pnorm(sqrt(sample.size-3)*(atanh(k)-atanh(rho)))) [1] 0.0457 ¿Data dredging? Perspectiva histórica http://xkcd.com/882/ ¿Data dredging? MORALEJA Perspectiva histórica Si analizamos datos sin tener muy claro qué es lo que estamos buscando seguramente encontraremos “algo”, que muy probablemente, será puro ruido. ¿Demasiado ajustado? ¿Demasiado ajustado? En toda información hay Perspectiva histórica dos componentes: SEÑAL + RUIDO Señal y ruido ¿Demasiado ajustado? set.seed(123) puntos<-20 x <- seq(-5,5,length.out=puntos) y <- -(1/5)*x^2 z <- -(1/5)*x^2+0.5*rnorm(puntos) plot(x,z,asp=1) lines(x,y) lines(x,z,col=2) modelo<-lm(z~x+I(x^2)) summary(modelo) fmlax<-paste("I(x^",1:(puntos-1),")",sep="") fmla<-paste("z~",paste(fmlax, collapse="+"),sep="") modelo2<-lm(as.formula(fmla)) summary(modelo2) Perspectiva histórica ¿Demasiado ajustado? Perspectiva histórica ¿Demasiado ajustado? Perspectiva histórica ¿Demasiado ajustado? Perspectiva histórica ¿Demasiado ajustado? Modelo demasiado simple Perspectiva histórica Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -1.77129 0.41568 -4.261 0.00047 *** x -0.01524 0.13697 -0.111 0.91262 Residual standard error: 1.859 on 18 degrees of freedom Multiple R-squared: 0.0006875, Adjusted R-squared: -0.05483 F-statistic: 0.01238 on 1 and 18 DF, p-value: 0.9126 ¿Demasiado ajustado? Modelo adecuado Perspectiva histórica Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 0.13693 0.17064 0.802 0.433 x -0.01524 0.03741 -0.407 0.689 I(x^2) -0.20718 0.01383 -14.978 3.17e-11 *** --Residual standard error: 0.5077 on 17 degrees of freedom Multiple R-squared: 0.9296, Adjusted R-squared: 0.9213 F-statistic: 112.3 on 2 and 17 DF, p-value: 1.599e-10 ¿Demasiado ajustado? Modelo demasiado complejo Perspectiva histórica Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 2.356e-01 NA NA NA I(x^1) 1.898e+00 NA NA NA I(x^2) -7.959e-01 NA NA NA I(x^3) -4.841e+00 NA NA NA . . . . . . I(x^18) 2.830e-08 NA NA NA I(x^19) -1.112e-07 NA NA NA Residual standard error: NaN on 0 degrees of freedom Multiple R-squared: 1, Adjusted R-squared: F-statistic: NaN on 19 and 0 DF, p-value: NA NaN ¿Demasiado ajustado? Perspectiva histórica OVERFITTING Estamos prestando más atención al ruido del tren que a la melodía del violín ¿Demasiado ajustado? Perspectiva histórica ¿Demasiado ajustado? Perspectiva histórica ¿Demasiado ajustado? Perspectiva histórica ¿Demasiado ajustado? Perspectiva histórica MORALEJA Debemos prestar atención a la señal e ignorar el ruido. Debemos encontrar el equilibrio entre complejidad y ajuste Tienes que relativizar Tienes que relativizar Perspectiva histórica Tienes que relativizar Perspectiva histórica Tienes que relativizar Perspectiva histórica Tienes que relativizar Perspectiva histórica Tienes que relativizar # Modelo con datos absolutos datos<-read.csv(file="DatosDesempleoPib.csv",sep=";") attach(datos) plot(parados,pib) modelo<-lm(pib~parados) summary(modelo) abline(modelo) Perspectiva histórica # Modelo con datos relativos parados.r<-parados/pob.16 pib.r<-pib/pob.16 dev.new() plot(parados.r,pib.r) modelo.r<-lm(pib.r~parados.r) summary(modelo.r) abline(modelo.r) Tienes que relativizar Perspectiva histórica Tienes que relativizar Perspectiva histórica Tienes que relativizar MORALEJA Perspectiva histórica Cuidado con las noticias de tipo “Andalucía encabeza...” porque, probablemente, lo único que ocurre es que Andalucía es la C.A. más grande