JYVÄSKYLÄN YLIOPISTO Matematiikan ja tilastotieteen laitos Parametrittomat ja robustit menetelmät Harjoitukset 7, vastaukset 12.05.2009 Tehtävä 1 (a) x <- rnorm(20) y <- rnorm(20) cor.test(x,y,method="pearson") Pearson s product-moment correlation data: x and y t = 0.6158, df = 18, p-value = 0.5457 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: -0.3191605 0.5511350 cor 0.1436485 cor.test(x,y,method="spearman") Spearman s rank correlation rho data: x and y S = 1106, p-value = 0.4742 alternative hypothesis: true rho is not equal to 0 rho 0.1684211 cor.test(x,y,method="kendall") Kendall s rank correlation tau data: x and y T = 104, p-value = 0.5859 alternative hypothesis: true tau is not equal to 0 tau 0.09473684 Mikään korrelaatikertoimista ei ole tilastollisesti merkitsevä. 1
(b) xb <- x xb[1] <- 5 yb <- y yb[1] <- 5 cor.test(xb,yb,method="pearson") Pearson s product-moment correlation data: xb and yb t = 3.6164, df = 18, p-value = 0.001974 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.2892087 0.8478413 cor 0.6487074 cor.test(xb,yb,method="spearman") Spearman s rank correlation rho data: xb and yb S = 926, p-value = 0.1913 alternative hypothesis: true rho is not equal to 0 rho 0.3037594 cor.test(xb,yb,method="kendall") Kendall s rank correlation tau data: xb and yb T = 114, p-value = 0.2333 alternative hypothesis: true tau is not equal to 0 tau 0.2 Pearsonin korrelaatikerroin muuttuu merkitseväksi, muut eivät. Spearmanin ja Kendallin korrelaatikertoimet ovat siis robustimpia kuin Pearsonin korrelaatiokerroin. Tehtävä 2 #Data sisään vaurio <- read.table("http://users.jyu.fi/~junyblom/vaurio.dat",header=true) 2
vaurio koodi Andh Gujarat Kerala 1 A 0 1 0 2 B 8 1 8 3 C 0 1 0 4 D 0 1 0 5 E 0 1 0 6 F 0 1 0 7 G 0 1 0 8 H 1 0 1 9 I 1 0 1 #Apuvektoreita taulun muodostamiseen apu <- rep(c("andh","gujarat","kerala"),times=9) vauriopaikka <- rep(c("a","b","c","d","e","f","g","h","i"), + times=c(1,17,1,1,1,1,1,2,2)) vauriopaikka <- factor(vauriopaikka) #Havaitun taulun muodostaminen mhav <- as.matrix(vaurio[,2:4]) vhav <- as.vector(t(mhav)) yhav <- rep(apu,times=vhav) table(vauriopaikka,yhav) yhav vauriopaikka Andh Gujarat Kerala A 0 1 0 B 8 1 8 C 0 1 0 D 0 1 0 E 0 1 0 F 0 1 0 G 0 1 0 H 1 0 1 I 1 0 1 #Pearsonin Chi2-testisuure havaitulle taululle cs <- apply(mhav,2,sum) rs <- apply(mhav,1,sum) od <- outer(rs,cs,"*")/sum(mhav) Chi2hav <- sum((mhav-od)^2/od) Chi2hav [1] 22.09916 #LR-testisuure havaitulle taululle LRhav <- 2*sum(mhav*log((mhav+as.numeric(mhav==0))/od)) LRhav [1] 23.29674 #Permutaatiotestit osavaltiot <- rep(1:3,times=c(10,7,10)) vauriopaikat <- rep(1:9,times=c(1,17,1,1,1,1,1,2,2)) nsim <- 5000 #Haluttu permutaatioiden määrä 3
Chi2perm <- vector(length=nsim) LRperm <- vector(length=nsim) for (i in 1:nsim) { + + #Permutoidaan taulu + mperm <- matrix(c(0),nrow=9,ncol=3) + vauriopaikat_perm <- sample(vauriopaikat,length(vauriopaikat),replace=false) + for (j in 1:length(osavaltiot)) { + mperm[vauriopaikat_perm[j],osavaltiot[j]] <- + mperm[vauriopaikat_perm[j],osavaltiot[j]] + 1 + } + vperm <- as.vector(t(mperm)) + yperm <- rep(apu,times=vperm) + + #Lasketaan permutoidulle taululle Chi2- ja LR-testisuureet + csperm <- apply(mperm,2,sum) + rsperm <- apply(mperm,1,sum) + odperm <- outer(rsperm,csperm,"*")/sum(mperm) + Chi2perm[i] <- sum((mperm-odperm)^2/odperm) + LRperm[i] <- 2*sum(mperm*log((mperm+as.numeric(mperm==0))/odperm)) + + } #Lasketaan permutointien perusteella p-arvot #Chi2-testin p-arvo permutoimalla length(chi2perm[chi2perm Chi2hav])/nsim [1] 0.0276 #LR-testin p-arvo permutoimalla length(lrperm[lrperm LRhav])/nsim [1] 0.0364 #Approksimatiiviset p-arvot pchisq(chi2hav,df=(9-1)*(3-1),lower.tail=false) [1] 0.1400186 pchisq(lrhav,df=(9-1)*(3-1),lower.tail=false) [1] 0.1060292 Tehtävä 3 Pitää minimoida summa S(µ) = N x i µ. Tämä voidaan kirjoittaa myös muodossa S(µ) = N x (i) µ, missä x (i) tarkoittaa i. suurinta havaintoa. Oletetaan, että x (k) < µ < x (k+1). Tällöin saadaan 4
Tapaus 1: S(µ) = = N x (i) µ k ( ) N ( µ x(i) + x(i) µ ) = (2k N)µ + N on pariton. Tällöin mediaani on x ( N+1 2 ). i=k+1 N i=k+1 x (i) k x (i). Jos valittu väli on mediaanin vasemmalla puolella eli k + 1 N+1 niin 2k N 2 ( N+1 1 ) N = 1 < 0. Minimoitava funktio siis vähenee. 2 Jos valittu väli on mediaanin oikealla puolella eli k N+1, 2 niin 2k N 2 ( ) N+1 2 N = 1 0. Minimoitava funktio siis kasvaa. Tästä saadaan, että funktion minimi osuu juuri mediaaniin. Tapaus 2: ( x ( N 2 ), x ( N 2 +1) ). Kut- N on parillinen. Tällöin mediaani on mikä tahansa arvo välillä sutaan tätä mediaaniväliksi. Jos valittu väli on juuri mediaaniväli eli k = N 2, niin 2k N = 0. Minimoitava funktio pysyy siis vakiona. 2, Jos valittu väli on mediaanivälin vasemmalla puolella eli k + 1 N 2, niin 2k N 2 ( N 2 1) N = 2 < 0. Minimoitava funktio siis vähenee. Jos valittu väli on mediaanivlin oikealla puolella eli k N 2 + 1, niin 2k N 2 ( N 2 + 1) N = 2 0. Minimoitava funktio siis kasvaa. Saadaan, että funktion minimi saavutetaan jokaisessa pisteessä mediaanivälillä. Tehtävä 4 (a) Osoitetaan aluksi, että P(µ x (N k+1) ) = α: Koska B N Bin(N, 1), niin N B 2 N Bin(N, 1). 2 5
Edelleen α = P(x (k) µ) = P(B N k 1) = P(N B N N k + 1) = 1 P(N B N < N k + 1) = 1 P(N B N N k) = 1 P(x (N k+1) µ) = P(x (N k+1) µ) = P(µ x (N k+1) ) = P(µ x (N k+1) ) (kun oletetaan x : n jakauma jatkuvaksi). Nyt saadaan P(x (k) µ < x (N k+1) ) = 1 P(x (k) µ tai µ x (N k+1) ) = 1 [P(x (k) µ) + P(µ x (N k+1) )] = 1 [α + α] = 1 2α. (b) B N Bin(30, 1 2 ). Etsitään k siten, että P(B N k 1) 0.025. R:n funktiot qbinom ja pbinom auttavat: qbinom(0.025,size=30,prob=1/2) [1] 10 pbinom(10,size=30,prob=1/2) [1] 0.04936857 pbinom(9,size=30,prob=1/2) [1] 0.02138697 Saadaan, että k 1 = 9, joten k = 10. Tehtävä 5 Alakvartiilin luottamusväli: Olkoon q 1 populaation alakvartiili. Saadaan ( N ) P(x (a) q 1 ) = P I(x i q 1 ) a 1 = P(B N a 1), missä B N Bin(N, 1 4 ). Etsitään nyt sellainen a, että P(B N a 1) = α ja sellainen b, että P(B N b 1) = 1 α P(B N b) = α. Luottamustason 1 2α luottamusväli on tällöin (x (a), x (b) ). 6
Yläkvartiilin luottamusväli saadaan samaan tapaan: Olkoon q 3 populaation yläkvartiili. Saadaan ( N ) P(x (c) q 3 ) = P I(x i q 3 ) c 1 = P(B N c 1), missä B N Bin(N, 3 4 ). Etsitään nyt sellainen c, että P(B N c 1) = α ja sellainen d, että P(B N d) = α. Luottamustason 1 2α luottamusväli on tällöin (x (c), x (d) ). Tehtävä 6 library(quantreg) library(robustbase) fuel1974 <- read.table("http://users.jyu.fi/~junyblom/fuel1974.dat", header=true) attach(fuel1974) (a) lm(fuel ~ tax + inc + dlic + road) Call: lm(formula = fuel ~ tax + inc + dlic + road) (Intercept) tax inc dlic road 377.291-34.790-66.589 13.364-2.426 (b) rq(fuel ~ tax + inc + dlic + road) Call: rq(formula = fuel ~ tax + inc + dlic + road) (Intercept) tax inc dlic road 510.1156793-28.3491909-71.8263256 10.1430044-0.6706942 Degrees of freedom: 48 total; 43 residual (c) ltsreg(fuel ~ tax + inc + dlic + road, alpha=0.5) 7
Call: ltsreg.formula(formula = fuel ~ tax + inc + dlic + road, alpha = 0.5) Intercept tax inc dlic road 453.170-15.668-77.073 9.514 2.005 Scale estimate 52.22 ltsreg(fuel ~ tax + inc + dlic + road, alpha=0.6) Call: ltsreg.formula(formula = fuel ~ tax + inc + dlic + road, alpha = 0.6) Intercept tax inc dlic road 391.019-11.430-74.130 9.677 2.956 Scale estimate 51.39 ltsreg(fuel ~ tax + inc + dlic + road, alpha=0.7) Call: ltsreg.formula(formula = fuel ~ tax + inc + dlic + road, alpha = 0.7) Intercept tax inc dlic road 391.019-11.430-74.130 9.677 2.956 Scale estimate 51.71 8