Inleiding Multivariate Statistiek Assignment 2 Exercise 1 Voor verduidelijking van de assen: CONFIDENCE REGION 95% 99% AXIS 1 (0.269, 1.95) (0.375, 2.71) AXIS 2 (-1.02, 0.141) (-1.42, 0.196) Exercise 2 1. Quantile-quantile plots voor de 5 variabelen (R-code in Appendix): Lambexp: Er valt te zien dat in de ‘lambexp’ quantile-quantile plot de lijn relatief recht is. Aan de uiteinden van de lijn zien we dat de lijn iets minder recht is en dat er een beetje een afwijking is, maar dit valt te wijden aan het feit dat er daar minder observaties zijn. Er is geen reden om te denken dat de variabele niet normaal verdeeld is, en dus is de aanname dat ‘lambexp’ normaal verdeeld is een goede aanname. Ambexp: Er valt te zien dat in de ‘ambexp’ quantile-quantile plot de lijn niet recht is. Aan het einde van de plot stijgt de lijn opeens erg snel (lijkt wel exponentieel). Hij wijkt hier heel erg af van een rechte lijn. Hierdoor is het geen goede aanname dat de ‘ambexp’ variabele normaal verdeeld is. Income: Er valt te zien dat in de ‘income’ quantile-quantile plot de lijn niet recht is. Er zit in de lijn een soort knik waardoor het totaal niet recht is. Ook wijken er aan de uiteinden een paar punten wel heel erg af van de trend, iets wat bij een normale verdeling nooit zo erg gebeurd. Hierdoor is het geen goede aanname dat de ‘income’ variabele normaal verdeeld is. Age: Er valt te zien dat in de ‘age’ quantile-quantile plot de lijn niet recht is. De lijn begint langzaam met stijgen, stijgt in het midden snel en aan het einde neemt de stijging weer af. Ook valt er te zien dat de lijn telkens in stappen verloopt, en dus niet vloeiend. Hierdoor is het geen goede aanname dat de ‘age’ normaal verdeeld is. Educ: Er valt te zien dat in de ‘educ’ quantile-quantile plot de lijn niet recht is. De lijnt verloopt in grote stappen en is totaal niet vloeiend, daarnaast stijgt hij op het begin langzaam, dan steeds sneller en op het eind weer heel langzaam. Hierdoor is het geen goede aanname dat de ‘educ’ normaal verdeeld is. Joint multivariate: In bovenstaande twee afbeeldingen zijn de quantile-quantile plots van de ‘Mahalanobis distance’ te zien van de data en van een sample van een Chi-kwadraat verdeling. In de plot over de ‘Mahalanobis distance’ is te zien dat de lijn initieel recht verloopt, maar dat op het einde er vijf punten zijn die wel heel erg afwijken van de lijn. In de plot van de Chi-kwadraat verdeling verloopt de lijn ook mooi recht, waarbij op het einde er een kleine afwijking is omdat daar minder observaties zijn. Onder de normale assumptie zou de lijn in de bovenste plot ongeveer dezelfde vorm moeten hebben als de lijn in de onderste plot. Er valt een argument te geven dat beide lijnen recht verlopen, en dus dat de sample multivariaat normaal verdeeld is. Echter wijkt de laatste punt van de data heel erg af van de lijn, terwijl dit bij de Chi-kwadraat verdeling veel minder is. Omdat die afwijking zo super groot is, zal de assumptie over de multivariate normale verdeling wellicht dus niet correct zijn, ondanks dat de lijn relatief recht verloopt. 2. Voor de simultaneously valid confidence intervals zal de variabele ‘lambexp’ gebruikt moeten worden. Aan de qauntile-quantile plots van vraag 1 valt te zien dat de lijn van lambexp bijna helemaal recht verloopt, terwijl de lijn van ambexp op het einde afbuigt. Dit laat zien dat lambexp (ongeveer) een normale verdeling heeft, terwijl ambexp door de grote afwijking hoogstwaarschijnlijk geen normale verdeling heeft. De simultaneously valid confidence intervals zijn precies als de variabele normaal verdeelt zijn en maar een schatting als ze niet normaal verdeelt zijn. Hierdoor is het beter om lambexp te gebruiken voor de intervals dan ambexp. 3. Voor deze opgave wordt ervan uitgegaan dat alpha = 0.05, oftewel we berekenen de 95% simultaneously valid confidence intervals. Als resultaat van vraag 2 wordt de variabele lambexp niet gebruikt (dus p = 4). In deze opgave is de R-code uit de Appendix gebruikt. Met de theorie en de aanname dat de variabelen normaal/multivariaat normaal verdeelt zijn volgt: SIMULTANEOUSLY VALID CONFIDENCE INTERVALS EDUC AGE INCOME LAMBEXP ⃗ 𝒕 𝑿, 𝒂 ⃗ 𝒕 = [1,1,1,0,1] en X is de 𝒂 dataset (inclusief ambexp). LOWERBOUND UPPERBOUND 13.432 40.596 36.190 6.473 97.26 13.724 41.898 39.361 6.637 101.04 Echter uit vraag 1 blijkt dat de variabelen niet multivariaat normaal verdeelt zijn. Hierdoor is het wellicht beter om de Bonferroni Correction uit te voeren: INTERVALS WITH BONFERRONI CORRECTION EDUC AGE INCOME LAMBEXP LOWERBOUND UPPERBOUND 13.459 40.720 36.490 6.488 13.696 41.774 39.060 6.622 Naast dat de variabelen niet multivariaat normaal verdeelt zijn, zijn ze ook niet allemaal individueel normaal verdeelt. Hierom is het misschien de beste schatting om de asymptotic approximation te gebruiken. Omdat de sample groot is (n = 2802) zal dit een vrij precieze schatting opleveren (voor variabele lambexp werd in vraag 1 geconstateerd dat hij wel normaal verdeeld is, dus deze schatting zal voor deze variabele minder waardevol zijn): INTERVALS WITH ASYMPTOTIC APPROXIMATION EDUC AGE INCOME LAMBEXP LOWERBOUND UPPERBOUND 13.432 40.597 36.192 6.473 13.724 41.897 39.359 6.637 Appendix Code: data = read.table(file.choose(), header = T) educ = data$educ age = data$age income = data$income ambexp = data$ambexp lambexp = data$lambexp dataMatrix = cbind(educ,age,income,ambexp,lambexp) qqnorm(educ, main = "educ Plot") # Q-Q plotting the variable educ qqnorm(age, main = "age Plot") # Q-Q plotting the variable age qqnorm(income, main = " Plot") # Q-Q plotting the variable income qqnorm(ambexp, main = "ambexp Plot") # Q-Q plotting the variable ambexp qqnorm(lambexp, main = "lambexp Plot") # Q-Q plotting the variable lambexp CovMat = var(data) # covariance matrix of the data xBar = colMeans(data) # mean of the data n = 2802 p=5 d2x = rep(0,n) # vector of squared distances for(i in 1:n) # filling a vector of squared distances in a loop { d2x[i] = t(dataMatrix[i,] - (xBar))%*%solve(cov(dataMatrix))%*%(dataMatrix[i,] - (xBar)) } qqplot(qchisq(ppoints(n), df = 5), d2x, main = "QQ-plot from mahalanobis distance from data") # creating the Q-Q plots for data qqplot(qchisq(ppoints(n), df = 5), rchisq(n,5), main = "QQ-plot from chi-square distribution") # creating the Q/Qplots for chi-square distribution alpha = 0.05 # In this case alpha is considered 5% a = rep(1,p) a[4] = 0 p = 4 # assuming that variable ambexp is excluded # computing the simultaneously valid confidence intervals without Bonferroni correction LBAll = a%*%xBar - sqrt(t(a)%*%CovMat%*%(a) / n) * sqrt((n-1) * p / (n-p) * qf(1 - alpha, df1 = p, df2 = n - p)) UBAll = a%*%xBar + sqrt(t(a)%*%CovMat%*%(a) / n) * sqrt((n-1) * p / (n-p) * qf(1 - alpha, df1 = p, df2 = n - p)) LB_educ = mean(educ) - sqrt(var(educ) / n) * sqrt((n-1) * p / (n-p) * qf(1 - alpha, df1 = p, df2 = n - p)) UB_educ = mean(educ) + sqrt(var(educ) / n) * sqrt((n-1) * p / (n-p) * qf(1 - alpha, df1 = p, df2 = n - p)) LB_age = mean(age) - sqrt(var(age) / n) * sqrt((n-1) * p / (n-p) * qf(1 - alpha, df1 = p, df2 = n - p)) UB_age = mean(age) + sqrt(var(age) / n) * sqrt((n-1) * p / (n-p) * qf(1 - alpha, df1 = p, df2 = n - p)) LB_income = mean(income) - sqrt(var(income) / n) * sqrt((n-1) * p / (n-p) * qf(1 - alpha, df1 = p, df2 = n - p)) UB_income = mean(income) + sqrt(var(income) / n) * sqrt((n-1) * p / (n-p) * qf(1 - alpha, df1 = p, df2 = n - p)) LB_lambexp = mean(lambexp) - sqrt(var(lambexp) / n) * sqrt((n-1) * p / (n-p) * qf(1 - alpha, df1 = p, df2 = n - p)) UB_lambexp = mean(lambexp) + sqrt(var(lambexp) / n) * sqrt((n-1) * p / (n-p) * qf(1 - alpha, df1 = p, df2 = n - p)) # computing the simultaneously valid confidence intervals with Bonferroni correction LB_educ = mean(educ) - sqrt(var(educ) / n) * qt(alpha / (2*p), df = n-1, lower.tail = F) UB_educ = mean(educ) + sqrt(var(educ) / n) * qt(alpha / (2*p), df = n-1, lower.tail = F) LB_age = mean(age) - sqrt(var(age) / n) * qt(alpha / (2*p), df = n-1, lower.tail = F) UB_age = mean(age) + sqrt(var(age) / n) * qt(alpha / (2*p), df = n-1, lower.tail = F) LB_income = mean(income) - sqrt(var(income) / n) * qt(alpha / (2*p), df = n-1, lower.tail = F) UB_income = mean(income) + sqrt(var(income) / n) * qt(alpha / (2*p), df = n-1, lower.tail = F) LB_lambexp = mean(lambexp) - sqrt(var(lambexp) / n) * qt(alpha / (2*p), df = n-1, lower.tail = F) UB_lambexp = mean(lambexp) + sqrt(var(lambexp) / n) * qt(alpha / (2*p), df = n-1, lower.tail = F) # computing the simultaneously valid confidence intervals with asymptotic approximation LB_educ = mean(educ) - sqrt(var(educ) / n) * sqrt(qchisq(alpha, df = p, lower.tail = F)) UB_educ = mean(educ) + sqrt(var(educ) / n) * sqrt(qchisq(alpha, df = p, lower.tail = F)) LB_age = mean(age) - sqrt(var(age) / n) * sqrt(qchisq(alpha, df = p, lower.tail = F)) UB_age = mean(age) + sqrt(var(age) / n) * sqrt(qchisq(alpha, df = p, lower.tail = F)) LB_income = mean(income) - sqrt(var(income) / n) * sqrt(qchisq(alpha, df = p, lower.tail = F)) UB_income = mean(income) + sqrt(var(income) / n) * sqrt(qchisq(alpha, df = p, lower.tail = F)) LB_lambexp = mean(lambexp) - sqrt(var(lambexp) / n) * sqrt(qchisq(alpha, df = p, lower.tail = F)) UB_lambexp = mean(lambexp) + sqrt(var(lambexp) / n) * sqrt(qchisq(alpha, df = p, lower.tail = F))