Upload
ngoliem
View
254
Download
11
Embed Size (px)
Citation preview
Analiza variance in linearna regresija
Ales Ziberna
28. november 2011
Kazalo
1 Uporabljeni podatki 2
2 Analiza variance (ANOVA) 22.1 Enofaktorska analiza variance za neodvisne vzorce . . . . . . . 32.2 Vecfaktorska analiza variance za neodvisne vzorce . . . . . . . 122.3 Enofaktorska analiza variance za odvisne vzorce . . . . . . . . 19
3 Linearna regresija 213.1 Dodatne spremenljivke . . . . . . . . . . . . . . . . . . . . . . 223.2 Bivariatna regresija . . . . . . . . . . . . . . . . . . . . . . . . 223.3 Nelinearna regresija . . . . . . . . . . . . . . . . . . . . . . . . 263.4 Multipla regresija . . . . . . . . . . . . . . . . . . . . . . . . . 313.5 Vkljucevanje nominalnih/ordinalnih spremenljivk . . . . . . . 353.6 Interakcije med spremenljivkami . . . . . . . . . . . . . . . . . 393.7 Preverjanje predpostavk . . . . . . . . . . . . . . . . . . . . . 41
3.7.1 Analiza rezidualov . . . . . . . . . . . . . . . . . . . . 413.7.2 Multikulinearnost . . . . . . . . . . . . . . . . . . . . . 443.7.3 Ocene oblike zveze . . . . . . . . . . . . . . . . . . . . 50
3.8 Za razmislek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.9 Izracun ”na roke” . . . . . . . . . . . . . . . . . . . . . . . . . 57
1
1 Uporabljeni podatki
Za prikaz predstavljenih metod bomo uporabili podatke iz Evropske druzbo-slovne raziskave (http://www.europeansocialsurvey.org/) za Slovenijo zaleto 2004.
Uporabili bomo predvsem sledece spremenljivke:
G91 Bruto placa v 1000 sit
F5 Kraj bivanja (5 kategorij)
gndr Spol
Preberemo podatke iz SPSS-ove datotke in ”popravimo”faktorje.
> #nalozimo podatke
> library(foreign)
> data<-read.spss(file="Ess2e03_SlovenijaNA.sav",
to.data.frame = TRUE, use.value.labels = FALSE,
use.missings=FALSE, reencode="cp1250")
> #nalozimo tudi dodatne funkcije
> source("MVA-funkcije.R")
2 Analiza variance (ANOVA)
Analiza variance (ANOVA) je splosno ime za metode, ki primerjajo poja-snjeno variabilnost (obicajno merjeno z vsoto kvadratov odklonov) z nepo-jasnjeno. Ce je pojasnjena variabilnost dovolj velika v primerjavi z nepoja-snjeno, potem lahko zakljucimo, da ima tisto, kar pojasnjuje nek vpliv naobravnavano odvisno spremenljivko1.
Tu se bomo omejili na probleme, ko preverjamo, ali se aritmeticne sredine raz-likujejo med ”vzorci”. V tem primeru je pojasnjena variabilnost variabilnostmed aritmeticnimi sredinami teh vzorcev (variabilnost med vzorci), nepoja-snjena pa variabilnost znotraj vzorcev. Pojasnjena variabilnost je obicajnopojasnjena z eno ali vec nominalnimi2 spremenljivkami.
1V splosnem je sicer odvisnih spremenljivk lahko tudi vec, a tega mi ne bomo obrav-navali.
2oz. spremenljivkami, ki jih obravnavamo kot nominalne
2
2.1 Enofaktorska analiza variance za neodvisne vzorce
Ta verzija analize variance je najbolj znana in najpogosteje uporabljena, takoda vecina ljudi ob izrazu ”analiza variance” pomisli ravno na njo.
Klasicna enofaktorska analiza variance za neodvisne vzorce ima slece pred-postavke:
Normalnost (angl. normality) Odvisna spremenljivka se znotraj vsakepopulacije porazdeljuje normalno.
Enakost varianc (angl. homogeneity of variance) Variabilnost posame-znih enot znotraj vsake populacije je enaka.
Ce je zadosceno tema dvema predpostavkama, lahko uporabimo F test (ana-lizo variance) za testiranje domnev o razliki aritmeticnih sredin.
Ce imamo velik vzorec (npr. vecji od 30 v vsakem vzorcu), lahko uporabimo Ftest, tudi ce predpostavki o normalnosti ni popolnoma zadosceno. Pomembnoje, da je porazdelitev v vseh populacijah priblizno enaka (npr. povsod enakoasimetricna v desno). Pri majhnih vzorcih pa ne moremo uporabiti F testa.
V primeru, da je krsena predpostavka o enakosti varianc pa lahko uporabimoWelch-ovo analizo variance.
Predpostavko o normalnosti obicajno preverjamo graficno (histogram po sku-pinah), predpostavko o enakosti varianc pa preko opisnih statistik in formal-nih testov. Nekaj moznih testov:
bartlett.test Primeren, ce je predpostavka o normalnosti izpolnjena
fligner.test Robusten na odstopanja od normalnosti. Temelji na rangih-
leveneTest Tudi ta je robusten na odstopanja od normalnosti. To je test,ki ga npr. izpise SPSS. Na voljo je v paketku car.
Enofaktorsko analizo variance in njeno neparametricno razlicico lahko izve-demo s sledecimi funkcijami:
oneway.test Izvede klasicno in Welch-ovo enofaktrsko analizo variance
aov Bolj splosna funkcija za analizo variance (tudi vecfaktorsko), ki pa neomogoca moznosti za razlicne variance (vsaj ne enostavno).
kruskal.test Kruskal-Wallis-ov test vsote rangov - Neparamtericna razlicicaanalize variance oz. razlicica Mann-Whitney-evega testa za vec kot 2vzorca.
3
Pozor: Funkcija aov tako kot veliko drugih statisticnih funkcij kot glavniargument sprejme formulo, ki pove, vpliv katerih neodvisnih spremenljivk nakatero odvisno spremenljivko preucujemo. Ce zelimo, da se neodvisne spre-menljivke obravnavajo kot nominalne spremenljivke (in ne kot intervalne),morajo obvezno biti tipa faktor (ali kvecjemu characer, ki ga funkcija avto-maticno premeni v faktor). Sicer je tisto, kar dobimo, bolj podobno linearniregresiji.
Za primerjave, katera povprecja so razlicna lahko uporabimo funkcijo pa-irwise.t.test. Parne primerjave namrec niso nic drugega kot t-testi, kjerdobljene p-vrednosti popravimo tako, da je skupno tveganje enako izbranistopnji α. Pri funkciji pairwise.t.test lahko izberemo tudi metodo popravkap-vrednosti. Priporocena je Holmova metoda, ki je tudi splosno veljavna 3 inje boljsa kot Bofferonijeva.
Najprej pripravimo in preglejmo podatke, ki jih bomo uporabljali pri v na-daljevanju (ne izkljucno le v tej tocki).
> #popravimo faktorje
> data$gndr<-makeFactorLabels(data$gndr)
> table(data$gndr)
Male Female
648 762
> #poslovenimo in skrajsamo
> data$gndr<-factor(data$gndr,labels=c("Moski","Zenski"))
> table(data$gndr)
Moski Zenski
648 762
> data$F5<-makeFactorLabels(data$F5)
> table(data$F5)
A big city
132
Suburbs or outskirts of big city
204
Town or small city
326
Country village
626
3Tudi ce ne moremo predpostavljati npr. neodvisnosti med testi
4
Farm or home in countryside
148
> #poslovenimo in skrajsamo
> data$F5<-factor(data$F5,labels=c("Veliko mesto", "Predmestje",
"Majnse mesto","Vas","Kmetija"))
> table(data$F5)
Veliko mesto Predmestje Majnse mesto Vas
132 204 326 626
Kmetija
148
Spodaj je nekaj osnovnih izracunov. Porazdelitve osnovnih spremenljivk soprikazane na Sliki 1.
> library(psych)
> describe(data$G91)
var n mean sd median trimmed mad min max range
1 1 325 225.71 120.95 200 208.85 103.78 53 760 707
skew kurtosis se
1 1.46 2.52 6.71
> frekTab(data$F5,dec=2)[,c(1,3)]
Frevenca %
Veliko mesto 132 9.19
Predmestje 204 14.21
Majnse mesto 326 22.70
Vas 626 43.59
Kmetija 148 10.31
> frekTab(data$gndr,dec=2)[,c(1,3)]
Frevenca %
Moski 648 45.96
Zenski 762 54.04
> if(!exists("mar.def")) mar.def<-par("mar")
> par(mfrow=c(1,3))
> plot(data$gndr, main="Spol")
> par(mar=c(3,7,3,1))
> plot(data$F5,horiz=TRUE,las=1,main="Kraj bivanja")
> par(mar=mar.def)
> h<-hist(data$G91,main="Bruto placa",
5
Moški Ženski
Spol
010
020
030
040
050
060
070
0
Veliko mesto
Predmestje
Majnše mesto
Vas
Kmetija
Kraj bivanja
0 100 200 300 400 500 600
Bruto placa
Bruto placa v 1000 sit
Fre
kven
ca
0 200 400 600 800
050
100
150
Slika 1: Porazdelitve uporabljenih spremenljivk
xlab="Bruto placa v 1000 sit", ylab="Frekvenca")
> curve(dnorm(x,mean=mean(data$G91,na.rm=TRUE),
sd=sd(data$G91,na.rm=TRUE))*diff(h$breaks)[1]*
sum(!is.na(data$G91)), add=TRUE)
> par(mfrow=c(1,1))
> describe.by(data$G91,group=data$F5,mat=TRUE)
item group1 var n mean sd median
11 1 Veliko mesto 1 30 256.1000 133.22715 225
12 2 Predmestje 1 45 220.9111 97.05313 200
13 3 Majnse mesto 1 77 254.4675 129.83812 220
14 4 Vas 1 139 213.8273 122.17005 188
15 5 Kmetija 1 34 188.7059 97.12271 170
trimmed mad min max range skew kurtosis
11 253.2500 169.0164 75 450 375 0.2320304 -1.56727318
12 211.8919 100.8168 95 490 395 0.8192702 -0.03695316
13 237.4286 103.7820 100 750 650 1.3747886 1.80644481
14 196.1593 91.9212 53 760 707 1.7963112 4.18899970
15 172.8929 59.3040 80 528 448 1.7785525 3.18494875
se
11 24.32384
12 14.46783
13 14.79643
14 10.36233
15 16.65641
> par(mfrow=c(2,3))
> for(i in levels(data$F5)){
hist(data$G91[data$F5==i],xlab="Bruto placa", main=i)
6
Veliko mesto
Bruto placa
Fre
quen
cy
100 200 300 400
01
23
45
6
Predmestje
Bruto placa
Fre
quen
cy
100 200 300 400 5000
24
68
1012
Majnše mesto
Bruto placa
Fre
quen
cy
100 200 300 400 500 600 700 800
05
1015
2025
3035
Vas
Bruto placa
Fre
quen
cy
0 200 400 600 800
010
2030
4050
6070
Kmetija
Bruto placa
Fre
quen
cy
100 200 300 400 500
02
46
810
12
Slika 2: Porazdelitev bruto place po krajih bivanja
}
> par(mfrow=c(1,1))
> plot(G91~F5,data=data)
Opazimo lahko, da imamo razmeroma malo enot po posameznih kategorijah,vendar pa se vedno v vsaki nad 30. Morda bi bilo sicer smiselno narediti manjkategorij, a glede na opisne statistike se kaksna zelo smiselno rekodiranjeravno ne ponuja4.
Iz opisnih statistiki lahko opazimo, da so standardni odkloni (koreni varianc)po skupinah razmeroma podobni. Tako lahko tudi brez testa sklepamo, das predpostavko o enakosti varianc ne bi prevec zgresili. Bolj pa je proble-maticno, ker je asimetrija in se bolj konicavost bistveno visja v zadnjih dvehkategorijah (vas in kmetija). To je razvidno tudi iz slike 2. Kljub temu bomoza demonstracijo izvedli tudi vse teste.
> bartlett.test(G91~F5,data=data)
4Ce bi sicer kategorije zdruzevali na podlagi opisnih statistik (predvsem aritmeticnihsredin), bi bilo to narobe. Test, ki bi ga naredili na podlagi tako zdruzenih kategorij ne bibil veljaven.
7
Bartlett test of homogeneity of variances
data: G91 by F5
Bartlett's K-squared = 7.7277, df = 4, p-value =
0.1021
> fligner.test(G91~F5,data=data)
Fligner-Killeen test of homogeneity of variances
data: G91 by F5
Fligner-Killeen:med chi-squared = 11.4557, df = 4,
p-value = 0.02189
> #robusten na odstopanja od normalnosti
> require(car)
> leveneTest(G91~F5,data=data)
Levene's Test for Homogeneity of Variance (center = median)
Df F value Pr(>F)
group 4 1.789 0.1307
320
> #robusten na odstopanja od normalnosti
#tega uporablja SPSS
Barlettov in Levenov test pokazeta, da bi lahko domnevo o enakosti varianczavrnili sele pri malce vec kot 10% tveganju. Nasprotno pa Fligner-Killeen-jev test hipotezo zavrne ze pri 2.3% tveganju. Glede na to, da same razlikemed standardnimi odkloni niso tako velike bi jaz predpostavko o enakostivarianc obdrzal. Kljub temu pa bom izvedel (za demonstracijo) obe razli-cici analize variance (klasicno in Welch-ovo). Poelg tega bomo izvedli tudoneparametrici Kruskal-Walis-sov test.
> #predpostavljamo enake variance
> oneway.test(G91~F5,data=data,var.equal=TRUE)
One-way analysis of means
data: G91 and F5
F = 2.7695, num df = 4, denom df = 320, p-value =
0.02742
> #predpostavljamo razlicne variance
> #var.equal=FALSE bi lahko tudi izpustili, ker je to
8
> #privzeta moznost
> oneway.test(G91~F5,data=data,var.equal=FALSE)
One-way analysis of means (not assuming equal
variances)
data: G91 and F5
F = 2.7964, num df = 4.000, denom df = 103.163,
p-value = 0.02988
> #se preko funkcije aov
> fit<-aov(G91~F5,data=data)
> summary(fit)
Df Sum Sq Mean Sq F value Pr(>F)
F5 4 158604 39651 2.7695 0.02742 *
Residuals 320 4581392 14317
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
1117 observations deleted due to missingness
> #rezultat je identicen kot pri prejsnji funkciji,
> #ko smo predpostavljali enake variance
>
> kruskal.test(G91~F5,data=data)
Kruskal-Wallis rank sum test
data: G91 by F5
Kruskal-Wallis chi-squared = 12.5572, df = 4, p-value
= 0.01365
Obe razlicici ANOVEnam vrneta zelo podoben rezultat. Glede na oba lahkos tveganjem manjsim kot 3% trdimo, da se povprecna bruto placa razlikujeglede na kraj bivanja. Glede na Kruskal-Walis-sov test pa lahko predpo-stavko o enakosti srednjih vrednosti zavrnemo ze pri 1.4% tveganju. Pozor:Spomnite se prejsnjih predavanj - domneva, ki jo preverjamo ni vec enaka.
Perglejmo se, katera povprecja so enaka.
> TukeyHSD(fit) #fit mora biti rezultat funkcije aov
Tukey multiple comparisons of means
95% family-wise confidence level
9
Fit: aov(formula = G91 ~ F5, data = data)
$F5
diff lwr upr
Predmestje-Veliko mesto -35.188889 -112.55949 42.181712
Majnse mesto-Veliko mesto -1.632468 -72.28018 69.015248
Vas-Veliko mesto -42.272662 -108.35533 23.810003
Kmetija-Veliko mesto -67.394118 -149.61878 14.830549
Majnse mesto-Predmestje 33.556421 -28.03788 95.150721
Vas-Predmestje -7.083773 -63.38365 49.216108
Kmetija-Predmestje -32.205229 -106.79513 42.384676
Vas-Majnse mesto -40.640194 -87.27244 5.992052
Kmetija-Majnse mesto -65.761650 -133.35265 1.829353
Kmetija-Vas -25.121456 -87.92562 37.682705
p adj
Predmestje-Veliko mesto 0.7232946
Majnse mesto-Veliko mesto 0.9999963
Vas-Veliko mesto 0.4019543
Kmetija-Veliko mesto 0.1647508
Majnse mesto-Predmestje 0.5667485
Vas-Predmestje 0.9969399
Kmetija-Predmestje 0.7603006
Vas-Majnse mesto 0.1204253
Kmetija-Majnse mesto 0.0608866
Kmetija-Vas 0.8078518
> par(mar=mar.def+c(0,8,0,0))
> plot(TukeyHSD(fit),las=1) #se graficna predstavitev rezultatov
> par(mar=mar.def)
> # TurkeyHSD je primeren le ob predpostavki enakih varianc
>
> pairwise.t.test(x=data$G91,g=data$F5,p.adjust.method= "holm"
,pool.sd=TRUE)
Pairwise comparisons using t tests with pooled SD
data: data$G91 and data$F5
Veliko mesto Predmestje Majnse mesto Vas
Predmestje 1.00 - - -
Majnse mesto 1.00 0.82 - -
Vas 0.56 1.00 0.16 -
10
Kmetija 0.20 1.00 0.08 1.00
P value adjustment method: holm
> pairwise.t.test(x=data$G91,g=data$F5,p.adjust.method= "bonf"
,pool.sd=TRUE)
Pairwise comparisons using t tests with pooled SD
data: data$G91 and data$F5
Veliko mesto Predmestje Majnse mesto Vas
Predmestje 1.00 - - -
Majnse mesto 1.00 1.00 - -
Vas 0.80 1.00 0.17 -
Kmetija 0.25 1.00 0.08 1.00
P value adjustment method: bonferroni
> #ce ne zelimo uporabiti predpostavke o enakosti varianc
> #nastavimo pool.sd=FALSE
>
> pairwise.t.test(x=data$G91,g=data$F5,p.adjust.method= "holm"
,pool.sd=FALSE)
Pairwise comparisons using t tests with non-pooled SD
data: data$G91 and data$F5
Veliko mesto Predmestje Majnse mesto Vas
Predmestje 0.821 - - -
Majnse mesto 1.000 0.754 - -
Vas 0.754 1.000 0.233 -
Kmetija 0.233 0.754 0.041 0.821
P value adjustment method: holm
Ce predpostavljamo enake variance lahko najdemo znacilne razlike sele pri10% tveganju (oz. 6-8%) in se to le med Manjsim mestom in Kmetijo. Po-dobno je tudi, ce privzamemo, da so variance razlicne, le da lahko v temprimeru to trditev postavimo ze pri 4.1% tveganju.
Za konec povprecja se graficno predstavimo v Sliki 3.
11
●
●
●
●
●
150
200
250
300
F5
G91
●
●
●
●
●
Veliko mesto Majnše mesto Vas Kmetija
n=30 n=45 n=77 n=139 n=34
Slika 3: Porazdelitve uporabljenih spremenljivk
> library(gplots)
> plotmeans(G91~F5,data=data)
2.2 Vecfaktorska analiza variance za neodvisne vzorce
Vecfaktorska analiza variance je analiza variance, kjer so skupine dolocene zvec kot enim faktorjem. Z njo torej preverjamo domnevo o vplivu dveh alivec nominalnih (oz. vsaj tako jih obravnavamo) neodvisnih spremenljivk naodvisno spremenljivko.
Predpostavke vecfaktorske analize variance so podobne predpostavkam eno-faktorske ⇒ porazdelitev v vseh skupinah/celicah (dolocenih z kombinacijovseh faktorjev (neodvisnih spremenljivk) je normalna z enako varianco.
Analiza je bistveno bolj enostavna, ce so neodvisne spremenljivke med sebojneodvisne/nepovezane, kar pa se v druzboslovju (oz. kjerkoli, kjer podatkedobimo z opazovanje/anketiranjem in ne eksperimentom) redko zgodi. Vprimeru da neodvisne spremenljivke med seboj niso neodvisne, je pomem-ben vrstni red faktorjev. Model namrec najprej ”poskusa” pojasniti cim vecvariabilnosti odvisne spremenljivke s 1. faktorjem, nato z 2., 3., ...
Rezultati se torej spremenijo, ce zamenjamo vrstni red faktorjev. Od vr-
12
stnega reda je tudi odvisna, kaj nek test sploh preverja. Pri prvem faktorjutest preverja, ali leta pojasni vsaj nekaj variabilnosti odvisne spremenljivke(oz. ali vpliva nanjo). Pri vseh ostalih pa preverja, ali faktor pojasni kakdel variabilnosti odvisne spremenljivke, ki se ni pojasnjen s faktorji, ki sov modelu pred obravnavanim faktorjem. Vse to velja, ce uporabimo ”kla-sicno” vsoto kvadratov oz. vsoto kvadratov tipa ”I”. Obstajajo tudi drugevrste vsote kvadratov (glejte prosojnice). Pri nekaterih od njih vrstni redfaktorjev/ucinkov ni pomemben.
Preverjamo lahko tudi, ali obstaja interakcija med vplivi posameznih fak-torjev. Interakcija med vplivi faktorjev pomeni, da se vpliv nekega faktorjarazlikuje glede na vrednosti nekega drugega faktorja.
Na nasem primeru bomo preverjali, ali lahko trdimo, da kraj bivanja in spolvplivata na bruto placo. Poleg tega bomo preverili tudi, ali lahko trdimo, davpliva na bruto placo spol, ce predhodno kontroliramo za vpliv kraja bivanja.
Pred izracunom bomo pripravili podatke in sicer tako, da bomo samo po-trebne spremenljivke zdruzili v nov podatkovni okvir. Tu bomo potem od-stranili vse enote, ki imajo manjkajoco vrednost pri katerikoli spremenljivki.To bomo naredili, da bomo v nadaljevanju pri vseh analizah upostevali isteenote (kar nam bo omogocalo, da bomo modele primerjali med seboj.
Pripravimo torej najprej nov podatkovni okvir in odstranimo enote z manj-kajocimi vrednostmi. Nato podobno kot pri enofaktorski anovi preverimopredpostavke.
> dataAov<-data[,c("G91","gndr","F5")]
> dataAov<-na.omit(dataAov)
> describe.by(dataAov$G91,group=dataAov[c("gndr","F5")],
mat=TRUE)
item group1 group2 var n mean sd
11 1 Moski Veliko mesto 1 14 252.0000 127.94650
12 2 Zenski Veliko mesto 1 15 252.3333 143.55172
13 3 Moski Predmestje 1 24 231.1250 95.43917
14 4 Zenski Predmestje 1 21 209.2381 99.89640
15 5 Moski Majnse mesto 1 39 288.6923 147.34656
16 6 Zenski Majnse mesto 1 35 210.1143 92.63679
17 7 Moski Vas 1 69 227.0870 125.35992
18 8 Zenski Vas 1 67 202.8060 120.44064
19 9 Moski Kmetija 1 27 188.8889 98.64713
110 10 Zenski Kmetija 1 7 188.0000 98.54441
median trimmed mad min max range skew
13
11 226 250.2500 142.3296 75 450 375 0.3270494
12 200 250.3846 148.2600 80 450 370 0.2540330
13 200 223.3500 107.4885 120 490 370 0.7883115
14 184 197.0000 94.8864 95 450 355 0.8518656
15 250 274.1212 88.9560 110 750 640 1.1844391
16 170 199.2759 77.0952 100 500 400 1.1385801
17 200 208.9825 74.1300 61 760 699 1.9229792
18 180 185.9091 103.7820 53 700 647 1.5723492
19 170 172.3913 59.3040 80 528 448 1.9727940
110 132 188.0000 42.9954 103 350 247 0.6346745
kurtosis se
11 -1.42834380 34.19514
12 -1.78216305 37.06489
13 -0.02979449 19.48144
14 -0.23542599 21.79918
15 0.78377390 23.59433
16 0.89652400 15.65848
17 4.53230346 15.09156
18 3.14171911 14.71417
19 3.93661300 18.98465
110 -1.56138214 37.24628
> par(mfrow=c(2,5))
> for(iGndr in levels(dataAov$gndr)){
for(iF5 in levels(dataAov$F5)){
hist(dataAov$G91[(dataAov$F5==iF5)&dataAov$gndr==iGndr],
xlab="Bruto placa", main=paste(iGndr,iF5,sep=", "))
}}
> par(mfrow=c(1,1))
Opazimo lahko, da je sedaj v nekaterih skupinah ze zelo malo enot. Standar-dni odkloni med skupinami niso pretirano podobni, se pa precej razlikujejokoeficienti asimetrije in sploscenosti. Vsekakor rezultati kazejo na to, da po-razdelitev v vseh skupinah ni (niti priblizno) normalna in tudi ne podobnamed skupinami. Predpostavke metode torej niso izpolnjene in torej moramorezultate metode jemati z veliko rezervo.
Sedaj najprej ponovimo enofaktorsko ANOVO s funkcijo aov za vsak faktorposebej. Poleg tega preverimo tudi, ali sta neodvisni spremenljivki med sebojpovezani.
> fitG91_F5<-aov(G91~F5,data=dataAov)
> summary(fitG91_F5)
14
Moški, Veliko mesto
Bruto placa
Fre
quen
cy
0 100 200 300 400 500
01
23
45
Moški, Predmestje
Bruto placa
Fre
quen
cy
100 200 300 400 500
01
23
45
67
Moški, Majnše mesto
Bruto placa
Fre
quen
cy
100 300 500 700
05
1015
Moški, Vas
Bruto placa
Fre
quen
cy
0 200 400 600 800
05
1015
2025
3035
Moški, Kmetija
Bruto placa
Fre
quen
cy
0 100 300 500
05
1015
Ženski, Veliko mesto
Bruto placa
Fre
quen
cy
0 100 200 300 400 500
01
23
45
6
Ženski, Predmestje
Bruto placa
Fre
quen
cy
100 200 300 400
01
23
45
6
Ženski, Majnše mesto
Bruto placa
Fre
quen
cy
100 200 300 400 500
02
46
810
12Ženski, Vas
Bruto placa
Fre
quen
cy
0 200 400 600
05
1015
2025
30
Ženski, Kmetija
Bruto placa
Fre
quen
cy
100 150 200 250 300 350
01
23
4
Slika 4: Porazdelitev bruto place po krajih bivanja in spolu
Df Sum Sq Mean Sq F value Pr(>F)
F5 4 132286 33071 2.2984 0.05889 .
Residuals 313 4503794 14389
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> fitG91_gndr<-aov(G91~gndr,data=dataAov)
> summary(fitG91_gndr)
Df Sum Sq Mean Sq F value Pr(>F)
gndr 1 60436 60436 4.1738 0.04188 *
Residuals 316 4575644 14480
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> tbl<-table(dataAov$gndr,dataAov$F5)
> prop.table(tbl,margin=2)
Veliko mesto Predmestje Majnse mesto Vas
Moski 0.4827586 0.5333333 0.5270270 0.5073529
Zenski 0.5172414 0.4666667 0.4729730 0.4926471
15
Kmetija
Moski 0.7941176
Zenski 0.2058824
> #lazje opazimo, ali sta spremenljivki povazani
> chisq.test(tbl)
Pearson's Chi-squared test
data: tbl
X-squared = 9.8558, df = 4, p-value = 0.04293
> # install.packages("vcd")
> library(vcd)
> assocstats(tbl)
X^2 df P(> X^2)
Likelihood Ratio 10.5712 4 0.031830
Pearson 9.8558 4 0.042928
Phi-Coefficient : 0.176
Contingency Coeff.: 0.173
Cramer's V : 0.176
> #mimo grede - na vseh podatkih povezanosti ni
> chisq.test(table(data$gndr,data$F5))
Pearson's Chi-squared test
data: table(data$gndr, data$F5)
X-squared = 6.3402, df = 4, p-value = 0.1751
Vidimo lahko, da lahko ob predpostavki, da so predpostavke klasicne analizevariance (normalnost, enake variance) izpolnjene pri 5.9% tveganju trdimo,da kraj bivanja vpliva na bruto placo, in pri 4.2% tveganju, da spol vplivana bruto placo.
Prav tako vidimo, da sta v nasih podatkih (tistih, ki jih bomo uporabili prianalizi variance) spremenljivki kraj bivanja in spol sibko povezani. Ocitnoje to posledica tega, da upostevamo samo enote z veljavnimi vrednostmiza bruto placo. Na vseh enotah namrec povezanosti ni oz. ni statisticnoznacilna.
Rekli smo, da bomo preverjali, ali lahko trdimo, da kraj bivanja in spol vpli-
16
vata na bruto placo. Test celotnega modela je malce zahtevnejsi. Standardnefunkcije ga ne izvedejo. Lahko pa ga izvedemo zelo enostavno tako, da modelprimerjamo z nicelnim modelom, to je modelom, kjer nimamo pojasnjevalnihspremenljivk. V tem modelu so napovedi enake povprecju.
Poleg tega bomo preverili tudi, ali lahko trdimo, da vpliva na bruto placospol, ce predhodno kontroliramo za vpliv kraja bivanja. Torej, bomo v modelkot 1. spremenljivko dali kraj bivanja, kot 2. pa spol.
> #izvedemo dvofaktorsko anovo
> fitG91_F5gndr<-aov(G91~F5+gndr,data=dataAov)
> summary(fitG91_F5gndr)
Df Sum Sq Mean Sq F value Pr(>F)
F5 4 132286 33071 2.3342 0.05562 .
gndr 1 83242 83242 5.8752 0.01592 *
Residuals 312 4420552 14168
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> #rezultat pri spolu nam pove, koliko ta model pojasni
> #vec kot model s samo krajem bivanja
> anova(fitG91_F5,fitG91_F5gndr)
Analysis of Variance Table
Model 1: G91 ~ F5
Model 2: G91 ~ F5 + gndr
Res.Df RSS Df Sum of Sq F Pr(>F)
1 313 4503794
2 312 4420552 1 83242 5.8752 0.01592 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> #ocenimo "niceni" model
> fitG91_1<-update(fitG91_F5gndr,~1)
> #funkcija "update" popravi model glede na argumente
> #ali
> #fitG91_1<-aov(G91~1,data=dataAov)
>
> #primerjamo model z nicelnim
> anova(fitG91_1,fitG91_F5gndr)
Analysis of Variance Table
17
Model 1: G91 ~ 1
Model 2: G91 ~ F5 + gndr
Res.Df RSS Df Sum of Sq F Pr(>F)
1 317 4636080
2 312 4420552 5 215527 3.0424 0.01069 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Iz rezultatov lahko razberemo:
� Pri 5.5% tveganju lahko trdimo, da kraj bivanja vpliva na bruto placo.Stopnja tveganaj je manjsa kot pri enofaktorski anovi (kjer je bila5.9%), ker je manjsa nepojasnjena varianca (del je sedaj pojasnjenes spolom).
� Pri 1.6% lahko trdimo, da spol vpliva na bruto placo, ce kontroliramoza kraj bivanja. Opazimo, da je ta stopnja tveganja bistveno manjsakot prej. Pravzaprav lahko opazimo tudi, da je pojasnjena vsota kva-dratov (pri spolu) vecja. To pomeni, da so razlike v bruto placi medspoloma vecje, ce jih gledamo loceno po krajih bivanja, kot ce jih gle-damo skupaj.
� S tveganjem 1% lahko trdimo, da spol ali kraj bivanja (vsaj ena izmedteh dveh spremenljivk) vplivata na bruto placo.
Preverimo se, ali obstaja tudi interakcija med vplivom spola in kraja bivanja.Ta ”ucinek” moramo v model vedno dati kot zadnji.
> #izvedemo dvofaktorsko anovo
> fitG91_F5gndrI<-aov(G91~F5*gndr,data=dataAov)
> summary(fitG91_F5gndrI)
Df Sum Sq Mean Sq F value Pr(>F)
F5 4 132286 33071 2.3338 0.05568 .
gndr 1 83242 83242 5.8743 0.01594 *
F5:gndr 4 56064 14016 0.9891 0.41365
Residuals 308 4364488 14170
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> #primerjamo model z nicelnim
> anova(fitG91_1,fitG91_F5gndrI)
Analysis of Variance Table
18
Model 1: G91 ~ 1
Model 2: G91 ~ F5 * gndr
Res.Df RSS Df Sum of Sq F Pr(>F)
1 317 4636080
2 308 4364488 9 271591 2.1296 0.02692 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Vidimo, da interakcija med ucinkoma ni statisticno znacilna. Torej ne mo-remo trditi, da spol drugace vpliva na bruto placo v razlicnih krajih bivanja.Posledicno tudi opazimo, da se skupna znacilnost modela zaradi vkljucitveinterakcije zniza.
2.3 Enofaktorska analiza variance za odvisne vzorce
Pogledali si bomo le najenostavnejsi primer analize variance za odvisne vzorce.Analiza variance za odvisne vzorce je sorodna t-testu za odvisne vzorce, leda je vzorcev/spremenljivk, katerih povprecje preverjamo vec.
Analizo variance za odvisne vzorce lahko prav tako kot prejsnje tipe naredimopreko funkcije aov z ustreznimi argumenti, vendar pa moramo pred uporabopodatke prilagoditi. Podatke moramo preurediti v podobno obliko, kot joimamo pri neodvisnih vzorcih. Torej moramo imeti eno odvisno spremen-ljivko in spremenljivko, ki ”identificira”vzorce (oz. originalne spremenljivke).Poleg tega pa moramo za vsak podatek tudi vedeti, kateri enoti pripada. Zavsako enoto moramo imeti podatke za vse vzorce/spremenljivke.
Za to je uporabna tale funkcija:
> razsiriPodatke<-function(X,id=rownames(X),
varNames=colnames(X)){
# funkcija za pretvorbo podatkov v obliko,
# kot jo razumeta funkciji aov ali lm
n12<-dim(X)
n<-n12[1]
m<-n12[2]
if(is.null(varNames)) varNames<-1:m
if(is.null(id)) id<-1:n
res<-NULL
for(i in 1:m){
res<-rbind(res,data.frame(id=id,x=X[,i],
19
var=varNames[i]))
}
return(res)
}
Funkcijo aov uporabimo sicer kot obicajno, le da navedemo, katera spre-menljivka nam ”indetificira” enote oz. natancneje povemo, napake katerih”zapisov” so korelirane. Pozot: Klic funkcije je razmeroma casovno zahte-ven.
Preverjali bomo domnevo, ali Slovenci enako zaupajo/mo Drzavnemu zboru(spremenljivka B4), evropskem parlamentu (B9) in Zdruzenim narodom (B10).Preglejmo najprej opisne statistike in pripravimo podatke.
> dataB4910<-na.omit(data[c("B4","B9","B10")])
> #za uporabo funkcije razsiriPodatke pripravimo
> #nov podatkovni okvir z le uporabljenimi spremenljivkami
> describe(dataB4910)
var n mean sd median trimmed mad min max range
B4 1 1213 4.13 2.38 4 4.10 2.97 0 10 10
B9 2 1213 4.53 2.41 5 4.56 2.97 0 10 10
B10 3 1213 4.57 2.67 5 4.60 2.97 0 10 10
skew kurtosis se
B4 0.10 -0.57 0.07
B9 -0.08 -0.69 0.07
B10 -0.04 -0.82 0.08
> dataB4910raz<-razsiriPodatke(dataB4910)
> dataB4910raz[1:10,] #novi podatki izgledajo takole
id x var
1 1 3 B4
2 2 3 B4
3 3 3 B4
4 4 3 B4
5 5 0 B4
6 6 3 B4
7 7 5 B4
8 8 5 B4
9 9 0 B4
10 10 3 B4
Vidimo, da je zaupanje v Evropski parlament in Zdruzene narode bistveno
20
visje kot v Drzavni zbor. Preverimo, ali je razlika statisticno znacilna.
> aovRep<-aov(x~var+Error(id),data=dataB4910raz)
> summary(aovRep)
Error: id
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 1212 17257 14.238
Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
var 2 148.2 74.098 34.036 2.643e-15 ***
Residuals 2424 5277.1 2.177
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> model.tables(aovRep,type="means")
Tables of means
Grand mean
4.409453
var
var
B4 B9 B10
4.125 4.528 4.575
Pri zanemarljivi stopnji tveganja lahko trdimo, da Slovenci ne zaupamo vsemtrem institucijam enako.
3 Linearna regresija
Tukaj je prikazana le primer izvedbe linearne regresije. Za teorijo glejteprosojnice. S pomocjo linearne regresije bomo pogledali, kako kraj bivanja,spol, stevilo let solanja in tipicno stevilo delovnih ur na teden vplivajo nabruto placo.
21
3.1 Dodatne spremenljivke
Tudi tu najprej predstavimo uporabljene spremenljivke. Poleg tistih, ki smojih ze uporabili pri analizi variance bomo uporabili se spremenljivki F7 ”Ste-vilo let solanja” in F21 ”Tipicno stevilo delovnih ur (vkljucno z nadurami)na teden”. Graficni prikaz njunih porazdelitev je prikazan na Sliki 5. Pritem bomo upostevali samo enote, ki imajo veljavne vrednosti opri vseh spre-menljivkah, ki jih bomo uporabili v regresiji (v katerem-koli modelu - to so:G91, gndr, F5, F7 in F21). Na teh podatkih bomo opravili sicer tudi vselinearne regresije. V praksi je sicer (vsaj na koncu) bolje, ce upostevamovse razpolozljive podatke (torej tiste enote, ki imajo veljavne vrednosti naspremenljivkah, ki jih uporabimo v nekem modelu).
> dataLR<-na.omit(data[c("G91","gndr","F5","F7","F21")])
> describe(dataLR[c("F7","F21")])
var n mean sd median trimmed mad min max range
F7 1 248 12.23 3.12 12 12.19 1.48 1 21 20
F21 2 248 41.62 14.62 40 42.69 7.41 0 84 84
skew kurtosis se
F7 -0.03 1.09 0.20
F21 -0.68 2.39 0.93
> par(mfrow=c(1,2))
> h<-hist(dataLR$F7,main="Stevilo let solanja",
xlab="Stevilo let solanja", ylab="Frekvenca")
> curve(dnorm(x,mean=mean(dataLR$F7,na.rm=TRUE),
sd=sd(dataLR$F7,na.rm=TRUE))*diff(h$breaks)[1]*
sum(!is.na(dataLR$F7)), add=TRUE)
> h<-hist(dataLR$F21,main="Tipicno stevilo delovnih ur na teden",
xlab="Tipicno stevilo delovnih ur na teden", ylab="Frekvenca")
> curve(dnorm(x,mean=mean(dataLR$F21,na.rm=TRUE),
sd=sd(dataLR$F21,na.rm=TRUE))*diff(h$breaks)[1]*
sum(!is.na(dataLR$F21)), add=TRUE)
> par(mfrow=c(1,1))
3.2 Bivariatna regresija
Zacnimo z najbolj enostavnim primerom bivariatne linearne regresije. Pre-verimo, kako stevilo let solanja vpliva na bruto placo.
Odnos med spremenljivkama je graficno predstavljen na sliki ?? (za enkrat
22
Število let šolanja
Število let šolanja
Fre
kven
ca
0 5 10 15 20
020
6010
0
Tipicno število delovnih ur na teden
Tipicno število delovnih ur na tedenF
rekv
enca
0 20 40 60 80
020
4060
80
Slika 5: Porazdelitve dodatnih spremenljivk
odmislimo polno crto/premico). Rdeca crtkana crta pa prikazuje glajenapovprecja odvisne spremenljivke glede na vrednosti neodvisne.
> par(mar=mar.def+c(0,0,-3,0))
> plot(G91~F7,data=dataLR,ylab="Bruto placa v 1000 sit",
xlab="Stevilo let solanja")
> lines(lowess(G91~F7,data=dataLR),lwd=2,lty=2,col="red")
> par(mar=mar.def)
Iz slike se vidi vec stvari:
� Ce stevilo let solanja narasca, v povprecju narasca tudi bruto placa.
� Variabilnost bruto place narasca s stevilom let solanja, kar je krsitevene izmed predpostavk linearne regresije.
� Videti je, da z stevilom let solanja bruto placa narasca vse hitreje. Torejje mogoce, da linearna zveza ni primerna.
� Videti je, da zacne izobrazba vlivati na placo sele, ko preseze 12 let.
Kljub pomislekom nadaljujmo najprej z enostavno linearno regresijo. Zaocenjevanje linearne regresije uporabimo funkcijo lm.
> (fitG91_F7<-lm(G91~F7,data=dataLR))
Call:
lm(formula = G91 ~ F7, data = dataLR)
23
●
●
●
●
●
●
●
●
●●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●●
●
●●
●●●
●
●
●
●●
●●
●●
●
●●
●
●
●
●
●
●
●
5 10 15 20
100
200
300
400
500
600
700
Število let šolanja
Bru
to p
laca
v 1
000
sit
Slika 6: Odnos med bruto placo in stevilom let solanja
Coefficients:
(Intercept) F7
-15.81 19.30
> summary(fitG91_F7) #za bolj bogat izpis
Call:
lm(formula = G91 ~ F7, data = dataLR)
Residuals:
Min 1Q Median 3Q Max
-250.92 -64.58 -15.81 44.19 466.99
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -15.813 25.938 -0.610 0.543
F7 19.302 2.055 9.391 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 100.9 on 246 degrees of freedom
Multiple R-squared: 0.2639, Adjusted R-squared: 0.2609
24
F-statistic: 88.2 on 1 and 246 DF, p-value: < 2.2e-16
> library(car)
> confint(fitG91_F7,level=0.9) #90% intervali zaupanja
5 % 95 %
(Intercept) -58.63915 27.01310
F7 15.90819 22.69492
> par(mar=mar.def+c(0,0,-3,0))
> plot(G91~F7,data=dataLR,ylab="Bruto placa v 1000 sit",
xlab="Stevilo let solanja")
> lines(lowess(G91~F7,data=dataLR),lwd=2,lty=2,col="red")
> abline(fitG91_F7,lwd=2)
> par(mar=mar.def)
Ugotovimo lahko, da lahko na s variabilnostjo v stevilu let solanja pojasnimo26.4% variabilnosti v bruto placi. Ce se stevilo let solanja poveca za eno leto,se bo bruto placa v povprecju povecala za 19.3 tisoc sit. Vpliv stevila letsolanja na bruto placo je staticno znacilen pri zanemarljivi stopnji tveganja.
S pomocjo funkcije confint iz paketka car smo izracunali tudi 90% intervalezaupanja za regresijski koeficient in konstanto.
Na podlagi rezultata smo na Sliko 6 premico, ki prikazuje ocenjeni odnos medspremenljivkama. Ocitno je, da se premica pri velikih in majhnih vrednostihspremenljivke ”Stevilo let solanja” ne prilega.
To je morda se bolj ocitno, ce si pogledamo graf, kjer na y os nanasamoreziduale, na x os pa vrednosti neodvisne spremenljivke (1. graf na Sliki 7).Iz histograma na Sliki 7 pa se vidi, da je krsena tudi predpostavka o normalniporazdelitvi rezidualov/napak. Podobne zakljucke lahko izpeljemo tudi napodlagi grafikonov na Sliki 8, kjer so (za R ) standardni diagnosticni prikaziza linearno regresijo (tudi multiplo).
Graf levo zgoraj je podoben kot nas razsevni grafikon, le da so na y osinapovedane vrednosti in ne neodvisna spremenljivka. Pri bivarianti regresijigre pravzaprav le za linearno transformacijo skale (mnozenje in sestevanje),pri multipli pa sluzi to kot nek nadomestek za vse neodvisne spremenljivke(saj so napovedane vrednosti linearne kombinacije neodvisnih spremenljivk).
Graf desno zgoraj pa prikazuje podobno informacijo kot histogram. Imenujese Q-Q plot (Q je okrajsava za qunatile). Ce so reziduali normalno porazde-ljeni, lezijo vse tocke na crtkani premici.
25
●
●
●
●
● ●●
●
●●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●●
●
● ●●
●
●
●●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●● ●
●
●● ●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●● ●
●
●
●
●
●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●
● ●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●●
●
●
●
●
●
● ●●
●
●
●
●
●●
●●
●●
●
●
●
●
●●
●
●
●
●
5 10 15 20
−20
00
200
400
Razsevi grafikon rezidualov glede na vrednosti neodvisne spremenljivke
Število let šolanja
Rez
idua
li
Histogram rezidualovz vrisano normalno krivujlo
RezidualiG
osto
ta
−200 0 200 400
0.00
00.
002
0.00
4
Slika 7: Porazdelitev rezidualov
> par(mfrow=c(1,2))
> plot(fitG91_F7$residuals~dataLR$F7,
ylab="Reziduali", xlab="Stevilo let solanja",
main="Razsevi grafikon rezidualov glede
na vrednosti neodvisne spremenljivke")
> hist(fitG91_F7$residuals, freq=FALSE, br=15,
xlab="Reziduali", ylab="Gostota",
main="Histogram rezidualov\nz vrisano normalno krivujlo")
> curve(dnorm(x,mean=0,sd=sd(fitG91_F7$residuals)),add=TRUE)
> par(mfrow=c(1,1))
> par(mfrow=c(2,2))
> plot(fitG91_F7)
> par(mfrow=c(1,1))
3.3 Nelinearna regresija
Ugotovili smo, da morda linearna zveza med spremenljivkama na danih po-datkih ni najbolj optimalna. Odnos je videti dosti bolj linearen, ce brutoplaco logaritmiramo. Na takih podatkih lahko ocenimo tudi linearno regre-sijo. Rezultat lahko potem narisemo tudi na originalni lestvici. Oboje jeprikazano na Sliki 9)
26
0 100 200 300 400
−20
00
200
400
Fitted values
Res
idua
ls
●
●
●
●
● ●●
●
●●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●●
●
● ●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
● ●
●
●● ●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
Residuals vs Fitted
516
334686
●
●
●
●
●●●
●
●●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
−3 −2 −1 0 1 2 3
−2
02
4Theoretical Quantiles
Sta
ndar
dize
d re
sidu
als
Normal Q−Q
516
3341056
0 100 200 300 400
0.0
0.5
1.0
1.5
2.0
Fitted values
Sta
ndar
dize
d re
sidu
als
●
●
● ●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●● ●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●●
●●
●
●●
●● ●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
Scale−Location516
3341056
0.00 0.01 0.02 0.03 0.04 0.05
−2
02
4
Leverage
Sta
ndar
dize
d re
sidu
als
●
●
●
●
●●●
●
●●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●● ●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●● ●
●
● ●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
Cook's distance
0.5
Residuals vs Leverage
1056334
516
Slika 8: Diagnosticni grafikoni za linearno regresijo
> fitLnG91_F7<-lm(log(G91)~F7,data=dataLR)
> summary(fitLnG91_F7) #za bolj bogat izpis
Call:
lm(formula = log(G91) ~ F7, data = dataLR)
Residuals:
Min 1Q Median 3Q Max
-1.2067 -0.2642 0.0402 0.2707 1.4122
Coefficients:
27
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.308573 0.107699 40.006 <2e-16 ***
F7 0.078944 0.008534 9.251 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4187 on 246 degrees of freedom
Multiple R-squared: 0.2581, Adjusted R-squared: 0.2551
F-statistic: 85.58 on 1 and 246 DF, p-value: < 2.2e-16
> par(mfrow=c(1,2))
> plot(log(G91)~F7,data=dataLR,xlab="Stevilo let solanja",
ylab="Logaritem bruto place v 1000 sit",
main="Pollogaritemski grafikon")
> abline(fitLnG91_F7)
> plot(G91~F7,data=dataLR,ylab="Bruto placa v 1000 sit",
xlab="Stevilo let solanja",
main="Originalna skala")
> curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]*x),
add=TRUE)
> text(x=2.5,y=700,
labels=bquote(italic(G91)*minute==
italic(e)^(.(round(coef(fitLnG91_F7)[1],3))
+.(round(coef(fitLnG91_F7)[2],3))*italic(F7))))
> par(mfrow=c(1,1))
Vendar pa se moramo zavedati, da kadar koli transformiramo odvisno spre-menljivko, izracuni niso vec pravilni oz. optimalni. V tem primeru ne mi-nimiziramo namrec vec vsoto kvadratov originalne, ampak transformiranespremenljivke (linearna regresija za ocenjevanje uporablja metodo najmanj-sih kvadratov). Zaradi istega razloga tudi statistike R2 in podobne nisopravilne. Pravilen izracun za R2 bi bil:
> resLog<-dataLR$G91- exp(fitLnG91_F7$fitted)
> odkloniPov<-dataLR$G91- mean(dataLR$G91)
> R2log<-1-sum(resLog^2)/sum(odkloniPov^2)
> R2log
[1] 0.2553071
Dejanski R2 je torej se nizji. Sedaj smo sicer pravilno izracunali R2, a sevedno je ocenjevanje parametrov ne-optimalno. Idealno bi namrec moraliparametre ocenjevati tako, da bi minimizirali vsoto kvadratov odklonov ori-
28
●●
●
●
●
●
●
●
●●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●● ●
●
●
●
●
●
●
●●
●
●
●
●●
●
●● ●
●●
●
●●
●●●
●
●
●
●●
●●
●●
●
●●
●
●
●
●
●
●
●
5 10 15 20
4.0
4.5
5.0
5.5
6.0
6.5
Pollogaritemski grafikon
Število let šolanja
Loga
ritem
bru
to p
lace
v 1
000
sit
●●
●
●
●
●●
●
●●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
● ●
● ●●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●● ●●
●
●
●
●●●
●
●
●●
●●
●
●●
●●
●
●
●● ●
●
●
●●●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●● ●
●
●
●
●
●
●●
●
●
●
●
●●●●● ●
●●
●●
●
●●●
●
●
●
●●
●●●●
●
●●
●
●
●
●
●
●
●
5 10 15 20
100
300
500
700
Originalna skala
Število let šolanjaB
ruto
pla
ca v
100
0 si
t G91 ′ = e(4.309+0.079F7)
Slika 9: Exponentna zveza - transformacija
ginalne spremenljivke.
To lahko naredimo takole:
> expZveza<-function(b,y,X){
X<-as.matrix(X)
ss<-sum((y - exp(cbind(1,X)%*%b))^2)
return(ss)
}
> optExp<-optim(par=coef(fitLnG91_F7),
fn=expZveza,y=dataLR$G91,X=dataLR[c("F7")])
> resOptim<-dataLR$G91 -
exp(optExp$par[1] + optExp$par[2]*dataLR$F7)
> odkloniPov<-dataLR$G91-mean(dataLR$G91)
> R2optim<-1-sum(resOptim^2)/sum(odkloniPov^2)
> R2optim
[1] 0.29543
> R2log
[1] 0.2553071
> summary(fitG91_F7)$r.sq
[1] 0.2639079
29
●
●
●
●
●
●
●
●
●●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●●
●
●●
●●●
●
●
●
●●
●●
●●
●
●●
●
●
●
●
●
●
●
5 10 15 20
100
200
300
400
500
600
700
Število let šolanja
Bru
to p
laca
v 1
000
sit
G91 ′ = e(4.23+0.092F7)
linearna zvezaeksponentna zveza preko transformacijeeksponentna zveza preko optimizacije
Slika 10: Ocenjevanje nelinearne zveze
> plot(G91~F7,data=dataLR,ylab="Bruto placa v 1000 sit",
xlab="Stevilo let solanja")
> curve(exp(optExp$par[1]+optExp$par[2]*x),add=TRUE,col="blue")
> curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]*x),
add=TRUE,col="red")
> abline(fitG91_F7,col="green3")
> text(x=20,y=650,
labels=bquote(italic(G91)*minute==
italic(e)^(.(round(optExp$par[1],3)) +
.(round(optExp$par[2],3))*italic(F7))),col="blue")
> legend(x=12,y=790,legend=c("linearna zveza",
"eksponentna zveza preko transformacije",
"eksponentna zveza preko optimizacije"),
col=c("green3","red","blue"),lty=1,xjust=0.5,yjust=0,
xpd=TRUE)
Rezultat ocenjevanja je prikazan na Sliki 10. Vidimo pa tudi lahko, da jesedaj R2 znatno vecji kot pri kateremkoli prejsnjem pristopu in znasa 0.3.
30
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●●
●●
●
●●
●●●
●
●
●
●●
● ●
●●
●
●●
●
●
●
●
●
●
●
0 20 40 60 80
100
200
300
400
500
600
700
Tipicno število delovnih ur (vkljucno z nadurami) na teden
Bru
to p
laca
v 1
000
sit
Slika 11: Odnos med bruto placo in tipicnim stevilom delovnih ur na teden
3.4 Multipla regresija
Sedaj razsirimo nas model tako, da vkljucimo se eno intervalno neodvisnospremenljivko in sicer F21 ”Tipicno stevilo delovnih ur (vkljucno z nadurami)na teden”.
Tudi za to spremenljivko je dobro pred vkljucitvijo preveriti obliko njenepovezanosti z odvisno spremenljivko. Leta je prikazana v Sliki 11
> par(mar=mar.def+c(0,0,-3,0))
> plot(G91~F21,data=dataLR,ylab="Bruto placa v 1000 sit",
xlab="Tipicno stevilo delovnih ur (vkljucno z nadurami) na teden")
> lines(lowess(G91~F21,data=dataLR),lwd=2,lty=2,col="red")
> par(mar=mar.def)
Kaksne posebne povezanosti med spremenljivkama ne vidimo. Ker pa zelimoto tudi formalno preveriti, jo bomo vseeno vkljucili v linearno regresijo. Pritem bomo tudi ”kontrolirali” za vpliv izobrazbe, torej ”Stevila let solanja”.Opomba: Pri linearni regresiji vrstni red vkljucitve ni pomemben.
Kljub temu, da bi bila glede na nase podatke bolj primerna nelinearna re-gresija bomo (zaradi pedagoskih razlogov) nadaljevali z linearno. Enostavenpopravek bi bil, ce bi samo zamenjali G91 (bruto placo) z logaritmom te
31
spremenljivke, kar sicer (kot smo videli) ni optimalno.
> fitG91_F7F21<-update(fitG91_F7,.~.+F21)
> #prejsnjemu modelu dodamo dodatno neodvisno spremenljivko
> #ali daljse
> #fitG91_F7F21<-lm(G91~F7+F21,data=dataLR)
> summary(fitG91_F7F21)
Call:
lm(formula = G91 ~ F7 + F21, data = dataLR)
Residuals:
Min 1Q Median 3Q Max
-251.05 -63.37 -15.48 44.15 467.61
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -11.78730 31.90250 -0.369 0.712
F7 19.29801 2.05931 9.371 <2e-16 ***
F21 -0.09568 0.43976 -0.218 0.828
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 101 on 245 degrees of freedom
Multiple R-squared: 0.2641, Adjusted R-squared: 0.258
F-statistic: 43.95 on 2 and 245 DF, p-value: < 2.2e-16
> confint(fitG91_F7F21,level=0.9)
5 % 95 %
(Intercept) -64.461421 40.8868113
F7 15.897893 22.6981217
F21 -0.821762 0.6304029
> summary(fitG91_F7)
Call:
lm(formula = G91 ~ F7, data = dataLR)
Residuals:
Min 1Q Median 3Q Max
-250.92 -64.58 -15.81 44.19 466.99
Coefficients:
32
Estimate Std. Error t value Pr(>|t|)
(Intercept) -15.813 25.938 -0.610 0.543
F7 19.302 2.055 9.391 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 100.9 on 246 degrees of freedom
Multiple R-squared: 0.2639, Adjusted R-squared: 0.2609
F-statistic: 88.2 on 1 and 246 DF, p-value: < 2.2e-16
Za primerjavo smo izpisali se rezultat modela brez spremenljivke F21. Vi-dimo, lahko, da vpliv spremenljivke F21 (kot smo pricakovali glede na Sliko11) ni statisticno znacilen. Posledicno tudi njena vkljucitev ne vpliva bistvenorezultate (R2 se je sicer malce povecal, popravljeni R2 pa malce zmanjsal;vpliv F7 na G91 je ostal skoraj nespremenjen). Vseeno pa je interpretacija re-gresijskih koeficientov pri multipli regresiji malce drugacna. Npr. regresijskikoeficient za stevilo let solanja 19.3 pomeni, da se bruto placa poveca za 19.3tisoc sit tolarjev, ce se stevilo let solanja poveca za eno leto in ostane tipicnostevilo delovnih ur na teden nespremenjeno oz. ce ostanejo vrednosti vsehostalih neodvisnih spremenljivk (tu imamo pac samo eno) nespremenjene.
Pri multipli regresiji je pomemben rezultat tudi F statistika in pripadajociF -test. Leta nam v nasem primeru pove, da lahko pri zanemarljivi stopnjitveganja trdimo, da vsaj ena izmed neodvisnih spremenljivk vpliva na odvi-sno spremenljivko.
Tudi tu bi bilo dobro preveriti porazdelitev rezidualov. To storimo podobnokot pri biavariatni regresiji, le da, ker imamo dve neodvisni spremenljivki bimorali narisati razsevni grafikon 2x (vsakic drugo neodvisno spremenljivkona x osi. Taka grafa sta prikazana na Sliki 12. Tako kot pri bivariatni regresijilahko na 1. grafu jasno opazimo heteroskedasticnost, na drugem pa bi tezkoz gotovostjo prepoznali nek vzorec (na sredini osi x sicer izgleda variabilnostnajvecja, a je tam tudi najvec vrednosti).
> par(mfrow=c(1,2),mar=mar.def-c(0,0,3,0))
> plot(fitG91_F7F21$residuals~dataLR$F7,
ylab="Reziduali", xlab="Stevilo let solanja",
main="")
> plot(fitG91_F7F21$residuals~dataLR$F21,
ylab="Reziduali", xlab="Stevilo tipicnih delovnih ur",
main="")
> par(mfrow=c(1,1),mar=mar.def)
33
●
●
●
●
● ●●
●
●●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●●
●
● ●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
● ●
●
●● ●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
5 10 15 20
−20
00
100
300
Število let šolanja
Rez
idua
li
●
●
●
●
●●●
●
●●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●
●
●
● ●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
● ●●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●●
●●●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●●
●
●
●
●
0 20 40 60 80
−20
00
100
300
Število tipicnih delovnih urR
ezid
uali
Slika 12: Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk
Ker pa je takih grafov lahko pri multipli regresiji veliko, je bolj prakticno,da narisemo samo en graf, kjer na y os nanasamo napovedane vrednosti inne neodvisne spremenljivke. Kot smo ze omenili, tako napovedane vrednostisluzijo kot nek nadomestek za vse neodvisne spremenljivke (saj so napove-dane vrednosti linearne kombinacije neodvisnih spremenljivk). Tak graf jeskupaj z histogramov rezidualov prikazan na Sliki 13.
R -ovi standardni diagnosticni prikazi za linearno regresijo so prikazani naSliki 14.
> par(mfrow=c(1,2))
> plot(fitG91_F7F21$residuals~fitG91_F7F21$fitted,
ylab="Reziduali", xlab="Napovedane vrednosti",
main="")
> hist(fitG91_F7F21$residuals, freq=FALSE, br=15,
xlab="Reziduali", ylab="Gostota",
main="Histogram rezidualov\nz vrisano normalno krivujlo")
> curve(dnorm(x,mean=0,sd=sd(fitG91_F7F21$residuals)),add=TRUE)
> par(mfrow=c(1,1))
> par(mfrow=c(2,2))
> plot(fitG91_F7)
> par(mfrow=c(1,1))
34
●
●
●
●
● ●●
●
●●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●●
●
● ●●
●
●
●●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●● ●
●
●● ●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
● ●
●
●
● ● ●
●
●
●
●
●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●●
●
●
●
●
●
● ●●
●
●
●
●
●●●
●
●●
●
●
●
●
●●
●
●
●
●
0 100 200 300 400
−20
00
200
400
Napovedane vrednosti
Rez
idua
li
Histogram rezidualovz vrisano normalno krivujlo
RezidualiG
osto
ta
−200 0 200 400
0.00
00.
002
0.00
4
Slika 13: Porazdelitev rezidualov
3.5 Vkljucevanje nominalnih/ordinalnih spremenljivk
V linearno regresijo lahko kot kot neodvisne spremenljivke vkljucimo tudi no-minalne spremenljivke in sicer preko umetnih spremenljivk. Umetnih spre-menljivk nam ni potrebno kreirati, saj jih avtomaticno kreira funkcija lm.Kot referencno kategorijo izbere tisto, ki je pri faktorju navedena kot prvav levels (Opomba: Funkcija lm kot nominalne spremenljivke obravnava lespremenljivke tipa factor in character, ki pa jih pred uporabo spremeni v tipfactor).
Pozor: Funkcija lm obravnava spremenljivke tipa ordered oz. urejen factortako, da za njih na poseben nacin izracuna ”kontraste”. Ta nacin ne bomoobravnavali in je razmeroma zahteven za interpretacijo in razumevanje, zatoje priporocljivo, da tudi za ordinalne spremenljivke uporabljate neurejenfactor.
Poglejmo najprej najenostavnejsi primer, ko ima nominalna spremenljivkasamo 2 vrednosti. Torej v nas model vkljucimo se spol.
> fitG91_F7F21gndr<-lm(G91~F7+F21+gndr,data=dataLR)
> summary(fitG91_F7F21gndr)
Call:
lm(formula = G91 ~ F7 + F21 + gndr, data = dataLR)
Residuals:
35
0 100 200 300 400
−20
00
200
400
Fitted values
Res
idua
ls
●
●
●
●
● ●●
●
●●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●●
●
● ●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
● ●
●
●● ●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
Residuals vs Fitted
516
334686
●
●
●
●
●●●
●
●●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
−3 −2 −1 0 1 2 3
−2
02
4Theoretical Quantiles
Sta
ndar
dize
d re
sidu
als
Normal Q−Q
516
3341056
0 100 200 300 400
0.0
0.5
1.0
1.5
2.0
Fitted values
Sta
ndar
dize
d re
sidu
als
●
●
● ●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●● ●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●●
●●
●
●●
●● ●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
Scale−Location516
3341056
0.00 0.01 0.02 0.03 0.04 0.05
−2
02
4
Leverage
Sta
ndar
dize
d re
sidu
als
●
●
●
●
●●●
●
●●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●● ●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●● ●
●
● ●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
Cook's distance
0.5
Residuals vs Leverage
1056334
516
Slika 14: Diagnosticni grafikoni za linearno regresijo
Min 1Q Median 3Q Max
-231.77 -65.77 -15.29 42.33 447.56
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.4098 31.8943 0.232 0.81648
F7 19.4834 2.0226 9.633 < 2e-16 ***
F21 -0.1397 0.4320 -0.323 0.74672
gndrZenski -40.2397 12.6147 -3.190 0.00161 **
---
36
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 99.21 on 244 degrees of freedom
Multiple R-squared: 0.2935, Adjusted R-squared: 0.2848
F-statistic: 33.79 on 3 and 244 DF, p-value: < 2.2e-16
Vidimo lahko, da imamo med rezultati dodatne regresijski koeficient ”gndr-Zenski”. Iz tega vidimo, da je bila kot referencna kategorija vzeta kategorija’Moski’, saj lete ni med koeficienti. Vrednost tega koeficienta -40.2 nam pove,da imajo zenske v povprecju pri enakih vrednostih ostalih spremenljivk (izo-brazba, st. del. ur na teden) za 40.2 tisoc sit tolarjev nizjo placo kot moski.Pri takem kodiranju je vrednost regresijskega koeficienta vedno primerjava iz-brane kategorije z referencno. Vpliv spola je statisticno znacilen pri tveganjumanj kot 0.2%.
Opomba: Klasicna interpretacija v smislu, da se odvisna spremenljivka spre-meni za b[x], ce se x poveca za eno enoto in ostale spremenljivke ostanejonespremenjene tu ni primerna, ker se spol pri neki osebi naceloma ne morespremeniti.
Dodajmo kot spremenljivko se kraj bivanja.
> fitG91_F7F21gndrF5<-lm(G91~F7+F21+gndr+F5,data=dataLR)
> summary(fitG91_F7F21gndrF5)
Call:
lm(formula = G91 ~ F7 + F21 + gndr + F5, data = dataLR)
Residuals:
Min 1Q Median 3Q Max
-213.81 -63.33 -16.85 44.71 451.14
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -4.2475 40.4575 -0.105 0.91647
F7 19.1941 2.0990 9.144 < 2e-16 ***
F21 -0.1255 0.4362 -0.288 0.77383
gndrZenski -41.6081 12.8796 -3.231 0.00141 **
F5Predmestje 11.8477 27.6494 0.428 0.66867
F5Majnse mesto 31.2890 25.9058 1.208 0.22831
F5Vas 12.0239 24.3875 0.493 0.62244
F5Kmetija 10.4558 29.6648 0.352 0.72480
---
37
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 99.59 on 240 degrees of freedom
Multiple R-squared: 0.2997, Adjusted R-squared: 0.2793
F-statistic: 14.68 on 7 and 240 DF, p-value: 6.859e-16
Ker je bila kot referencna kategorija izbrana ”Veliko mesto”, imamo v izpisuregresijske koeficiente za vse ostale kategorije. Vsak izmed teh regresijskihkoeficientov nam poda primerjavo med to neko kategorijo in velikim mestom.Tako nam vrednost koeficienta ”F5Vas”12 nam pove, da imajo osebe, ki zivijona vasi v povprecju pri enakih vrednostih ostalih spremenljivk (izobrazba, st.del. ur na teden, spol) za 12 tisoc sit tolarjev visjo bruto placo kot tisti, kizivijo v velikih mestih.
Opomba: Ce zelimo nastaviti kaksno drugo kategorijo kot referencno, to naj-lazje storimo tako, da zamenjamo vrstni red levels pri faktorju pred klicemfunkcije lm. Ce bi zeleli, da je na primer referencna kategorija ”Manjse me-sto”, lahko to najlazje dosezemo takole:
> dataLR$F5a<-factor(dataLR$F5,
levels=c("Majnse mesto", "Veliko mesto", "Predmestje",
"Vas","Kmetija" ))
> #oz. malce hitreje
> dataLR$F5a<-factor(dataLR$F5,
levels=levels(dataLR$F5)[c(3,1,2,4,5)])
> lm(G91~F7+F21+gndr+F5a,data=dataLR)
Call:
lm(formula = G91 ~ F7 + F21 + gndr + F5a, data = dataLR)
Coefficients:
(Intercept) F7 F21
27.0415 19.1941 -0.1255
gndrZenski F5aVeliko mesto F5aPredmestje
-41.6081 -31.2890 -19.4413
F5aVas F5aKmetija
-19.2651 -20.8332
> #sedaj je kot referencna kategorija uporabljeno "Manjse mesto"
Opazimo lahko, da bi pri enakih vrednostih ostalih neodvisnih spremenljivk vvseh drugih krajih bivanja v povprecju pricakovali vecjo bruto placo tok v ve-likem mestu, vendar pa ni nobeden izmed regresijskih koeficientov statisticnoznacilen (niti pri 10% tveganju).
38
Vendar pa na podlagi tega izpisa ne moremo trditi, da kraj bivanja ne vplivana bruto placo (oz. niti tega, da tega ne moremo trditi pri npr. 10% tve-ganju). Ta preverjanje te domneve bi morali s pomocjo F -testa primerjatita model z modelom brez kraja bivanja (s prejsnjim). Med tem ko na po-samezne regresijske koeficiente in posledicno tudi na teste znacilnosti izborreferencne kategorije vpliva, leta nima vpliva na rezultate F -testa.
> anova(fitG91_F7F21gndr,fitG91_F7F21gndrF5)
Analysis of Variance Table
Model 1: G91 ~ F7 + F21 + gndr
Model 2: G91 ~ F7 + F21 + gndr + F5
Res.Df RSS Df Sum of Sq F Pr(>F)
1 244 2401459
2 240 2380297 4 21162 0.5334 0.7113
Sele ta primerjava nam pove, da bi morali tvegati vec kot 70%, ce bi zeleli tr-diti, da kraj bivanaj vpliva na bruto placo, potem ko kontroliramo za stopnjoizobrazbe, stevilo delovnih ur in spol.
3.6 Interakcije med spremenljivkami
Interakcije med (ucinki) spremenljivk vkljucimo tako, da kot dodatno ne-odvisno spremenljivko v model vkljucimo zmnozek spremenljivk (v primerunominalnih ustrezno kodiranih ⇒ npr. umetne spremenljivke) .
Pozor: Ko navajamo v R -ju ”formulo” (npr: y ˜x1 + x2), znak ”*” pomeni,da zelimo vkljuciti v model izbrane spremenljivke in vse mozne interakcijemed njimi in ne dejanskega mnozenja (npr. upostevajo ste tudi tipi spre-menljivk). Ce zelimo vkljuciti samo interakcijo, potem damo med spremen-ljivki(ke) znak ”:”. Tako je na primer y ˜x1*x2*x3 enako kot y ˜ x1 + x2+ x3 + x1:x2 + x1:x3 + x2:x3. Ce zelimo, da se neka operator (npr. *)interpretira dobesedno, damo izraz kot argument funkciji I (npr. I(x1*x2).
Ce zelimo torej vkljuciti interakcijo med spolom in izobrazbo (to sta edninispremenljivki, ki sta imeli statisticno znacilen vpliv), lahko to naredimo ta-kole.
> fitG91_F7F21gndrF5int<-lm(G91~F7*gndr+F21+F5,data=dataLR)
> #ali takole
> #fitG91_F7F21gndrF5int<-lm(G91~F7+F21+gndr+F5 + F7:gndr,data=dataLR)
> summary(fitG91_F7F21gndrF5int)
39
Call:
lm(formula = G91 ~ F7 * gndr + F21 + F5, data = dataLR)
Residuals:
Min 1Q Median 3Q Max
-197.13 -63.24 -20.27 41.49 437.71
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -47.0885 48.7448 -0.966 0.335
F7 22.8679 3.1445 7.272 5.02e-12 ***
gndrZenski 38.1058 52.5197 0.726 0.469
F21 -0.1345 0.4349 -0.309 0.757
F5Predmestje 10.8219 27.5740 0.392 0.695
F5Majnse mesto 27.2719 25.9551 1.051 0.294
F5Vas 9.9418 24.3505 0.408 0.683
F5Kmetija 12.7703 29.6125 0.431 0.667
F7:gndrZenski -6.4738 4.1358 -1.565 0.119
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 99.29 on 239 degrees of freedom
Multiple R-squared: 0.3068, Adjusted R-squared: 0.2836
F-statistic: 13.22 on 8 and 239 DF, p-value: 8.714e-16
Opazimo lahko, da vpliv interakcije ni statisticno znacilen. Prav tako pa nivec statisticno znacilen vpliv spola. To je posledica multikolinearnosti, kijo bomo omenili v naslednji tocki. Problem lahko zmanjsamo, ce intervalnespremenljivke pred racunanjem interakcije centriramo (od vsake vrednostiodstejemo povprecje). Zaradi lepsega izpisa je bolje, da to naredimo predklicem funkcije lm.
> dataLR$F7centGndrZenski<- (dataLR$F7-mean(dataLR$F7))*
(dataLR$gndr=="Zenski")
> fitG91_F7F21gndrF5int2<-lm(G91~F7+F21+gndr+F5 +
F7centGndrZenski,data=dataLR)
> summary(fitG91_F7F21gndrF5int2)
Call:
lm(formula = G91 ~ F7 + F21 + gndr + F5 + F7centGndrZenski, data = dataLR)
Residuals:
40
Min 1Q Median 3Q Max
-197.13 -63.24 -20.27 41.49 437.71
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -47.0885 48.7448 -0.966 0.33501
F7 22.8679 3.1445 7.272 5.02e-12 ***
F21 -0.1345 0.4349 -0.309 0.75749
gndrZenski -41.0674 12.8455 -3.197 0.00158 **
F5Predmestje 10.8219 27.5740 0.392 0.69506
F5Majnse mesto 27.2719 25.9551 1.051 0.29444
F5Vas 9.9418 24.3505 0.408 0.68343
F5Kmetija 12.7703 29.6125 0.431 0.66668
F7centGndrZenski -6.4738 4.1358 -1.565 0.11884
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 99.29 on 239 degrees of freedom
Multiple R-squared: 0.3068, Adjusted R-squared: 0.2836
F-statistic: 13.22 on 8 and 239 DF, p-value: 8.714e-16
Opazimo lahko, da se je spremenil le koeficient za spol, vsi ostali rezultai(vkljucno z R2 in F -statistiko pa so ostali nespremenjeni.
3.7 Preverjanje predpostavk
3.7.1 Analiza rezidualov
Deloma smo preverjanje predpostavk ze obdelali, ko smo si ogledali diagno-sticne grafikone za porazdelitev rezidualov. Veliko predpostavk je namrecvezanih na porazdelitev rezidualov. Se na zadnjem modelu (z interakcijo 2)poglejmo standardne grafikone za diagnostiko. Grafi so prikazani na Sliki 15.
> par(mfrow=c(2,2))
> plot(fitG91_F7F21gndrF5int2)
> par(mfrow=c(1,1))
Kaj vse lahko razberemo iz teh grafikonov:
� Ze na 1. grafu (levo zgoraj) opazimo, da je variabilnost rezidualov ve-cja pri vecjih placah kot pri manjsih. To lahko se lepse opazimo na3. grafu (levo spodaj). Graf je podoben zgornjemu (1.), le da sedaj
41
0 100 200 300 400
−20
00
200
400
Fitted values
Res
idua
ls
●
●
●
●
●●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●●
●●
●
●●
●
●
●●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
● ●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●●● ●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
● ●
●●●
●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
Residuals vs Fitted
516334
686
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●●
●●
●
●●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
−3 −2 −1 0 1 2 3
−2
−1
01
23
45
Theoretical QuantilesS
tand
ardi
zed
resi
dual
s
Normal Q−Q
516334
686
0 100 200 300 400
0.0
0.5
1.0
1.5
2.0
Fitted values
Sta
ndar
dize
d re
sidu
als
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●● ●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●
Scale−Location516
334
686
0.00 0.02 0.04 0.06 0.08 0.10 0.12
−2
02
4
Leverage
Sta
ndar
dize
d re
sidu
als
●
●
●
●
●●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
● ●
●
●●
●●
●
●●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
● ●●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●●●
●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●●
●
●
●
Cook's distance
Residuals vs Leverage
334
1056
516
Slika 15: Diagnosticni grafikoni za linearno regresijo - model z interakcijo
namesto ”surovih” rezidualov nanasamo na y os korenjene absolutnestandardizirane reziduale. Pri tem je bistveno predvsem to, da nana-samo absolutne vrednosti. Rdeca crta, ki prikazuje glajena povprecja bimorala biti v primeru homeoskedasticnosti (izpolnjene predpostavke)ravna, pri nas pa je ocitno, da od takrat, ko imamo neko vecje steviloenot vseskozi narasca. Torej je prisotna heteroskedasticnost.
� Na 2. grafu (desno zgoraj) lahko opazimo, da tocke ne lezijo na premici,ker pomeni, da se reziduali ne porazdeljujejo normalno. Predvsem vi-dimo, da imamo prevec zelo velikih vrednosti. Enako lahko razberemotudi iz histograma razidualov z vrisano normalno krivuljo na Sliki 16.
42
Reziduali
Gos
tota
−200 −100 0 100 200 300 400
0.00
00.
001
0.00
20.
003
0.00
40.
005
Slika 16: Histogram rezidualov
> par(mar=mar.def-c(0,0,3,0))
> hist(fitG91_F7F21gndrF5int2$res,freq=FALSE,xlab="Reziduali",
ylab="Gostota",main="",br=15)
> curve(dnorm(x,sd=sd(fitG91_F7F21gndrF5int2$res)),add=TRUE)
> par(mar=mar.def)
Za preverjanje heteroskedasticnosti obstaja v paketku car tudi formalni test(funkcija ncvTest - test nekostantne variance napak). Prav tako ta paketekponuja se dodatni grafikon, ki narise studentizirane residuale v odvisnostiod napovedanih vrednosti (funkcija spreadLevelPlot), ki poleg tega tudi pre-dlaga tudi transformacijo odvisne spremenljivke za odpravljanje problemaheteroskedasticnosti. Graf je prikazan na Sliki 17.
> ncvTest(fitG91_F7F21gndrF5int2)
Non-constant Variance Score Test
Variance formula: ~ fitted.values
Chisquare = 18.13071 Df = 1 p = 2.062477e-05
> spreadLevelPlot(fitG91_F7F21gndrF5int2)
Suggested power transformation: 0.4406967
43
50 100 200 500
0.01
0.05
0.20
0.50
2.00
5.00
Spread−Level Plot for fitG91_F7F21gndrF5int2
Fitted Values
Abs
olut
e S
tude
ntiz
ed R
esid
uals
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●
Slika 17: Grafikon za ocenjevanje heteroskedasticnosti
Test ugotovi, da lahko hipotezo o homoeskedasticnosti zavrnemo pri zane-marljivi stopnji tvegana. Iz grafa na Sliki 17 pa zopet vidimo, da variabilnostrezidualov z visanjem napovedanih vrednosti narasca. Na podlagi regresij-skega koeficienta premice v tem grafu predlaga tudi potenco, na katero najbi potencirali odvisno spremenljivko.
3.7.2 Multikulinearnost
Multikolinearnost lahko ocenjujemo z vec statistikami.
Poglejmo so najprej izracun faktorja povecanje variance (variance inflationfactor - vif) in toleranc. Vif lahko izracunamo s funkcijo vif iz paketka car,tolerance so pa kar 1/vif . Mere bomo izracunali za oba modela z interakcijo(ki se razlikujeta v parametrizacji interakcije). Opomnik: Drugo prame-terizacijo smo izbrali ravno zato, ker zmanjsuje multikolinearnsot. Te dvestatistike sta priporocljivi, ker sta razumljivi in pokazeta, pri katerih spre-menljivkah se problem pojavlja.
> #prvi model
> vif(fitG91_F7F21gndrF5int) #variance inflation factor
GVIF Df GVIF^(1/(2*Df))
44
F7 2.415068 1 1.554049
gndr 17.337163 1 4.163792
F21 1.013190 1 1.006573
F5 1.157215 4 1.018420
F7:gndr 18.619018 1 4.314976
> 1/vif(fitG91_F7F21gndrF5int)[,1] #tolerance
F7 gndr F21 F5 F7:gndr
0.41406710 0.05767956 0.98698194 0.86414401 0.05370852
> #drugi model
> vif(fitG91_F7F21gndrF5int2) #variance inflation factor
GVIF Df GVIF^(1/(2*Df))
F7 2.415068 1 1.554049
F21 1.013190 1 1.006573
gndr 1.037138 1 1.018400
F5 1.157215 4 1.018420
F7centGndrZenski 2.295433 1 1.515069
> 1/vif(fitG91_F7F21gndrF5int2)[,1] #tolerance
F7 F21 gndr
0.4140671 0.9869819 0.9641922
F5 F7centGndrZenski
0.8641440 0.4356476
Opazimo lahko, da so tolerance pri spolu in interakciji med spolom in izo-brazbo veliko visje pri drugem modelu, faktorji povecanja variance pa nizji.
Dober pokazatelj multikolinearnosti je tudi korelacijska matrika med oce-nami regresijskih koeficientov. Ta kaze na problem, ce so korelacije po ab-solutni vrednosti blizu 1. S funkcijo vcov dobimo variancno/kovariancnomatriko, ki pa jo lahko s funkcijo cov2cor pretvorimo v korelacijsko.
> #prvi model
> vcov(fitG91_F7F21gndrF5int) #kovariancna matrika
(Intercept) F7 gndrZenski
(Intercept) 2376.058251 -121.04028443 -1487.5545585
F7 -121.040284 9.88768631 119.9715279
gndrZenski -1487.554559 119.97152785 2758.3179765
F21 -8.075838 -0.01139956 -0.1632039
F5Predmestje -481.705671 -0.32701853 -35.5995592
F5Majnse mesto -428.939701 -6.25464422 -140.6111751
45
F5Vas -525.100533 0.32286611 -67.7917432
F5Kmetija -700.010954 15.07665791 119.0181288
F7:gndrZenski 113.194180 -9.70674734 -210.6192956
F21 F5Predmestje F5Majnse mesto
(Intercept) -8.07583794 -481.7056711 -428.9397008
F7 -0.01139956 -0.3270185 -6.2546442
gndrZenski -0.16320392 -35.5995592 -140.6111751
F21 0.18916513 -0.1770928 0.3446665
F5Predmestje -0.17709277 760.3269730 494.3549077
F5Majnse mesto 0.34466651 494.3549077 673.6659708
F5Vas 0.56923944 494.2147336 497.1741677
F5Kmetija -0.12356095 494.6973738 485.6823293
F7:gndrZenski 0.02366699 2.7104314 10.6140303
F5Vas F5Kmetija F7:gndrZenski
(Intercept) -525.1005327 -700.0109540 113.19417954
F7 0.3228661 15.0766579 -9.70674734
gndrZenski -67.7917432 119.0181288 -210.61929562
F21 0.5692394 -0.1235609 0.02366699
F5Predmestje 494.2147336 494.6973738 2.71043144
F5Majnse mesto 497.1741677 485.6823293 10.61403028
F5Vas 592.9468195 499.5199340 5.50129029
F5Kmetija 499.5199340 876.9021290 -6.11538212
F7:gndrZenski 5.5012903 -6.1153821 17.10494781
> cov2cor(vcov(fitG91_F7F21gndrF5int)) #kovariancna matrika
(Intercept) F7 gndrZenski
(Intercept) 1.0000000 -0.789685301 -0.581061628
F7 -0.7896853 1.000000000 0.726454946
gndrZenski -0.5810616 0.726454946 1.000000000
F21 -0.3809242 -0.008335278 -0.007144764
F5Predmestje -0.3583876 -0.003771593 -0.024582285
F5Majnse mesto -0.3390357 -0.076636024 -0.103151457
F5Vas -0.4423908 0.004216647 -0.053008653
F5Kmetija -0.4849542 0.161913171 0.076527124
F7:gndrZenski 0.5614805 -0.746389479 -0.969650251
F21 F5Predmestje F5Majnse mesto
(Intercept) -0.380924158 -0.358387636 -0.33903567
F7 -0.008335278 -0.003771593 -0.07663602
gndrZenski -0.007144764 -0.024582285 -0.10315146
F21 1.000000000 -0.014766586 0.03053207
F5Predmestje -0.014766586 1.000000000 0.69074277
46
F5Majnse mesto 0.030532069 0.690742767 1.00000000
F5Vas 0.053748528 0.736050510 0.78664426
F5Kmetija -0.009593678 0.605848231 0.63190885
F7:gndrZenski 0.013157142 0.023767163 0.09887742
F5Vas F5Kmetija F7:gndrZenski
(Intercept) -0.442390758 -0.484954208 0.56148050
F7 0.004216647 0.161913171 -0.74638948
gndrZenski -0.053008653 0.076527124 -0.96965025
F21 0.053748528 -0.009593678 0.01315714
F5Predmestje 0.736050510 0.605848231 0.02376716
F5Majnse mesto 0.786644260 0.631908846 0.09887742
F5Vas 1.000000000 0.692738603 0.05462555
F5Kmetija 0.692738603 1.000000000 -0.04993294
F7:gndrZenski 0.054625549 -0.049932943 1.00000000
> #drugi model
> vcov(fitG91_F7F21gndrF5int2) #kovariancna matrika
(Intercept) F7 F21
(Intercept) 2376.058251 -121.04028443 -8.07583794
F7 -121.040284 9.88768631 -0.01139956
F21 -8.075838 -0.01139956 0.18916513
gndrZenski -103.208000 1.25957350 0.12623952
F5Predmestje -481.705671 -0.32701853 -0.17709277
F5Majnse mesto -428.939701 -6.25464422 0.34466651
F5Vas -525.100533 0.32286611 0.56923944
F5Kmetija -700.010954 15.07665791 -0.12356095
F7centGndrZenski 113.194180 -9.70674734 0.02366699
gndrZenski F5Predmestje F5Majnse mesto
(Intercept) -103.2079998 -481.7056711 -428.9397008
F7 1.2595735 -0.3270185 -6.2546442
F21 0.1262395 -0.1770928 0.3446665
gndrZenski 165.0071143 -2.4514198 -10.8032968
F5Predmestje -2.4514198 760.3269730 494.3549077
F5Majnse mesto -10.8032968 494.3549077 673.6659708
F5Vas -0.5118503 494.2147336 497.1741677
F5Kmetija 44.2279918 494.6973738 485.6823293
F7centGndrZenski -1.4285428 2.7104314 10.6140303
F5Vas F5Kmetija F7centGndrZenski
(Intercept) -525.1005327 -700.0109540 113.19417954
F7 0.3228661 15.0766579 -9.70674734
F21 0.5692394 -0.1235609 0.02366699
47
gndrZenski -0.5118503 44.2279918 -1.42854276
F5Predmestje 494.2147336 494.6973738 2.71043144
F5Majnse mesto 497.1741677 485.6823293 10.61403028
F5Vas 592.9468195 499.5199340 5.50129029
F5Kmetija 499.5199340 876.9021290 -6.11538212
F7centGndrZenski 5.5012903 -6.1153821 17.10494781
> cov2cor(vcov(fitG91_F7F21gndrF5int2)) #kovariancna matrika
(Intercept) F7 F21
(Intercept) 1.0000000 -0.789685301 -0.380924158
F7 -0.7896853 1.000000000 -0.008335278
F21 -0.3809242 -0.008335278 1.000000000
gndrZenski -0.1648289 0.031183499 0.022595579
F5Predmestje -0.3583876 -0.003771593 -0.014766586
F5Majnse mesto -0.3390357 -0.076636024 0.030532069
F5Vas -0.4423908 0.004216647 0.053748528
F5Kmetija -0.4849542 0.161913171 -0.009593678
F7centGndrZenski 0.5614805 -0.746389479 0.013157142
gndrZenski F5Predmestje F5Majnse mesto
(Intercept) -0.164828947 -0.358387636 -0.33903567
F7 0.031183499 -0.003771593 -0.07663602
F21 0.022595579 -0.014766586 0.03053207
gndrZenski 1.000000000 -0.006920957 -0.03240281
F5Predmestje -0.006920957 1.000000000 0.69074277
F5Majnse mesto -0.032402810 0.690742767 1.00000000
F5Vas -0.001636378 0.736050510 0.78664426
F5Kmetija 0.116270710 0.605848231 0.63190885
F7centGndrZenski -0.026889395 0.023767163 0.09887742
F5Vas F5Kmetija F7centGndrZenski
(Intercept) -0.442390758 -0.484954208 0.56148050
F7 0.004216647 0.161913171 -0.74638948
F21 0.053748528 -0.009593678 0.01315714
gndrZenski -0.001636378 0.116270710 -0.02688940
F5Predmestje 0.736050510 0.605848231 0.02376716
F5Majnse mesto 0.786644260 0.631908846 0.09887742
F5Vas 1.000000000 0.692738603 0.05462555
F5Kmetija 0.692738603 1.000000000 -0.04993294
F7centGndrZenski 0.054625549 -0.049932943 1.00000000
Zopet je glavna razlika med obema modeloma povezana z spolo in interakcijomed spolom in izobrazbo. Tokrat je dejanska razlika prav v korelaciji med
48
ocenama teh dveh koeficientov. Med tem ko je ta pri prvem modelu poabsolutni vrednosti zelo blizu 1 (-0.97), je ta pri drugem modelu skoraj 0(-0.03). Razmeroma visoka je tudi korelacija med ocenama koeficientov zaizobrazbo in interakcijo med spolom in izobrazbo, ki je -0.75. Preostalerazmeroma visoke korelacije so le se med sklopom spremenljivk, ki merijo krajbivanja (ker merijo isto spremenljivko je to pricakovano) in med nekaterimispremenljivkami in konstanto (kar pa ni tako pomembno).
Multikolinearnost lahko tudi ocenimo s pomocjo indeksov pogojnosti in la-stnih vrednosti matrike neodvisnih spremenljivk (v kateri so namesto nomi-nalnih spremenljivk vkljucene umetne spremenljivke). Obstaja pa vec naci-nov, kako izracunati indekse pogojnosti. V nadaljevanju predstavljamo dva.
> fitG91_F7F21gndrF5int2<-lm(G91~F7+F21+gndr+F5 +
F7centGndrZenski,data=dataLR,x=TRUE)
> #ponovno smo ocenili model s prametrom x=TRUE
> #da dobimo kot rezultat tudi matriko neodvisnih spremenljivk
> fitG91_F7F21gndrF5int<-lm(G91~F7*gndr+F21+F5,data=dataLR
,x=TRUE)
> colinEigen<-function(fit,SPSS=TRUE){
#funkcija za racunanje lastnih vrednosti in indeksov pogojnosti
X<-fit["x"]
if(is.null(X)){
stop("Fit must include x. See ?lm for details\n")
}else{
X<-fit$x
tXX<-t(X)%*%X
if(SPSS){
tXX<-cov2cor(tXX)
}
e <- eigen(tXX)
return(list(eigen=e$var,condIndex=sqrt(e$val[1]/e$val)))
}
}
> #prvi model
> #1. nacin
> colinEigen(fitG91_F7F21gndrF5int,SPSS=FALSE)
$eigen
NULL
$condIndex
49
[1] 1.000000 6.318082 10.752241 80.115827 108.014354
[6] 131.351366 179.029772 361.679199 480.242041
> # oziroma taki, kot jih vrne SPSS
> colinEigen(fitG91_F7F21gndrF5int,SPSS=TRUE)
$eigen
NULL
$condIndex
[1] 1.000000 2.146776 2.233991 2.234663 2.669967
[6] 7.101118 7.681270 12.917389 25.718315
> #drugi model
> #1. nacin
> colinEigen(fitG91_F7F21gndrF5int2,SPSS=FALSE)
$eigen
NULL
$condIndex
[1] 1.000000 8.946378 22.729709 80.053791 89.403037
[6] 108.823982 131.390720 255.353861 420.944167
> # oziroma taki, kot jih vrne SPSS
> colinEigen(fitG91_F7F21gndrF5int2,SPSS=TRUE)
$eigen
NULL
$condIndex
[1] 1.000000 1.974282 2.073893 2.087201 2.175323
[6] 3.178904 6.639132 9.238048 20.062913
Ne glede na izracun so indeksi pogojnosti pri prvem modelu bistveno vecji,kar nakazuje, da je tam multikolinearnost vecji problem.
3.7.3 Ocene oblike zveze
Povedali smo ze, da je dobro za vsako neodvisno spremenljivko, vkljuceni vmodel, pogledati razsevni grafikon z odvisno spremenljivko. Vendar pa tagrafikon vcasih ne razkrije prave zveze, ker je prava zveza ”zakrita” z vpliviostalih neodvisnih spremenljivk. V tem primeru pride prav ”component +
50
residual plot” (oz. graf delnih ostankov - vprasljiv prevod), kjer na y osnanasamo vrednosti odvisne spremenljivke, od katere prej odstejemo vpliveostalih spremenljivk. Leti so na voljo preko funkcije crPlots iz paketka car.Omeniti je potrebno, da je pogoj za uporabo funkcije, da v modelu ni in-terakcij, zato jih bomo uporabili na zadnjem modelu, kjer se nismo imeliinterakcije. Rezultat je prikazan na Sliki 18
Nadgradnja teh grafikonov so CERES grafi, ki so na voljo v funkciji ceresPlotsiz istega paketka. Za razliko od prejsnje leta ne narise grafov za nominalnespremenljivke. Rezultat je na Sliki 19.
> # "component + residual plot"
> crPlots(fitG91_F7F21gndrF5)
> # "Ceres" graf - bolj napredna verzija zgornjega
> ceresPlots(fitG91_F7F21gndrF5)
Najbolj zanimiv zakljucek, ki pa se je videl ze na navadnih razsevnih grafiko-nih je, da izobrazba pravzaprav vpliva na placo sele, ko preseze 12 leta. Kotresitev tega problema lahko v model vkljucimo se eno spremenljivko in sicer”stevilo let solanja nad 12 let”, ki bo imela vrednost 0 za vse, ki imajo 12 letsolanja ali manj.
> dataLR$F7nad12 <- dataLR$F7 - 12
> dataLR$F7nad12[dataLR$F7nad12<0]<-0
> fitG91_F7F21gndrF5F7nad12<-lm(G91~F7*gndr+F7nad12*gndr+F21+F5,
data=dataLR)
> summary(fitG91_F7F21gndrF5F7nad12)
Call:
lm(formula = G91 ~ F7 * gndr + F7nad12 * gndr + F21 + F5, data = dataLR)
Residuals:
Min 1Q Median 3Q Max
-251.44 -56.03 -17.08 41.66 404.25
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 184.95093 65.88340 2.807 0.00541
F7 -0.07983 5.47966 -0.015 0.98839
gndrZenski -172.38620 79.31709 -2.173 0.03074
F7nad12 38.49096 7.71005 4.992 1.16e-06
F21 -0.07650 0.41999 -0.182 0.85562
F5Predmestje 16.66680 26.36133 0.632 0.52784
51
5 10 15 20
−20
00
100
200
300
400
500
F7
Com
pone
nt+
Res
idua
l(G91
)
●
●
●
●
● ●●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●● ●
●
●
●●
●
●
●●
●
●
●●●
●●
●●
●
●●
●
●
●
●
●
●
●
0 20 40 60 80
−20
00
100
200
300
400
F21
Com
pone
nt+
Res
idua
l(G91
)
●
●
●
●●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
● ●
●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●●
●
●
●
●
●
● ●●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●
Moški Ženski
−20
00
100
200
300
400
gndr
Com
pone
nt+
Res
idua
l(G91
)
●
●
●
●
●
●
●
●
●
●
●
●
●
Veliko mesto Majnše mesto Kmetija
−20
00
100
200
300
400
F5
Com
pone
nt+
Res
idua
l(G91
)
Component + Residual Plots
Slika 18: Grafikoni delnih ostankov
F5Majnse mesto 36.87879 24.84612 1.484 0.13906
F5Vas 21.78325 23.35988 0.933 0.35202
F5Kmetija 3.48126 28.40555 0.123 0.90256
F7:gndrZenski 13.18475 7.23470 1.822 0.06965
gndrZenski:F7nad12 -32.37559 10.89994 -2.970 0.00328
(Intercept) **
F7
gndrZenski *
F7nad12 ***
F21
52
5 10 15 20
−90
0−
700
−50
0−
300
F7
CE
RE
S R
esid
ual(G
91)
●
●
●
●
● ●●
●
●●
●
●
●
●
●●●
●
●●
●
●
●
●
●●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
● ●
●
●●●
●
●
●●
●●
●
●
●●
●
●
●
●●
●
●
●
● ●
●
●
●
●●
●
●
●●
●
● ●●
●
●
●
●
●
●
●●
●
●
●
●● ●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●●●●● ●
●
●
●● ●
●
●●
●
●
●●●●
● ●●
●
●●●
●
●
●
●
●
●
0 20 40 60 80
100
300
500
700
F21C
ER
ES
Res
idua
l(G91
)
●
●
●
●●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●● ●
●
● ●
●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
● ●●●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
● ●
● ●●
●●●
●
●
●
●
● ●●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
CERES Plots
Slika 19: Ceres grafikoni
F5Predmestje
F5Majnse mesto
F5Vas
F5Kmetija
F7:gndrZenski .
gndrZenski:F7nad12 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 94.77 on 237 degrees of freedom
Multiple R-squared: 0.3738, Adjusted R-squared: 0.3474
F-statistic: 14.15 on 10 and 237 DF, p-value: < 2.2e-16
> summary(fitG91_F7F21gndrF5) #za primerjavo
Call:
lm(formula = G91 ~ F7 + F21 + gndr + F5, data = dataLR)
Residuals:
Min 1Q Median 3Q Max
-213.81 -63.33 -16.85 44.71 451.14
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -4.2475 40.4575 -0.105 0.91647
53
F7 19.1941 2.0990 9.144 < 2e-16 ***
F21 -0.1255 0.4362 -0.288 0.77383
gndrZenski -41.6081 12.8796 -3.231 0.00141 **
F5Predmestje 11.8477 27.6494 0.428 0.66867
F5Majnse mesto 31.2890 25.9058 1.208 0.22831
F5Vas 12.0239 24.3875 0.493 0.62244
F5Kmetija 10.4558 29.6648 0.352 0.72480
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 99.59 on 240 degrees of freedom
Multiple R-squared: 0.2997, Adjusted R-squared: 0.2793
F-statistic: 14.68 on 7 and 240 DF, p-value: 6.859e-16
> par(mfrow=c(2,2))
> plot(fitG91_F7F21gndrF5F7nad12)
> par(mfrow=c(1,1))
Opazimo lahko, da vpliv spremenljivke F7 ni vec statisticno znacilen, karnam pove, da izobrazba do 12 let ne vpliva na bruto placo. Ker pa je koefi-cient spremenljivke F7nad12 mocno statisticno znacilen vidimo, da zacne resizobrazba vplivati na bruto placo sele, ko preseze 12 let oz. po srednji soli.Da je model sedaj bistveno boljsi prica tudi znatno vecji R2.
Diagnosticni grafikoni so prikazani na Sliki 20. Rezultati so sicer malce boljsi,a problem heteroskedasticnosti ostaja.
3.8 Za razmislek
Model bi se dalo ze bolj nadgrajevati. Ze samo vpliv izobrazbe na placoza razlicne skupine je zelo kompleksna stvar. Kaj ce v novi model dodamointerakcijo?
> dataLR$F7centGndrZenski<- (dataLR$F7-mean(dataLR$F7))*
(dataLR$gndr=="Zenski")
> dataLR$F7nad12centGndrZenski <- (dataLR$F7nad12-
mean(dataLR$F7nad12))*(dataLR$gndr=="Zenski")
> fitG91_F7F21gndrF5F7nad12int<-lm(G91~F7+F7nad12+gndr+F21+F5+
F7centGndrZenski + F7nad12centGndrZenski, data=dataLR)
> summary(fitG91_F7F21gndrF5F7nad12int)
54
100 200 300 400 500
−20
00
200
400
Fitted values
Res
idua
ls
●
●
●
●
●●
●
●
● ●
●
●
● ●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●●
●
●●
●
●
●
●●
●●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
● ●●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●●
●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●●
●
● ●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●●
●●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●●
●
●
●
Residuals vs Fitted
51668640
●
●
●
●
●●
●
●
●●
●
●
●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
● ●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
● ●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●●
●●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●●
●
●
●
−3 −2 −1 0 1 2 3
−2
02
4Theoretical Quantiles
Sta
ndar
dize
d re
sidu
als
Normal Q−Q
516
68640
100 200 300 400 500
0.0
0.5
1.0
1.5
2.0
Fitted values
Sta
ndar
dize
d re
sidu
als
●
●
● ●●
●
●
●
● ●
●
●
● ●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
Scale−Location516
68640
0.00 0.05 0.10 0.15 0.20 0.25 0.30
−2
02
4
Leverage
Sta
ndar
dize
d re
sidu
als
●
●
●
●
●●
●
●
●●
●
●
●● ●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●●
●
●●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
● ●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●
●
● ●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●●
●●●
●
●
●
●
● ●●
●
●●
●
●
●
●
●
●●
●
●
●
Cook's distance0.5
0.5
1
Residuals vs Leverage
334
9901417
Slika 20: Diagnosticni grafikoni za linearno regresijo
Call:
lm(formula = G91 ~ F7 + F7nad12 + gndr + F21 + F5 + F7centGndrZenski +
F7nad12centGndrZenski, data = dataLR)
Residuals:
Min 1Q Median 3Q Max
-251.44 -56.03 -17.08 41.66 404.25
Coefficients:
Estimate Std. Error t value Pr(>|t|)
55
(Intercept) 184.95093 65.88340 2.807 0.00541
F7 -0.07983 5.47966 -0.015 0.98839
F7nad12 38.49096 7.71005 4.992 1.16e-06
gndrZenski -49.51958 12.43551 -3.982 9.09e-05
F21 -0.07650 0.41999 -0.182 0.85562
F5Predmestje 16.66680 26.36133 0.632 0.52784
F5Majnse mesto 36.87879 24.84612 1.484 0.13906
F5Vas 21.78325 23.35988 0.933 0.35202
F5Kmetija 3.48126 28.40555 0.123 0.90256
F7centGndrZenski 13.18475 7.23470 1.822 0.06965
F7nad12centGndrZenski -32.37559 10.89994 -2.970 0.00328
(Intercept) **
F7
F7nad12 ***
gndrZenski ***
F21
F5Predmestje
F5Majnse mesto
F5Vas
F5Kmetija
F7centGndrZenski .
F7nad12centGndrZenski **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 94.77 on 237 degrees of freedom
Multiple R-squared: 0.3738, Adjusted R-squared: 0.3474
F-statistic: 14.15 on 10 and 237 DF, p-value: < 2.2e-16
To nam pravzaprav nakazuje, da bi morda morali ze na zacetku gledati grafna Sliki 21
> plot(G91~F7,data=dataLR,ylab="Bruto placa v 1000 sit",
xlab="Stevilo let solanja",pch=as.numeric(gndr),
col=ifelse(gndr=="Moski","blue","red"))
> dataLRzen<-dataLR[dataLR$gndr=="Zenski",]
> lines(lowess(G91~F7,data=dataLRzen),lwd=2,lty=2,col="red")
> dataLRmos<-dataLR[dataLR$gndr=="Moski",]
> lines(lowess(G91~F7,data=dataLRmos),lwd=2,lty=2,col="blue")
> legend(x=1,y=750,legend=c("Moski","Zenske"),lty=2,
col=c("blue","red"),pch=1:2,yjust=1,xjust=0,
56
●
●
●
●●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●●
●●
●●
●
●
●
●
5 10 15 20
100
200
300
400
500
600
700
Število let šolanja
Bru
to p
laca
v 1
000
sit
● MoškiŽenske
Slika 21: Odnos med izobrazbo in bruto placo po spolu
merge=FALSE,lwd=2)
3.9 Izracun ”na roke”
Za bolje razumevanje je pogosto dobro, da naredimo izracune brez vgrajenihfunkcij (oz. s cim bolj enostavnimi). Sedaj ponovimo nas primer (recimomodel z interakcijo) se takole.
Najprej pripravimo podatke. Pri tem je predvsem pomembno, da naredimoumetne spremenljivke za nominalne spremenljivke.
> y<-dataLR$G91 #odvisna spremenljivka
> X<-cbind(konstanta=1,dataLR[c("F7","F21")],
#konstanta in itervalni nedovisni spremenljivki
gndrZenski=as.numeric(dataLR$gndr=="Zenski"),
F5Predmestje=as.numeric(dataLR$F5=="Predmestje"),
"F5Majnse mesto"=as.numeric(dataLR$F5=="Majnse mesto"),
F5Vas=as.numeric(dataLR$F5=="Vas"),
F5Kmetija=as.numeric(dataLR$F5=="Kmetija"),
F7centGndrZenski=(dataLR$F7-mean(dataLR$F7))*
(dataLR$gndr=="Zenski")
57
)
> X<-as.matrix(X)
> #preverimo rezultat
> X[1:10,]
konstanta F7 F21 gndrZenski F5Predmestje F5Majnse mesto
1 1 16 45 1 0 1
3 1 4 40 1 0 1
4 1 11 48 1 0 1
7 1 12 40 0 0 1
16 1 8 45 1 0 0
18 1 11 45 0 0 0
20 1 8 48 1 0 0
40 1 12 40 0 0 0
55 1 11 55 0 0 0
66 1 11 40 0 0 0
F5Vas F5Kmetija F7centGndrZenski
1 0 0 3.770161
3 0 0 -8.229839
4 0 0 -1.229839
7 0 0 0.000000
16 1 0 -4.229839
18 1 0 0.000000
20 1 0 -4.229839
40 0 1 0.000000
55 0 1 0.000000
66 1 0 0.000000
> #to je enako kot
> fitG91_F7F21gndrF5int2$x[1:10,]
(Intercept) F7 F21 gndrZenski F5Predmestje
1 1 16 45 1 0
3 1 4 40 1 0
4 1 11 48 1 0
7 1 12 40 0 0
16 1 8 45 1 0
18 1 11 45 0 0
20 1 8 48 1 0
40 1 12 40 0 0
55 1 11 55 0 0
66 1 11 40 0 0
58
F5Majnse mesto F5Vas F5Kmetija F7centGndrZenski
1 1 0 0 3.770161
3 1 0 0 -8.229839
4 1 0 0 -1.229839
7 1 0 0 0.000000
16 0 1 0 -4.229839
18 0 1 0 0.000000
20 0 1 0 -4.229839
40 0 0 1 0.000000
55 0 0 1 0.000000
66 0 1 0 0.000000
Spomnimo se, da je matricna formula za izracun regresijskih koeficientov:
b = (X′X)−1X′y
Formuli za izracun napovedi in rezidualov pa:
y′ = Xb
e = y − y′
Na podlagi tega lahko izracunamo s[e], R2, popravljen R2pop in F -statistiko:
se =
n∑i=1
e2
n− k
R2 =var(y′)
var(y)
R2pop = 1− s2e
var(y)= 1− (1−R2)
n− 1
n− k
F =
n∑i=1
y′i − y
k − 1n∑
i=1
yi − y′i
n− k
=
R2
k − 11−R2
n− k
Izracunajmo:
> b<-solve(t(X) %*% X) %*% t(X) %*% y
> b
59
[,1]
konstanta -47.0885256
F7 22.8678604
F21 -0.1344513
gndrZenski -41.0673862
F5Predmestje 10.8218633
F5Majnse mesto 27.2718630
F5Vas 9.9417980
F5Kmetija 12.7702718
F7centGndrZenski -6.4737683
> #kar je enako kot (do nantancnosti racunalnika)
> coef(fitG91_F7F21gndrF5int2)
(Intercept) F7 F21
-47.0885256 22.8678604 -0.1344513
gndrZenski F5Predmestje F5Majnse mesto
-41.0673862 10.8218633 27.2718630
F5Vas F5Kmetija F7centGndrZenski
9.9417980 12.7702718 -6.4737683
> yNap <- X %*% b
> e <- y - yNap
> n<-dim(X)[1]
> k<-length(b)
> sErr<-sqrt(sum(e^2)/(n-k))
> sErr
[1] 99.28916
> #kar je enako kot
> summary(fitG91_F7F21gndrF5int2)$sigma
[1] 99.28916
> R2=var(yNap)/var(y)
> R2
[,1]
[1,] 0.3068443
> #kar je enako kot
> summary(fitG91_F7F21gndrF5int2)$r.squared
[1] 0.3068443
60
> R2pop<-1-sErr^2/var(y)
> R2pop
[1] 0.2836424
> #kar je enako kot
> summary(fitG91_F7F21gndrF5int2)$adj.r.squared
[1] 0.2836424
> F=(R2/(k-1))/((1-R2)/(n-k))
> F
[,1]
[1,] 13.22498
> (df1<-k-1)
[1] 8
> (df2<-n-k)
[1] 239
> pf(q=F,df1=df1,df2=df2,lower.tail =FALSE)
[,1]
[1,] 8.714127e-16
> cat(capture.output(summary(fitG91_F7F21gndrF5int2))[26],"\n")
F-statistic: 13.22 on 8 and 239 DF, p-value: 8.714e-16
Izracunajmo se variancno-kovariancno matriko za ocene regresijskih koefici-entov in iz nje se standardne napake za ocene regresijskih koeficientov. Napodlagi variancno-kovariancne matrike lahko izracunamo se korelacijsko ma-triko ocen regresijskih koeficientov (za ocenjevanje multikolinearnosti):
Sb = s2e · X′X−1
se(bi) =√Sb[i, i]
w = diag
(1√
diag(Sb)
)Cb = w · Sb · w
Na podlagi ocen standardnih napak pa lahko izracunamo t-statistike kott = bi/se(bi)).
61
> Sb<-sErr^2*solve(t(X) %*% X)
> Sb
konstanta F7 F21
konstanta 2376.058251 -121.04028443 -8.07583794
F7 -121.040284 9.88768631 -0.01139956
F21 -8.075838 -0.01139956 0.18916513
gndrZenski -103.208000 1.25957350 0.12623952
F5Predmestje -481.705671 -0.32701853 -0.17709277
F5Majnse mesto -428.939701 -6.25464422 0.34466651
F5Vas -525.100533 0.32286611 0.56923944
F5Kmetija -700.010954 15.07665791 -0.12356095
F7centGndrZenski 113.194180 -9.70674734 0.02366699
gndrZenski F5Predmestje F5Majnse mesto
konstanta -103.2079998 -481.7056711 -428.9397008
F7 1.2595735 -0.3270185 -6.2546442
F21 0.1262395 -0.1770928 0.3446665
gndrZenski 165.0071143 -2.4514198 -10.8032968
F5Predmestje -2.4514198 760.3269730 494.3549077
F5Majnse mesto -10.8032968 494.3549077 673.6659708
F5Vas -0.5118503 494.2147336 497.1741677
F5Kmetija 44.2279918 494.6973738 485.6823293
F7centGndrZenski -1.4285428 2.7104314 10.6140303
F5Vas F5Kmetija F7centGndrZenski
konstanta -525.1005327 -700.0109540 113.19417954
F7 0.3228661 15.0766579 -9.70674734
F21 0.5692394 -0.1235609 0.02366699
gndrZenski -0.5118503 44.2279918 -1.42854276
F5Predmestje 494.2147336 494.6973738 2.71043144
F5Majnse mesto 497.1741677 485.6823293 10.61403028
F5Vas 592.9468195 499.5199340 5.50129029
F5Kmetija 499.5199340 876.9021290 -6.11538212
F7centGndrZenski 5.5012903 -6.1153821 17.10494781
> #kar je enako kot
> #vcov(fitG91_F7F21gndrF5int2)
> max(abs(Sb-vcov(fitG91_F7F21gndrF5int2)))
[1] 8.6402e-12
> seb<-sqrt(diag(Sb))
> seb
62
konstanta F7 F21
48.7448279 3.1444692 0.4349312
gndrZenski F5Predmestje F5Majnse mesto
12.8455095 27.5740271 25.9550760
F5Vas F5Kmetija F7centGndrZenski
24.3504994 29.6125333 4.1358128
> #bomo preverili potem
>
> w<-diag(1/seb)
> Cb<-w %*% Sb %*% w
> #kar je enako kot
> #cov2cor(vcov(fitG91_F7F21gndrF5int2))
> max(abs(Cb-cov2cor(vcov(fitG91_F7F21gndrF5int2))))
[1] 1.665335e-15
> #t-statistika
> tb<-b/seb
> pb<-2*pt(-abs(tb),df=n-k)
> #tabela
> cbind(b=as.vector(b),"Std. napaka"=as.vector(seb),
t=as.vector(tb),"p-vrednost"=as.vector(pb))
b Std. napaka t p-vrednost
[1,] -47.0885256 48.7448279 -0.9660210 3.350102e-01
[2,] 22.8678604 3.1444692 7.2724073 5.019328e-12
[3,] -0.1344513 0.4349312 -0.3091323 7.574902e-01
[4,] -41.0673862 12.8455095 -3.1970228 1.575981e-03
[5,] 10.8218633 27.5740271 0.3924658 6.950638e-01
[6,] 27.2718630 25.9550760 1.0507333 2.944423e-01
[7,] 9.9417980 24.3504994 0.4082790 6.834344e-01
[8,] 12.7702718 29.6125333 0.4312455 6.666786e-01
[9,] -6.4737683 4.1358128 -1.5652953 1.188368e-01
> #kar je enako kot
> summary(fitG91_F7F21gndrF5int2)$coef
Estimate Std. Error t value
(Intercept) -47.0885256 48.7448279 -0.9660210
F7 22.8678604 3.1444692 7.2724073
F21 -0.1344513 0.4349312 -0.3091323
gndrZenski -41.0673862 12.8455095 -3.1970228
F5Predmestje 10.8218633 27.5740271 0.3924658
63
F5Majnse mesto 27.2718630 25.9550760 1.0507333
F5Vas 9.9417980 24.3504994 0.4082790
F5Kmetija 12.7702718 29.6125333 0.4312455
F7centGndrZenski -6.4737683 4.1358128 -1.5652953
Pr(>|t|)
(Intercept) 3.350102e-01
F7 5.019328e-12
F21 7.574902e-01
gndrZenski 1.575981e-03
F5Predmestje 6.950638e-01
F5Majnse mesto 2.944423e-01
F5Vas 6.834344e-01
F5Kmetija 6.666786e-01
F7centGndrZenski 1.188368e-01
Seveda bi se na tak nacin dalo izracunati se marsikaj, a mi bomo tu zakljucili.
64