Uploaded by Jesse van der Ende

Inleiding Multivariate Statistiek Assignment 2

advertisement
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))
Download