2. seminarski rad - linearna regresija
DESCRIPTION
linear regression in SerbianTRANSCRIPT
1
Univerzitet u Beogradu
Matematički fakultet
Seminarski rad iz Statističkog Softvera 3
tema:
Regresija – Linearni model
Student: Asistent:
Dina Janković Marija Radičević
3/2011
Beograd, decembar 2014.
2
Sadržaj
1. Uvod.................................................................................................................................str.3
2. Teorijski aspekt linearne regresije...................................................................................str.6
3. Linearna regresija u R okruženju....................................................................................str.17
4. Literatura.........................................................................................................................str.46
3
Uvod
U svakoj naučnoj disciplini osnovni problem je utvrđivanje veza između promenljivih veličina. Te veze mogu
biti potpuno određene. Na primer, u fizici se može utvrditi tačna funkcionalna zavisnost između
udaljenosti objekata od zemlje i gravitacione sile, ili između gasa u zatvorenoj posudi i temperature. Međutim,
u biološkim i društvenim naukama suočavamo se sa mnogo komplikovanijom situacijom. Ovde imamo
daleko manje razloga da očekujemo otkrivanje tačno određene veze između promenljivih veličina. Zato su se
u ovim naučnim disciplinama morala da koriste statistička izučavanja koja mere prosečne promene jedne
veličine izazvane promenama druge veličine. Regresiona analiza upravo ima za cilj da utvrđuje i meri
veze takvog tipa, a jačina te veze se procenjuje korelacionom analizom.
U medicinskim istraživanjima često se interes istraživača usmerava prema problemu povezanosti među
varijablama. Pri tom je od posebnog interesa mogućnost prognoziranja ili predviđanja vrednosti (ili
varijabilnosti) jedne varijable na osnovu drugih varijabli. Prvi tako formulisani problem potiče od engleskog
antropologa Frensisa Galtona. On je studirajući zajedno sa Pirsonom nasleđivanje u biologiji, mereći visine
očeva i njihovih sinova, ustanovio neku vrstu paradoksa, odnosno, da visoki očevi imaju visoke sinove ali u
proseku ne tako visoke kao što su oni sami, i slično, da niski očevi imaju niske sinove ali opet u proseku ne
tako niske kao što su oni. Ovu tendenciju proseka neke karakteristike (u ovom slučaju visine) odabrane grupe
da u sledećoj generaciji sinova teži ka proseku populacije a ne proseku njihovih očeva, Galton je
nazvao regresijom, tačnije, regresijom prema proseku. Da bi dobio informaciju zavisnosti visine sinova od
visine njihovih očeva, Pirson je pretpostavio da se ta zavisnost može izraziti kao funkcija, ( ), pri
čemu je zavisna varijabla, odnosno varijabla koju želimo da objasnimo ili predvidimo (u Galtonovom
primeru to je visina sinova), a nezavisna varijabla, odnosno varijabla koju koristimo da objasnimo zavisnu
varijablu (visina očeva).
Osnovna svrha primene regresione analize je da se na osnovu jedne, poznate promenljive može predvideti
vrednost druge, nepoznate promenljive i to iz jednačine koja pokazuje njihovu zavisnost. Zavisnost može biti
linearna i u tom slučaju se izražava jednačinom prave linije ili može biti drugačija (logaritamska,
eksponencijalna), pa se izražava odgovarajućim matematičkim izrazima.
Dakle, u statistici, linearna regresija predstavlja pristup modeliranju odnosa između zavisno promenljive i
jedne ili više nezavisno promenljivih . U slučaju jedne nezavisno promenljive, reč je o običnoj (jednostavnoj)
linearnoj regresiji, a ako je više nezavisno promenljiviih, reč je o višestrukoj linearnoj regresiji. Ovaj termin
treba razlikovati od multivarijantne linearne regresije, gde se koristi više korelisanih zavisno promenljivih
umesto jedne.
U linearnoj regresiji se podaci modeliraju koristeći linearne funkcije predviđanja i nepoznati parametri modela
se ocenjuju na osnovu tih podataka. Takvi modeli se nazivaju linearnim modelima. Linearna regresija se
najčešće odnosi na model u kome je uslovna sredina od , uz datu vrednost , afina funkcija od . Mnogo
ređe, linearna regresija se može odnositi na model u kojem se medijana, ili neki drugi kvantil, uslovne
raspodele od za dato izražava kao linearna funkcija od . Kao i svi drugi oblici regresione
4
analize, linearna regresija se fokusira na uslovnu raspodelu verovatnoća od za dato , a ne na zajedničku
raspodelu verovatnoća od i , što je domen multivarijantne analize.
Linearna regresija je bila prvi tip regresione analize koja je detaljno proučavana i koja se intenzivno koristila u
praktičnim primenama. To je zbog toga što se modeli koji linerano zavise od svojih nepoznatih parametara
lakše modeliraju nego modeli sa nelinearnom zavisnošću od parametara. Takođe, statistička svojstva
rezultujućih ocena se lakše određuju.
Linearna regresija ima mnogo praktičnih primena. Većina tih primena spada u jednu od sledeće dve široke
kategorije:
Ako je cilj predviđanje, prognoza ili redukcija, linearna regresija se može koristiti za fitovanje
predvidljivog modela prema posmatranom skupu podataka vrednosti i . Nakon razvoja ovakvog
modela, ako je data vrednost za bez pripadajuće vrednosti , fitovani model se može koristiti za
predviđanje vrednosti .
Ako imamo promenljivu i veći broj promenljivih koje mogu biti povezane sa ,
možemo koristiti linearnu regresionu analizu za kvantifikovanje jačine relacije između i , za
procenu koji je uopšte vezan za , te da bismo identifikovali koji podskupovi od sadrže
redundantne informacije o , tako da, kad je jedan od njih poznat, ostali više ne daju korisne
informacije.
Linearni regresioni modeli se često fituju uz pomoć metode najmanjih kvadrata, iako se mogu koristit i drugi
načini, kao što je minimizovanje "nedostatka fitovanja" (lack of fit, engl.) u nekim drugim normama (kao kod
regresije minimalnih apsolutnih devijacija), ili minimizovanjem penalizovane verzije funkcije
gubitaka najmanjih kvadrata, kao kod Tikonove regularizacije. Nasuprot tome, pristup metodom najmanjih
kvadrata se može iskoristiti za fitovanje nelinearnih modela. Prema tome, pojmovi "najmanjih kvadrata" i
"linearni model" jesu usko povezani, ali nisu sinonimi.
Primene linearne regresije
Linearna regresija se umnogome koristi u biološkim i društvenim naukama za opisivanje mogućih veza
između promenljivih. Smatra se jednom od najvažnijih alatki u ovim disciplinama.
Linija trenda
Linija trenda predstavlja trend, dugoročno kretanje u vremenskoj seriji podataka nakon što su druge
komponente uzete u obzir. Ona svedoči o tome da li se određeni skup podataka (npr. bruto nacionalni
dohodak, cene nafte ili cene akcija na berzi) povećao ili smanjio tokom određenog vremenskog perioda. Linija
trenda se jednostavno može odokativno nacrtati kroz skup tačaka, ali njihove pozicije i nagibi se valjano
5
nalaze koristeći statističke tehnike poput linearne regresije. Linije trenda su obično prave linije, mada neke
varijacije koriste polinome viših stepena u zavisnosti od željene iskrivljenosti linije.
Linije trenda se ponekad koriste u analizama u biznisu kako bi pokazale promenu u određenim podacima
tokom vremena. Prednost ovoga je jednostavnost. Linije trenda se često koriste u razmatranju da li je
određena akcija ili događaj (npr. reklamna kampanja) prouzrokovao promene u nekom vremenskom trenutku.
Ovo je jednostavna tehnika i ne zahteva kontrolnu grupu, eksperimentalni dizajn ili sofisticiranu tehniku
analize. Međutim, ona pati od nedostatka naučne validnosti u slučajevima kada druge potencijalne promene
mogu uticati na podatke.
Epidemiologija
Ranootkrivena povezanost pušenja cigareta sa smrću i bolešću dolazi iz studija gde je primenjena regresiona
analiza. Radi smanjenja lažnih korelacija pri analiziranju podataka, naučni istraživači često uključuju nekoliko
promenljivih u njihov regresioni model, pored promenljive od interesa. Na primer, pretpostavimo da imamo
regresioni model u kome je pušenje cigareta nezavisna promenljiva od interesa, a zavisna promenljiva je
životni vek izražen u godinama. Istraživači mogu uključiti socijalno-ekonomski status kao dodadtnu
nezavisno promenljivu, kako bi obezbedili da nijedan efekat pušenja na životni vek nema veze sa
obrazovanjem ili primanjima. Međutim, nikada nije moguće uključiti sve mešovite promenljive u empirijskoj
analizi. Na primer, hipotetički gen može povećati smrtnost i uticati na to da ljudi više puše. Iz tog razloga,
slučajni kontrolisani procesi su često u mogućnosti da generišu mnogo ubedljivije dokaze o uzročnoj vezi,
koji se mogu dobiti korišćenjem regresione analize opservacijskih podataka. Kada kontrolisani eksperimenti
nisu izvodljivi, varijante regresione analize poput regresije sa instrumentalnim promenljivim mogu se koristiti
za pokušaj ocenjivanja uzročnih vezi.
Ekonomija i finansije
Model ocenjivanja kapitala koristi linearnu regresiju za analizu i kvantifikovanje sistematskog rizika ulaganja.
Linearna regresija je dominantna empirijska alatka u ekonomiji. Na primer, koristi se za predviđanje
potrošnje, potrošnje fiksnih investicija, inventarnih investicija, kupovine izvozvnih dobara određene države,
uvozne potrošnje, ponude i potražnje radne snage, itd.
Ekološke nauke
Linearna regresija se uveliko koristi u mnogobrojnim primenama ekoloških nauka. U Kanadi, Program
nadgledanja ekoloških efekata koristi statističke analize u pregledima o stanju riba za merenje efekata metalnih
otpada na vodeni ekosistem.
6
Teorijski aspekt linearne regresije
Uz zadati skup podataka
od statističkih jedinica, model linearne regresije pretpostavlja da se relacija između zavisno
promenljive i -vektora regresora može aproksimativno uzeti kao linearna. "Aproksimativno" se ovde
odnosi na "smetnje" – nerazmatranu slučajnu promenljivu koja dodaje šum u linearnu relaciju između
zavisne promenljive i regresora. Stoga, model ima oblik:
Često se ovih jednačina kompaktno zapisuju u vektorskom obliku kao:
gde je
Neke napomene vezane za terminologiju i generalnu upotrebu:
se zove regresand, zavisna promenljiva, endogena promenljiva, promenljiva odgovora ili izmerena
promenljiva. Odluka o tome koja se promenljiva u skupu podataka modelira kao zavisna promenljiva,
a koja kao nezavisna može se temeljiti na pretpostavci da je jedna od promenljivih posledica ili pod
uticajem druge promenljive.
su regresori, nezavisno promenljive, kovarijati; matrica se ponekad naziva dizajn-
matricom. Obično je konstanta uključena kao jedan od regresora. Npr. možemo uzeti za
Odgovarajući element za se naziva odsečkom. Mnoge statističke procedure
zaključivanja vezane za linearne modele zahtevaju odsečak, tako da je on često uključen čak i ako
teorijska razmatranja smatraju da njegova vrednost treba da bude 0. Ponekad jedan od regresora
može biti nelinearna funkcija od drugog regresora ili od svih podataka, kao npr. u polinomijalnoj
regresiji. Model ostaje linearan sve dok je to i u parametarskom vektoru . Regresori mogu biti
posmatrani ili kao slučajne promenljive, koje mi jednostavno razmatramo, ili kao unapred određene
fiksirane vrednosti koje možemo birati. Obe interpretacije su pogodne u različitim slučajevima i one
7
generalno vode do istih metoda procene; međutim, različiti pristupi asimptotstoj analizi se koriste u
ovim dvema situacijama.
je -dimenzionalni parametarski vektor. Njegovi elementi se takođe nazivaju efektima ili
regresionim koeficijentima. Statistička procena i zaključivanje se u statistici fokusiraju na . Elementi
ovog parametarskog vektora se interpretiraju kao parcijalni izvodi zavisno promenljive, u skladu sa
nezavisnim promenljivama.
se zove greška, smetnja ili šum. Ova promenljiva takoreći hvata sve druge faktore koji utiču na
zavisno promenljivu , pored regresora . Odnos između greške i regresora, na primer u slučaju
kada su korelisani, jeste odlučujući korak u formulisanju linearnog regresionog modela, s obzirom da
on određuje metod koji se koristi za ocenjivanje.
Primer : Posmatrajmo situaciju u kojoj se loptica baca u vazduh. Mere se visine uspona u različitim
vremenskim trenucima . Fizika nam kaže da, ignorišući otpor, odnos ovih veličina može biti modelovan
kao :
gde predstavlja početnu brzinu loptice, je proporcionalna standardnoj gravitaciji, dok se javljaju zbog
grešaka u merenju. Linearna regresija se može koristiti u proceni vrednosti i na osnovu izmerenih
podataka. Ovaj model je nelinearan po promenljivoj , ali je linearan po parametrima i ; ako za
regresore uzmemo ( ) ( ), model je standardnog oblika :
Pretpostavke
Standardni linearni regresioni modeli sa standardnim tehnikama ocenjivanja zahtevaju mnogobrojne
pretpostavke o promenljivama, kao i o njihovom odnosu. Razvijena su brojna uopštenja koja omogućavaju da
se neke od ovih pretpostavki oslabe, a čak i eliminišu potpuno u nekim slučajevima. Neke metode su
dovoljno generalne da može da se oslabi više pretpostavki odjednom, a u drugim slučajevima se to može
postići kombinovanjem više uopštenja. Generalno, nakon ovakvih uopštenja, metode procene postaju
složenije i vremenski zahtevnije, i mogu zahtevati nešto više podataka radi dobijanja modela iste preciznosti.
Navedeno je nekoliko glavnih pretpostavki standardnih linearnih regresionih modela sa standardnim
metodama ocenjivanja (kao npr. metoda najmanjih kvadrata):
Slaba egzogenost : Ovo u suštini znači da se promenljive mogu tretirati kao fiksirane vrednosti,
a ne kao slučajne promenljive. To znači da se, na primer, može pretpostaviti da nema grešaka u
prediktor-promenljivim, dakle nema grešaka u merenju. S obzirom da ova pretpostavka nije
8
realistična u mnogim situacijama, njeno izostavljanje dovodi do prilično nezgodnih modela sa
greškama u promenljivim.
Linearnost : Ovo označava da je srednja vrednost rezultujuće promenljive linearna kombinacija
parametara (regresionih koeficijenata) i prediktor-promenljivih. Ova pretpostavka je daleko manje
restriktivna nego što se to čini na prvi pogled. Zbog toga što se prediktor-promenljive tretiraju kao
fiksirane vrednosti (videti gore o slaboj egzogenosti), linearnost je zapravo samo restrikcija na
parametrima. Početne promenljive se mogu proizvoljno transformisati, i može se dodati nekoliko
kopija iste osnovne početne promenljive, svaka transformisana na različit način. Ovaj trik se koristi
npr. u polinomijalnoj regresiji, koja koristi linearnu regresiju kako bi podesila rezultujuću
promenljivu kao proizvoljnu polinomijalnu funkciju (do određenog stepena) od prediktor-
promenljive. Ovako nešto linearnu regresiju čini izuzetno moćnom metodom zaključivanja.
Zapravo, modeli poput polinomijalne regresije su često toliko moćni da mogu da prefituju (overfit,
engl.) podatke. Kao posledica toga, neka vrsta regularizacije se obično mora izvršiti kako bi se
sprečila neprihvatljiva rešenja koja potiču iz procesa ocenjivanja. Uobičajeni primeri su Tikonova
regularizacija i metoda najmanjih kvadrata. Bajesovska linearna regresija se takođe može koristiti,
koja je po svojoj prirodi manje-više imuna na problem prefitovanja.
Konstantna disperzija (poznata i pod nazivom homoskedastičnost): Ovo označava da različite
rezultujuće promenljive imaju istu disperziju u svojim greškama, bez obzira na vrednosti početnih
promenljivih. U praksi, ova pretpostavka je nevažeća (tj. greške su heteroskedastične) ukoliko
rezultujuće promenljive mogu da variraju u širokom rasponu. Kako bi se odredila heterogena greška
disperzije ili kada skup reziduala krši pretpostavke modela o homoskedastičnosti, mudro je potražiti
tzv. fening-efekat između rezidualne greške i pretpostavljenih vrednosti. Ovo govori da će biti
sistematske promene u apsolutnim ili kvadratnim rezidualima kada se grafički prikažu protiv
predvidljivog ishoda. Greška neće čak ni biti raspoređena po regresionoj liniji. Ustvari, reziduali se
grupišu i prostiru nešto dalje od njihovih predviđenih grafika za veće i manje vrednosti od tačaka sa
linearne regresione linije, a srednje-kvadratna greška za model će biti pogrešna. Rezultujuća
promenljiva čija je sredina velika će tipično imati veću disperziju od one sa malom sredinom. Na
primer, ukoliko osoba po nekoj pretpostavci ima godišnja primanja od 100 000$, ona zapravo može
imati primanja u iznosu od 80 000$ ili 120 000$ (sa standardnom devijacijom od oko 20 000$), dok
neka druga osoba za koju se misli da ima primanja od 10 000$, teško da može imati istu standardnu
devijaciju od 20 000$, što bi značilo da njena stvarna primanja variraju od -10 000$ do 30 000$
godišnje. Ovo nam zapravo govori da se, u mnogim slučajevima poput navedenog, disperzija ili
standardna devijacija moraju pretpostaviti da budu proporcionalni sredini, a ne da to bude neka
konstanta. To su slučajevi gde pretpostavka o normalnoj raspodeljenosti ne prolazi. Međutim, razne
tehnike za procenjivanje mogu da na neki način kontrolišu heteroskedastičnost. Tehnike Bajesovske
linearne regresije se takođe mogu koristiti kada se pretpostavlja da je disperzija funkcija sredine. Isto
tako je moguće u nekim slučajevima rešiti problem tako što se izvrši transformacija nad
rezultujućim promenljivim. Na primer, moguće je podesiti logaritam rezultujuće promenljive
koristeći linearni regresioni model, što povlači da ta promenljiva nema normalnu, već -normalnu
raspodelu.
Nezavisnost grešaka: Ovo pretpostavlja da su greške rezultujućih promenljivih međusobno
nekorelisane. Napomenimo da je stvarna statistička nezavisnost jači uslov od pukog nedostatka
9
korelacije, i često nije neophodan, iako može biti iskorišćen ukoliko se zna da važi. Neke metode
(poput uopštene metode najmanjih kvadrata) su u stanju da barataju sa korelisanim greškama, iako
one tipično zahtevaju značajno više podataka, ukoliko se neka vrsta regularizacije ne upotrebi.
Bajesovska linearna regresija je opšti pristup ovakvom problemu.
Nedostatak multikolinearnosti u pretpostavkama: Za standardne metode najmanjih kvadrata,
dizajn-matrica mora imati rang koji je jednak broju kolona te matrice; inače imamo uslov
poznat pod nazivom multikolinearnost u početnim promenljivama. To se može postići sa 2 ili više
korelisane promenljive. To se takođe može desiti ukoliko imamo malo dostupnih podataka u
poređenju sa brojem parametara koje treba proceniti. U slučaju multikolinearnosti, parametarski
vektor neće biti poistovetljiv – nema jedinstveno rešenje. Postoje razvijene metode za fitovanje
linearnih modela sa multikolinearnošću, od kojih neke zahtevaju određene dodatne pretpostavke.
Napomenimo da iterativni algoritmi za procenu parametara koji su računski zahtevniji (poput onih
koji se koriste u generalizovanim linearnim modelima) ne pate od ovog problema.
Pored navedeni pretpostavki, nekoliko drugih statističkih karakterestika podataka utiču na performans različih
estimacionih modela:
Statistički odnos između grešaka i regresora igra važnu ulogu u odlučivanju o tome da li estimaciona
procedura ima poželjne osobine uzorkovanja poput nepristrasnost i konzistentnosti.
Raspodela verovatnoća promenljivih ima značajan uticaj na preciznost procenjenog .
Uzorkovanje i dizajn eksperimenata su visokorazvijene oblasti statistike koje omogućavaju
rukovođenje sakupljanjem podataka na takav način da se dobije precizna ocena za .
Interpretacija
Fitovani linearni regresioni model se može koristiti u identifikovanju odnosa između jedne pretpostavljene
promenljive i rezultujuće promenljive , kada su sve druge pretpostavljene promenljive u modelu fiksirane.
Specijalno, interpretiramo kao promenu u pri promeni kada su ostali kovarijati fiksirani – to je dakle
očekivana vrednost parcijalnog izvoda od po . Ovo se ponekad zove jedinstveni efekat od na .
Nasuprot tome, marginalni efekat od na se može proceniti koristeći koeficijent korelacije ili model
jednostavne linearne regresije od u odnosu na ; ovaj efekt predstavlja potpuni izvod od u skladu sa .
Mora se voditi računa pri tumačenju rezultata regresije, s obzirom da neki regresori možda nisu podložni
marginalnim promenama, dok se neki drugi ne mogu tek tako fiksirati (npr. u primeru iz uvodnog dela vezan
za bacanje lopte, bilo bi nemoguće fiksirati , a menjati vrednosti ).
10
Primer: Enskombov kvartet
Enskombov kvartet sadrži 4 skupa podataka koji imaju skoro iste statističke karakteristike, ali koji deluju vrlo
različito kada se prikažu grafički. Svaki skup podataka sadrži 11 ( ) tačaka. Konstruisao ih je engleski
statističar Frensis Enskomb 1973. godine, kako bi demonstrirao važnost grafičkog prikazivanja podataka pre
njihovog analiziranja i efekat autlajera na statističke osobine.
Za sva 4 skupa podataka imamo sledeće:
Karakteristika Vrednost
Sredina od u svim slučajevima 9 (tačna vredost)
Uzoračka varijansa od u svim slučajevima 11 (tačna vrednost)
Sredina od u svim slučajevima 7.50 (na 2 decimale)
Uzoračka varijansa od u svim slučajevima 4.122 ili 4.127 (na 3 decimale)
Korelacija između i u svim slučajevima 0.816 (na 3 decimale)
Linearna regresiona linija u svim slučajevima (na 2 i 3 decimale, redom)
Prvi grafik (gornje levo) nam daje jednostavnu linearnu vezu, u skladu sa dvema korelisanim promenljivama i
ispunjavajući pretpostavku o normalnoj raspodeljenosti. Drugi grafik (gornje desno) nema normalnu
raspodelu; iako se može uočiti očigledna veza između promenljivih, ona nije linearna, i Pirsonov koeficijent
korelacije nije relevantan. Na trećem grafiku (donje levo) raspodela je linearna, ali sa drugačijom regresionom
linijom i upadljivim autlajerom koji je dovoljno uticajan da povisi regresionu liniju i smanji koeficijent
korelacije sa 1 na 0.816. Konačno, četvrti grafik (donje desno) predstavlja primer kada je samo jedan autlajer
sasvim dovoljan da proizvede visok koeficijent korelacije, čak i kada je odnos promenljivih nelinearan.
Ovaj grafik se i dalje često koristi kako bi ilustrovao važnost grafičkog razmatranja skupa podataka pre
upuštanja u analizu neke posebne vrste odnosa, kao i neadekvatnost osnovnih statističkih karakteristika za
opisivanje realističnih skupova podataka.
11
Skupovi podataka su sledeći (vrednosti za su iste u prva 3 skupa):
I II III IV
10.0 8.04 10.0 9.14 10.0 7.46 8.0 6.58
8.0 6.95 8.0 8.14 8.0 6.77 8.0 5.76
13.0 7.58 13.0 8.74 13.0 12.74 8.0 7.71
9.0 8.81 9.0 8.77 9.0 7.11 8.0 8.84
11.0 8.33 11.0 9.26 11.0 7.81 8.0 8.47
14.0 9.96 14.0 8.10 14.0 8.84 8.0 7.04
6.0 7.24 6.0 6.13 6.0 6.08 8.0 5.25
4.0 4.26 4.0 3.10 4.0 5.39 19.0 12.50
12.0 10.84 12.0 9.13 12.0 8.15 8.0 5.56
7.0 4.82 7.0 7.26 7.0 6.42 8.0 7.91
5.0 5.68 5.0 4.74 5.0 5.73 8.0 6.89
Ekstenzije linearne regresije
Razvijene su mnogobrojne ekstenzije linearne regresije, koje omogućavaju da se neke ili sve pretpostavke za
osnovni model olabave.
Obična i višestruka regresija
Najprostiji slučaj sa skalarnom promenljivom i skalarnom promenljivom naziva se jednostavnom
linearnom regresijom. Ekstenzija do višestrukih i/ili vektorskih promenljivih poznata je pod nazivom
višestruka linearna regresija. Obično svi regresioni modeli iz realnog života uključuju višestruke
prediktor promenljive, i osnovni opisi linearne regresije sadrže pojam višestrukog regresionog
modela. Međutim, napomenimo da je u ovim slučajevimo promenljiva i dalje skalar. Drugi pojam,
multivarijantna linearna regresija, referiše na slučajeve kada je vektor, tj. isto što i generalna linearna
regresija. Razlika između višestruke i multivarijantne linearne regresije mora biti istaknuta, s obzirom
da često stvara konfuziju i nesporazume u literaturi.
12
Generalni linearni modeli
Generalni linearni model je situacija kada je promenljiva vektor, a ne skalar. Pretpostavlja se
uslovna linearnost od ( | ) , gde matrica menja vektor kod klasičnog linearnog
regresionog modela. Razvijeni su i multivarijantni analogoni OLS-a i GLS-a. Dakle, pojmovi
generalni linearni model i multivarijantni linearni model su međusobno ekvivalentni.
Heteroskedastični modeli
Kreirani su mnogobrojni modeli koji dozvoljavaju heteroskedastičnost, tj. greške različitih
rezultujućih promenljivih mog imati različite disperzije. Na primer, metoda težinskih najmanjih
kvadrata je metoda za procenu linearnih regresionih modela gde rezultujuće promenljive mogu imati
različite disperzije grešaka, eventualno sa korelisanim greškama. Metoda sa heteroskedastično-
konzistentnim standardnim greškama je poboljšana metoda za upotrebu, sa nekorelisanim ali
mogućnim heteroskedastičnim greškama.
Generalizovani linearni modeli
Generalizovani linearni model (skraćeno GLM) predstavlja okvir za modeliranje rezultujuće
promenljive koja je ograničena ili diskretna. Ovo se, na primer, koristi u sledećim slučajevima:
pri modeliranju pozitivnih veličina (poput cena ili populacije stanovništva) koje variraju u širokom
rasponu, što se bolje opisuje korišćenjem neke tzv. isečene raspodele poput -normalne ili
Poasonove;
pri modeliranju kategoričkih podataka (poput izbora kandidata na izborima), što se bolje opisuje
korišćenjem Bernulijeve ili binomne raspodele za dvostruke izbore, ili kategoričke ili multinomijalne
raspodele za višestruke izbore, gde je fiksiran broj izbora;
pri modeliranju ordinalnih podataka, npr. rejtinga na skali od 0 do 5, gde se mogu dobiti različiti
rezultati, ali kvantitet sam po sebi nema apsolutno značenje – npr. rejting 4 ne mora biti dvostruko
bolji od rejtinga 2, ali jednostavno označava da je bolji od 2 i 3 ali ne tako dobar kao 5.
GLM-ovi imaju tzv. funkciju veze koja povezuje srednju vrednost rezultujuće promenljive i
prediktora, tj. ( ) ( ) Ova funkcija je često povezana sa raspodelom rezultujuće
promenljive, i ona naročito ima uticaj na transformisanje ( ) domena linearnog prediktora i
domena rezultujuće promenljive.
Glavni primeri GLM-ova su:
Poasonova regresija za računske podatke
Logistička regresija i probitska regresija za binarne podatke
Multinomijalna logistička regresija i multinomijalna probitska regersija za kategoričke podatke
13
Hijerarhijski linearni modeli
Ovi modeli organizuju podatke u hijerarhiju regresija, npr. se regresuje u odnosu na , a u
odnosu na . Oni se često koriste kada podaci prirodno imaju hijerarhijsku strukturu, kao npr. u
obrazovnoj statistici, gde su studenti grupisani u odeljenja, odeljenja u škole, a škole u nekoj
administrativnoj jedinici. Rezultujuća promenljiva može biti merilo nekog učenikovog dostignuća
poput rezultata na testu, i imali bismo različite kovarijate po odeljenjima, školama i administrativnim
jedinicama.
Modeli sa greškama u varijablama
Ovi modeli proširuju tradicionalnu linearnu regresiju tako što dopuštaju da se promenljiva X
razmatra sa greškom. Ta greška uzrokuje pristrasne ocene za .
Metode estimacije
Razvijen je veliki broj procedura za procenu parametara i donošenje zaključaka u linearnoj regresiji. Ovi
metodi se međusobno razlikuju u računskoj složenosti algoritama, postojanosti rešenja u implicitnom obliku, i
teorijskim pretpostavkama neophodnim za ispitivanje statističkih osobina poput konzistentnosti i asimptotske
efikasnosti.
Navedene su najznačajnije metode estimacije za linearnu regresiju.
Metoda najmanjih kvadrata i njoj slične metode
Standardna metoda najmanjih kvadrata (Ordinary Least Squares (OLS), engl.) je najjednostavniji i
stoga najzastupljeniji estimator. On je konceptualno najjednostavniji i računski ne tako zahtevan.
OLS procene se koriste za analiziranje eksperimentalnih i opservacijskih podataka.
Ova metoda minimizira sumu kvadriranih reziduala i dovodi do implicitnog izraza za procenjenu
vrednost nepoznatog parametra :
Ocena je nepristrasna i postojana ukoliko greške imaju konačnu dsiperziju i nekorelisane su sa
regresorima:
14
Takođe je efikasna pod pretpostavkom da greške imaju konačnu disperziju i da su homoskedastične,
tj. [ | ] ne zavisi od . Uslov da su greške nekorelisane sa regresorima će generalno biti
zadovoljene u eksperimentu, ali u slučaju opservacijskih podataka, teško je isključiti mogućnost da je
izostavljen neki kovarijat koji je u relaciji i sa posmatranim kovarijatima i sa rezultujućom
promenljivom. Postojanje takvog kovarijata će, generalno, dovesti do korelacije između regresora i
rezultujuće promenljive, i time do nepostojane ocene za . Uslov homoskedastičnosti ne mora biti
zadovoljen ni kod eksperimentalnih ni kod opservacijskih podataka. Ako je cilj zaključivanje ili
predskazujuće modeliranje, performans OLS-a može biti loš ako je prisutna multikolinearnost, a
veličina uzorka je nedovoljno velika.
Uopštena metoda najmanjih kvadrata
Ova metoda (Generalized Least Squares (GLS), engl.) je uopštenje prethodne metode, koja daje efikasnu
ocenu za ako je prisutna heteroskedastičnost ili korelisanost u greškama modela, sve dok je oblik
heteroskedastičnosti i korelacije poznat nezavisno od podataka. Kako bi rukovao
heteroskedastičnošću kada su greške međusobno nekorelisane, GLS minimizira otežinjeni analogon
na sumu kvadrata reziduala iz OLS regresije, gde je težina za -ti slučaj obrnuto proporcionalna
disperziji od . Ovaj specijalan slučaj GLS-a se zove „otežinjeni najmanji kvadrati“. GLS rešenje za
problem estimacije je:
gde je Ω matrica kovarijansi grešaka. GLS se može posmatrati kao primena linearne transformacije na
podatke tako da su ispunjene pretpostavke OLS-a za transformisane podatke. Kako bi GLS mogao
biti primenjen, struktura kovarijansi grešaka mora biti poznata do na konstantu.
Procentualna metoda najmanjih kvadrata
Ova metoda se fokusira na smanjenje procentualnih grešaka, što je korisno u oblastima poput
prognoziranja ili analize vremenskih serija. Takođe je korisna u situacijama kada zavisna promenljiva
ima veliki domen vrednosti bez konstantne varijanse, s obzirom da bi većina reziduala na desnom
kraju domena dominirala ako bi OLS bio korišćen. Kada su procenti ili relativne greške normalno
raspodeljene, imamo ocene metodom maksimalne verodostojnosti.
Regresija sa instrumentalnim varijablama (Instrumental Variables Regression (IV), engl.) se može
izvesti kada su regresori korelisani sa greškama. U ovom slučaju nam treba egzistencija nekih
pomoćnih instrumentalnih varijabli tako da je [ ] Ako je matrica sačinjena od
instrumentalnih varijabli, onda je ocena u implicitnom obliku:
Ekstenzija ove regresije je regresija sa optimalnim instrumentalnim promenljivama, kada je
[ | ]
15
Totalni najmanji kvadrati (Total Least Squares (TLS), engl.) je pristup metodi najmanjih kvadrata
koja tretira kovarijate i rezultujuću promenljivu u više geometrijski simetričnom smislu nego OLS. To
je mogući pristup pri rukovanju sa problemom grešaka u promenljivim, i ponekad se koristi kada se
pretpostavi da su kovarijati dati bez greške.
Metoda maksimalne verodostojnosti i druge povezane metode
Ocena metodom maksimalne verodostojnosti se može izvesti kada se zna da raspodela grešaka
pripada određenoj parametarskoj familiji raspodela verovatnoća. Kada je normalna raspodela sa
očekivanjem 0 i disperzijom , rezultujuća ocena je identična OLS oceni. GLS ocene su ocene
metodom maksimalne verodostojnosti kada ima multivarijantnu normalnu raspodelu sa poznatom
kovarijantnom matricom.
„Ridž“ regresija (ili Tikonova regularizacija) i „Lasso“ regresija namerno dodeljuju pristrasnot
oceni za parametar kako bi smanjili promenljivost ocene. Rezultujuće ocene generalno imaju manje
srednje-kvadratne greške od OLS ocena, naročito kada je prisutna multikolinearnost. One se
generalno koriste kada je cilj predvideti vrednost rezultujuće promenljive za neposmatrane
vrednosti prediktora . Ove metode se obično ne koriste kada je cilj donošenje nekog zaključka, s
obzirom da je teško izračunati pristrasnost.
Regresija sa najmanjom apsolutnom devijacijom (Least Absolute Deviation Regression (LAD), engl.)
je moćna metoda ocenjivanja koja je manje osetljiva na prisustvo autlajera od OLS metode, ali je
manje efikasna od OLS metode ako nema autlajera. Ekvivalentna je metodi maksimalne
verodostojnosti za epsilon koje ima Laplasovu raspodelu.
Adaptivna estimacija: Ako pretpostavimo da su greške nezavisne od regresora, optimalna ocena se
dobija MML metodom u 2 koraka, gde se u prvom koraku vrši neparametarsko ocenjivanje raspodele
greške.
Druge metode ocenjivanja
Bajesovska linearna regresija primenjuje okvire Bajesovske statistike na linearnu regresiju.
Posebno, za regresione koeficijente se pretpostavlja da su slučajne promenljive sa specifičnom
apriornom raspodelom. Apriorna raspodela može dati pristrasnost rešenja za regresione koeficijente,
slično kao kod ridž i laso regresije. Dalje, Bajesovsko ocenjivanje ne daje jednu tačkastu ocenu za
najbolje vrednosti regresionih koeficijenata, već čitavu aposteriornu raspodelu. To se može iskoristiti
za ocenjivanje „najboljih“ koeficijenata korišćenjem sredine, mode, medijane, kvantila, ili bilo koje
druge funkcije aposteriorne raspodele.
16
Kvantilna regresija se fokusira na kondicionalnim kvantilima od pri datom . Linearna kvantilna
regresija modelira posebni kvantil, npr. kondicionalnu medijanu, kao linearnu funkciju
prediktora.
Mešoviti modeli se uveliko koriste za analiziranje odnosa u linearnoj regresiji koje uključuju zavisne
podatke, kada oni imaju poznatu strukturu. Najznačajnije primene mešovitih modela podrazumevaju
analize podataka uključujuči ponovljena merenja, poput longitudalnih podataka ili podataka dobijenih
iz grupnog uzorkovanja. U slučaju kada su greške modelirane kao normalno raspodeljene slučajne
veličine, postoji bliska veza između mešovitih modela i generalizovanih najmanjih kvadrata.
Ocenjivanje sa fiksiranim efektima je alternativni pristup analiziranju ovakvog tipa podataka.
Regresija sa glavnom komponentom (Principal Component Regression (PCR), engl.) se koristi kada je
broj prediktora veliki, ili kada postaje jaka korelacija između njih. Ova dvoetapna procedura najpre
redukuje prediktore koristeći analizu glavne komponente, a zatim koristi redukovane promenljive za
fitovanje OLS regresijom. Dok to često dobro funkcioniše u praksi, ne postoji generalni teorijski
razlog da najinformativnija linearna funkcija prediktora treba da leži između dominantnih glavnih
komponenti multivarijantne raspodele prediktora. Regresija sa parcijalnim najmanjim kvadratima je
ekstenzija PCR metode koja ne pati od pomenutog nedostatka.
Regresija sa najmanjim uglom je procedura ocenjivanja za linearne regresione modele koja je
razvijena za rukovođenje višedimenzionalnim kovarijantnim vektorima, potencijalno sa više
kovarijata od opservacija.
Tejl-Sen ocenjivanje je jednostavna ali moćna tehnika koja bira nagib fitovane linije tako da bude
medijana nagiba linija kroz uređene parove tačaka. Ima slične osobine statističke efikasnosti kao
obična linearna regresija, ali je mnogo manje osetljiva na autlajere.
17
Linearna regresija u R okruženju
U ovom odeljku ćemo videti implementaciju linearne regresije u R okruženju i njene konkretne primere, kako
jednostavne, tako i nešto složenije. Važnu ulogu u svemu tome igra R-funkcija lm(), čija struktura izgleda
ovako:
Opis:
Funkcija lm() se koristi za fitovanje linearnih modela. Može se koristiti za regresiju, kao i za analizu
varijanse i kovarijanse.
Upotreba:
lm(formula, data, subset, weights, na.action, method = "qr", model = TRUE, x
= FALSE, y = FALSE, qr = TRUE,singular.ok = TRUE, contrasts = NULL, offset,
...)
Argumenti:
formula – objekat klase “formula”: simbolički opis modela koji će se fitovati
data – opcionalni okvir podataka, liste ili okruženja koji sadrži promenljive modela; ako se ne nalaze u
data, promenljive se uzimaju iz environment(formula), obično iz okruženja iz kojeg se lm poziva
subset – opcionalni vektor sa podskupom opservacija koji će se koristiti u procesu fitovanja
weights – opcionalni vektor sa težinama koji će se koristiti u procesu fitovanja; trebalo bi da bude NULL
ili numerički vektor; ako nije NULL, otežinjeni najmanji kvadrati se koriste sa težinama weights
(minizovanje sum(w*e^2)); inače se koristi uobičajena metoda najmanjih kvadrata
na.action – funkcija koja nagoveštava šta treba da se dogodi ako podaci sadrže NA vrednosti; default
vrednosti je na.fail
method – metoda koja će se koristiti; za fitovanje, trenutno je podržana samo method = "qr"; method = "model.frame" vraća okvir modela
model, x, y, qr – logički argumenti; ako su TRUE, vraćaju se odgovarajuće komponente fitovanja
(okvir modela, matrica modela, rezultat, QR dekompozicija)
singular.ok – logički argument; ako je FALSE (što nije default u R-u), singularni fit je greška
contrasts – opcionalna lista
offset – može se koristiti za specificiranje a priori poznate komponente; to je NULL ili numerički vektor
Vrednost:
lm() vraća objekat klase “lm” ili c(“mlm”,”lm”); funkcije summary() i anova() se koriste za prikaz
rezimea i analizu tabele disperzija rezultata. Generičke funkcije:
coefficients, effects, fitted.values, residuals
18
daju razne korisne odlike vrednosti koju vraća lm().
Objekat klase “lm” je lista koja sadrži sledeće komponente:
coefficients imenovani vektor sa koeficijentima
residuals reziduali – rezultat umanjen za fitovanu vrednost
fitted.values fitovane srednje vrednosti
rank numerički rang fitovanog linearnog modela
weights specificirane težine
df.residual stepeni slobode reziduala
terms korišćeni term-objekti
contrasts (samo gde su relevantni) korišćeni contrasts-objekti
y korišćeni rezultat (ako se traži)
x korišćena matrica modela (ako se traži)
model korišćeni okvir modela (ako se traži)
19
Primer 1:
Neka su data 2 numerička vektora, gde prvi sadrži broj sati koje student provodi nedeljno učeći u biblioteci, a
drugi sadrži rezultate na ispitu, u poenima od 0 do maksimalnih 100.
> sati=10:30 > poeni=c(14,17,18,23,26,30,30,40,41,49,56,60,61,62,69,75,80,81,82,89,92)
Očekivani model koji opisuje ove podatke je:
,
gde je teorijsi -odsečak, a teorijski nagib. Cilj linearne regresije je naći najbolje ocene za ova dva
parametra, minimizujući rezidualnu grešku između eksperimentalnih i predviđenih rezultata ispita. Konačni
model je :
gde su i ocene za i , redom, a je rezidualna greška.
Najpre treba razumeti sintaksu definisanja modela. Pretpostavimo da je zavisna promenljiva koja se
modelira, a , i su nezavisne promenljive koje mogu uticati na . Opšti oblik linearnog modela je :
gde je “term” objekat ili niz objekata, a “op” je operator poput + i -.
Napomena : Kada je reč o modelima, termin linearan ne označava obavezno pravu liniju. Zapravo, linearni
model sadrži dodatne komponente, od kojih svaka sadrži jedan multiplikativni paramer. Na primer :
predstavljaju linearne modele. S druge strane,
nije linearan model.
Sledeća tabela daje nekoliko korisnih primera:
Sintaksa Model Komentar
prava linija sa implicitnim -odsečkom
prava linija bez -odsečka (kroz k. početak)
( ) polinomijalni model
model 1. reda
20
model koji sadrži samo interakcije 1. reda između A i B
kompletni model 1. reda
( )
model koji sadrži sve efekte 1.
reda i interakcije do -tog reda
Osnovna sintaksa za regresionu analizu u R-u je :
gde je objekat koji sadrži zavisno promenljivu, a model je formula za izabrani matematički model.
Komanda lm() daje koeficijenta modela, ali nikakve daljne statističke informacije :
> lm(poeni~sati) Call: lm(formula = poeni ~ sati) Coefficients: (Intercept) sati -30.143 4.114
Radi dobijanja više informacija i pristupa brojnim funkcijama za manipulisanje podacima, najbolje je kreirati
objekat koji sadrži komandu modela :
> lm.r = lm(poeni ~ sati)
Ovaj objekat se potom može koristiti kao argument za druge komande. Kako bismo dobili kompletniji
statistički pregled o modelu, koristimo summary() naredbu :
> summary(lm.r) Call: lm(formula = poeni ~ sati) Residuals: Min 1Q Median 3Q Max -5.6857 -1.4571 0.0571 1.8857 3.8571 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -30.14286 1.91226 -15.76 2.29e-12 *** sati 4.11429 0.09151 44.96 < 2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.539 on 19 degrees of freedom Multiple R-squared: 0.9907, Adjusted R-squared: 0.9902 F-statistic: 2021 on 1 and 19 DF, p-value: < 2.2e-16
Odeljak “residuals” daje razliku između eksperimentalnih i predviđenih rezultata ispita. Ocene za koeficijente
modela su date sa njihovim standardnim devijacijama (“std error”), kao i -vrednost i verovatnoća nulte
hipoteze da koeficijenti imaju vrednost 0. U ovom slučaju, na primer, vidimo da su odsečak i nagib prilično
udaljeni od 0. Na dnu vidimo standardnu devijaciju regresije ( ili “residual standar error”), koeficijent
korelacije i rezultat F-testa za nultu hipotezu da je
.
21
Druge korisne komande su sledeće:
> coef(lm.r) #daje koeficijente modela (Intercept) sati -30.142857 4.114286 > resid(lm.r) #daje rezidualne greške u Y 1 2 3 4 5 3.00000000 1.88571429 -1.22857143 -0.34285714 -1.45714286 6 7 8 9 10 -1.57142857 -5.68571429 0.20000000 -2.91428571 0.97142857 11 12 13 14 15 3.85714286 3.74285714 0.62857143 -2.48571429 0.40000000 16 17 18 19 20 2.28571429 3.17142857 0.05714286 -3.05714286 -0.17142857 21 -1.28571429 > fitted(lm.r) #daje predviđene vrednosti za Y 1 2 3 4 5 6 11.00000 15.11429 19.22857 23.34286 27.45714 31.57143 7 8 9 10 11 12 35.68571 39.80000 43.91429 48.02857 52.14286 56.25714 13 14 15 16 17 18 60.37143 64.48571 68.60000 72.71429 76.82857 80.94286 19 20 21 85.05714 89.17143 93.28571 19 20 21 85.05714 89.17143 93.28571
Pre prihvatanja rezultata linearne regresije, važno je vrednovati njegovu pogodnost za objašnjavanje podataka.
Jedan od mnogobrojnih načina da se to uradi jeste vizuelno ispitati reziduale. Ako je model prikladan,
rezidualne greške treba da budu slučajne i normalno raspoređene. Dalje, uklanjanjem jednog slučaja ne treba
da bude narušena njegova pogodnost. R obezbeđuje 4 grafička pristupa za vrednovanje modela korišćenjem
plot() komande.
> layout(matrix(1:4,2,2)) > plot(lm.r)
22
Prvi grafik (gornje levo) prikazuje rezidualne greške u zavisnosti od njihovih fitovanih vrednosti. Reziduali
treba da budu slučajno raspoređeni u odnosu na horizontalnu liniju koja predstavlja rezidualnu grešku 0. To
znači da ne treba da postoji izrazit trend u raspodeli tačaka. Treći grafik (donje levo) je standardni Q-Q grafik,
koji treba da sugeriše normalnu raspodeljenost rezidualnih grešaka. Drugi grafik (gornje desno) prikazuje
kvadratni koren standardizovanih reziduala (neka vrsta kvadratnog korena relativne greške) kao funkciju
fitovanih vrednosti. Ponovo, ne bi trebalo da bude vidljivog trenda na ovom grafiku. Konačno, četvrti grafik
(donje desno) prikazuje tzv. moć svake tačke, koja je merilo njene važnosti u određivanju rezultata regresije.
Na grafiku su i konturne linije za Kukove razdaljine, koje su još jedno merilo važnosti svake opservacije za
regresiju. Manje razdaljine znače da uklanjanje opservacije ima manji efekat na rezultate regresije. Razdaljine
veće od 1 su sumnjive i sugerišu prisustvo mogućeg autlajera ili loše izrađen model.
Ponekad model ima poznate vrednosti za jedan ili više njegovih parametara. Na primer, pretpostavimo da
znamo da je stvarni model vezan za broj sati provedenih u učenju i rezultate ispita :
Naš regresioni model je
Možemo koristiti standardni -test za vrednovanje nagiba i odsečka. Njihovi intervali poverenja su :
gde su i standardne greške odsečka i nagiba, redom. Kako bismo odredili da li postoji značajna razlika
između očekivane ( ) i izračunate ( ) vrednosti, izračunavamo i poredimo ga sa njegovom standardnom
vrednošću za korektan broj stepeni slobode, koji je u ovom slučaju 19.
> tb1 = abs((3.00-4.114)/0.09151) #računamo apsolutnu vrednost od t > tb1 [1] 12.17353 > pt(tb1, 19, lower.tail = FALSE) #računamo verovatnoću za t [1] 1.01611e-10 > tb0=abs((0+30.143)/1.91226) > tb0 [1] 15.76302 > pt(tb0, 19, lower.tail = FALSE) [1] 1.146183e-12
Ovde računamo apsolutnu vrednost od koristeći izračunate vrednosti i standardne greške iz našeg
prethodnog pregleda rezultata. Komanda:
pt(vrednost, stepeni slobode, lower.tail = FALSE)
vraća jednorepnu verovatnoću da nema razlike između očekivanih i izračunatih vrednosti. U ovom slučaju
vidimo da je izračunata vrednost nagiba 4.114 različita od očekivane vrednosti 3.00. Napomenimo da veća
standardna devijacija za odsečak otežava prikaz da postoji značajna razlika između eksperimentalnih i
teorijskih vrednosti.
23
Cilj regresione analize je razviti model koji se može koristiti za predviđanje rezultata budućih eksperimenata.
U našem primeru:
Zbog nesigurnosti u izračunatom odsečku i nagibu, postojaće sumnja u dobijenim rezultatima ispita.
Pretpostavimo da hoćemo da predvidimo rezultate testa za sledeće brojeve sati sedmično provedenih tokom
učenja: 5, 10, 15, 20, 25, kao i interval poverenja za svaki. Za ovako nešto možemo koristiti predict()
komandu :
predict(model, data.frame(pred=new pred), level = 0.95, interval =
“confidence”)
gde je pred objekat koji sadrži originalne nezavisno promenljive, new pred je objekat koji sadrži nove
vrednosti koje želimo da predvidimo, a level je željeni nivo poverenja.
> newconc=c(5,10,15,20,25) > predict(lm.r,data.frame(conc = newconc), level = 0.9, interval = "confidence") fit lwr upr 1 11.00000 9.150174 12.84983 2 15.11429 13.397855 16.83072 3 19.22857 17.640967 20.81618 4 23.34286 21.878303 24.80741 5 27.45714 26.108282 28.80600 6 31.57143 30.328847 32.81401 7 35.68571 34.537382 36.83405 8 39.80000 38.730701 40.86930 9 43.91429 42.905221 44.92335 10 48.02857 47.057440 48.99970 11 52.14286 51.184703 53.10101 12 56.25714 55.286011 57.22827 13 60.37143 59.362364 61.38049 14 64.48571 63.416415 65.55501 15 68.60000 67.451668 69.74833 16 72.71429 71.471704 73.95687 17 76.82857 75.479711 78.17743 18 80.94286 79.478303 82.40741 19 85.05714 83.469538 86.64475 20 89.17143 87.454998 90.88786 21 93.28571 91.435888 95.13554
gde su lwr i upr donja i gornja granica intervala poverenja. Nažalost, R nije u mogućnosti da nalazi
intervale poverenja za predviđene vrednosti nezavisno promenljive za specifične vrednosti zavisno
promenljivih.
Što se tiče dodavanja regresione linije na grafik, za prave linije, to je vrlo jednostavno:
> par(mfrow=c(1,1)) > plot (sati,poeni) > abline(lm.r,col="blue")
24
Međutim, za podatke koji ne asociraju na pravu liniju, moramo biti malo kreativniji. Pogledajmo sledeći
primer.
25
Primer 2:
Na primer, neka vektor nv sadrži nadmorske visine nekoliko mesta u Evropi, a vektor pad godišnju količinu
padavina u milimetrima:
> nv = c(100, 200, 300, 450, 600, 800, 1000) > pad = c(253, 337, 395, 451, 495, 534, 574) > lm.r = lm(pad ~ nv + I(nv^2)) > lm.r # kvadratni model Call: lm(formula = pad ~ nv + I(nv^2)) Coefficients: (Intercept) nv I(nv^2) 200.211950 0.706182 -0.000341
> newh = seq(100, 1000, 10) #kreiramo nove nadmorske visine za daljne predviđanje > newh [1] 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 [17] 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 [33] 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 [49] 580 590 600 610 620 630 640 650 660 670 680 690 700 710 720 730 [65] 740 750 760 770 780 790 800 810 820 830 840 850 860 870 880 890 [81] 900 910 920 930 940 950 960 970 980 990 1000
> fit = 200.211950 + 0.706182*newh - 0.000341*newh^2 #računamo količinu padavine za novodobijene nadmorske visine koristeći model koji imamo > fit [1] 267.4201 273.7659 280.0434 286.2527 292.3938 298.4667 304.4715 310.4080 316.2763 [10] 322.0764 327.8084 333.4721 339.0676 344.5949 350.0540 355.4450 360.7677 366.0222 [19] 371.2085 376.3266 381.3766 386.3583 391.2718 396.1171 400.8942 405.6032 410.2439 [28] 414.8164 419.3207 423.7568 428.1248 432.4245 436.6560 440.8193 444.9144 448.9414 [37] 452.9001 456.7906 460.6129 464.3670 468.0530 471.6707 475.2202 478.7015 482.1146 [46] 485.4595 488.7363 491.9448 495.0851 498.1572 501.1612 504.0969 506.9644 509.7637 [55] 512.4948 515.1578 517.7525 520.2790 522.7373 525.1274 527.4493 529.7031 531.8886 [64] 534.0059 536.0550 538.0359 539.9487 541.7932 543.5695 545.2776 546.9176 548.4893 [73] 549.9928 551.4281 552.7952 554.0941 555.3249 556.4874 557.5817 558.6078 559.5657 [82] 560.4555 561.2770 562.0303 562.7154 563.3323 563.8811 564.3616 564.7739 565.1180 [91] 565.3940
> plot(nv, pad, xlab="nadmorska visina", ylab="kolicina padavina") #originalni podaci
26
> lines(newh, fit, lty=1) #dobijeno fitovanje
27
Primer 3:
Naučni istraživači su izmerili visine 161 dece u Kalami, selu u Egiptu. Istraživanje je trajalo nekoliko godina,
merenja su vršena svakog meseca i uzimane su prosečne visine. Dobijeni su sledeći podaci:
Prosečna visina u cm
Uzrast u mesecima
76.1 18
77 19
78.1 20
78.2 21
78.8 22
79.7 23
79.9 24
81.1 25
81.2 26
81.8 27
82.8 28
83.5 29
Grafik zavisnost visine dece u centimetrima od njihovog uzrasta se može lako prikazati u R-u pomoću
sledećeg niza naredbi :
> uzrast=18:29 > visina=c(76.1,77,78.1,78.2,78.8,79.7,79.9,81.1,81.2,81.8,82.8,83.5) > plot(uzrast,visina)
Primetimo da su podaci na grafiku približno linearni. Kako uzrast raste, prosečna visina se povećava, i to
skoro konstantno. Nemoguće je provući jedinstvenu linije kroz sve tačke sa grafika, ali može se zamisliti linija
koja je vrlo blizu svim tačkama, neke iznad, a neke ispod linije. Sada ćemo naći tu regresionu liniju pomoću
metode najmanjih kvadrata.
28
Koristićemo već opisanu komandu lm() koja nalazi model koji fituje podatke sa datog grafika. Kao što smo
već videli, to je vrlo sofisticirana komanda sa mnogobrojnim opcijama, ali je vrlo jednostavna za upotrebu.
Sintaksa visina~uzrast naziva se jednačinom modela.
> res=lm(visina~uzrast) > res Call: lm(formula = visina ~ uzrast) Coefficients: (Intercept) uzrast 64.928 0.635
Koeficijenti koje dobijamo predstavljaju odsečak i nagib fitovane linije. To nam daje jednačinu koja opisuje tu
pravu :
Sledećom komandom:
> abline(res)
dobijamo ono što smo tražili:
Dobijena jednačina nam omogućava da predviđamo – na primer, možemo proceniti prosečnu visinu deteta
starog 27.5 meseci. Ubacivanjem ove vrednosti u jednačinu, imamo
Dakle, prosečna visina deteta od 27.5 meseci je 82.3905 centimetara.
29
Primer 4:
Razmatramo bazu podataka “cats” iz paketa MASS, koja sadrži podatke o masi srca i tela odraslih mačaka oba
pola, težih od 2 kg. Kolona “sex” označava pol, F za ženski, M za muški; “Bwt” označava telesnu masu u
kilogramima, a “Hwt” masu srca u gramima.
> library(MASS) > data(cats) > attach(cats) > lm(Hwt ~ Bwt) Call: lm(formula = Hwt ~ Bwt) Coefficients: (Intercept) Bwt -0.3567 4.0341
Stoga je regresiona jednačina:
Smeštamo rezultat u objekat:
> lm.out = lm(Hwt ~ Bwt) > summary(lm.out) Call: lm(formula = Hwt ~ Bwt) Residuals: Min 1Q Median 3Q Max -3.5694 -0.9634 -0.0921 1.0426 5.1238 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -0.3567 0.6923 -0.515 0.607 Bwt 4.0341 0.2503 16.119 <2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1.452 on 142 degrees of freedom Multiple R-squared: 0.6466, Adjusted R-squared: 0.6441 F-statistic: 259.8 on 1 and 142 DF, p-value: < 2.2e-16
> plot(Hwt ~ Bwt, xlab = "telesna masa", ylab = "masa srca", main="Podaci o mackama")
30
> abline(lm.out, col="red")
Moguće su razne regresione dijagnoze. Grafički se može prikazati koliko nam je dobar fitovani model:
> par(mfrow=c(2,2)) > plot(lm.out)
Prva komanda nam je omogućila da prikažemo odjednom 4 grafika. Prvi grafik (gornje levo) je standardni
grafik sa rezidualima, koji prikazuje reziduale u odnosu na fitovane vrednosti. Označene su tačke koje
pretenduju da budu autlajeri. Ako se uoči nekakav obrazac među ovim tačkama, linearni model možda neće
biti odgovarajući. Drugi grafik (gornje desno) je normalni Q-Q grafik sa kvantilima, i vidimo normalnu
raspodeljenost reziduala. Naznačene tačke na grafiku donje desno predstavljaju slučajeve kada možda postoji
neki uticaj na regresionu vezu. Osvrnimo se na slučaj označen brojem 144.
> cats[144,]
31
Sex Bwt Hwt 144 M 3.9 20.5 > lm.out$fitted[144] 144 15.37618 > lm.out$residuals[144] 144 5.123818
Ova mačka je imala najveću telesnu masu i masu srca u čitavom skupu podataka. Opservacijska vrednost za
Hwt je bila 20.5g, ali je fitovana vrednost samo 15.4g, što daje rezidual od 5.1g. Često korišćeno merenje
uticaja je Kukova razdaljina, koja se može vizualizovati za sve slučajeve u modelu :
> par(mfrow=c(1,1)) > plot(cooks.distance(lm.out))
Na vrhu je pomenuti slučaj 144.
Dakle, možemo eliminisati ovaj autlajer iz regresionih koeficijenata :
> lm.without144 = lm(Hwt ~ Bwt, subset=(Hwt<20.5)) > lm.without144 Call: lm(formula = Hwt ~ Bwt, subset = (Hwt < 20.5)) Coefficients: (Intercept) Bwt 0.118 3.846
Drugi način je da primenimo procedure koja je vrlo moćna protiv autlajera :
> rlm(Hwt ~ Bwt) Call: rlm(formula = Hwt ~ Bwt) Converged in 5 iterations Coefficients: (Intercept) Bwt -0.1361777 3.9380535 Degrees of freedom: 144 total; 142 residual Scale estimate: 1.52
32
Primer 5:
Razmatraćemo bazu podataka koja sadrži podatke o studentima na Univerzitetu Nju Meksiko prema
podacima iz 1990. godine. Iskoristićemo kolonu UNEM koja predstavlja nezaposlenost u procentima kako
bismo predvideli broj upisanih studenata na taj univerzitet (kolona ROLL).
YEAR ROLL UNEM HGRAD INC
1 5501 8.1 9552 1923
2 5945 7 9680 1961
3 6629 7.3 9731 1979
4 7556 7.5 11666 2030
5 8716 7 14675 2112
6 9369 6.4 15265 2192
7 9920 6.5 15484 2235
8 10167 6.4 15723 2351
9 11084 6.3 16501 2411
10 12504 7.7 16890 2475
11 13746 8.2 17203 2524
12 13656 7.5 17707 2674
13 13850 7.4 18108 2833
14 14145 8.2 18266 2863
15 14888 10.1 19308 2839
16 14991 9.2 18224 2898
17 14836 7.7 18997 3123
18 14478 5.7 19505 3195
19 14539 6.5 19800 3239
20 14395 7.5 19546 3129
21 14599 7.3 19117 3100
22 14969 9.2 18774 3008
23 15107 10.1 17813 2983
24 14831 7.5 17304 3069
25 15081 8.8 16756 3151
26 15127 9.1 16749 3127
27 15856 8.8 16925 3179
28 15938 7.8 17231 3207
29 16081 7 16816 3345
Kreirajmo linearni model (baza nam se nalazi na Desktopu, koji je podešen za Working Directory):
> baza=read.csv("primer_newmexico.csv",header=TRUE)
33
> head(baza) > attach(baza) > linearModel <- lm(ROLL ~ UNEM, baza) > linearModel Call: lm(formula = ROLL ~ UNEM, data = baza) Coefficients: (Intercept) UNEM 3957 1134
Time smo dobili da odsečak iznosi 3957, a nagib je 1134. Otuda je regresiona jednačina :
To nam govori da će predviđeni broj upisanih studenata na univerzitetu u Nju Meksiku porasti za 1134
studenta za 1% porasta stope nezaposledosti. Postavlja se pitanja koliki će biti broj upisanih studenata ako je
ovogodišnja stopa nezaposlenosti 9%. Odgovor nalazimo uz pomoć date regresione jednačine :
> 3957 + 1134 * 9 [1] 14163
Dakle, ove godine će biti 14163 upisanih studenata, s obzirom na stopu nezaposlenosti od 9%.
Linearna regresija se može mnogo bolje iskoristiti nego samo za nalaženje očekivanih vrednosti. Pomoću
naredbe summary(), dobijamo mnoge statističke informacije o linearnom modelu.
> summary(linearModel) Call: lm(formula = ROLL ~ UNEM, data = baza) Residuals: Min 1Q Median 3Q Max -7640.0 -1046.5 602.8 1934.3 4187.2 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3957.0 4000.1 0.989 0.3313 UNEM 1133.8 513.1 2.210 0.0358 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3049 on 27 degrees of freedom Multiple R-squared: 0.1531, Adjusted R-squared: 0.1218 F-statistic: 4.883 on 1 and 27 DF, p-value: 0.03579
Dakle, dobili smo mnoštvo korisnih informacija, poput -testa, -testa i reziduala. Svi ovi podaci mogu
poslužiti za nalaženje odgovora na važna pitanja vezana za linearni model.
Napomena: Ovde je korišćena funkcija lm(), a njoj alternativne su glm() i rlm().
34
Primer 6:
U R-u se nalazi baza podataka “cars” sa podacima o automobilima. Kolona « speed » je brzina u miljama po
satu, a kolona « dist » je distanca zaustavljanja u stopama. Podaci su prikupljeni tokom 20-ih godina XX veka.
Učitajmo ove podatke :
> data(cars) > str(cars) 'data.frame': 50 obs. of 2 variables: $ speed: num 4 4 7 7 8 9 10 10 10 11 ... $ dist : num 2 10 4 22 16 10 18 26 34 17 ... > summary(cars) speed dist Min. : 4.0 Min. : 2.00 1st Qu.:12.0 1st Qu.: 26.00 Median :15.0 Median : 36.00 Mean :15.4 Mean : 42.98 3rd Qu.:19.0 3rd Qu.: 56.00 Max. :25.0 Max. :120.00 > attach(cars) > plot(speed,dist)
Na grafiku vidimo da kako brzina raste, raste i distanca, ali to nije 1:1 porast. Na primer, za brzinu od 20 mph
imamo više distanci. Vektor koji sadrži sve distance za tu brzinu je:
> dist[speed==20] [1] 32 48 52 56 64
Distance variraju od 32 do čak 64 stope, što je veliki raspon. Sada ćemo fitovati liniju kroz ove podatke, ali
tako da suma najmanjih kvadrata (misli se na kvadrat razlike između izmerene i predviđene vrednosti od u
odnosu na ) bude minimalna. Obično se na to misli pri linearnoj regresiji.
> abline(lm(dist ~ speed),col="magenta")
35
S obzirom da fitujemo liniju oblika , gde je nagib, a je odsečak na -osi, imamo :
> lm(dist ~ speed) Call: lm(formula = dist ~ speed) Coefficients: (Intercept) speed -17.579 3.932
Koeficijenti korelacije i određenosti su :
> cor(speed,dist) [1] 0.8068949 > cor(speed,dist)^2 [1] 0.6510794
Ovo znači da se 65% posmatranih distanci može izraziti samo kao funkcija brzine.
Sada ćemo se malo pozabaviti regresionom analizom. Ona zahteva ispunjenost određenih pretpostavki,
poput :
Podaci su izmereni bez greške, tako da su sve opservacije pouzdane i imaju podjednak uticaj.
Greške su normalno raspodeljene i međusobno nezavisne.
Srednja vrednost grešaka je 0 i imaju konstantnu disperziju.
Kako testirati ove pretpostavke? Jedan način je posmatrati reziduale.
Fitovana linija deluje pouzdano i dobro, ali kada razmišljamo o odsečku i nagibu, shvatamo da nema smisla
fitovati model sa ne-nula odsečkom. Pored svega, automobil koji se kreće 0 mph ima distancu zaustavljanja 0,
a automobil koji se sporo kreće ipak ima određenu distancu. Najpre se rešimo odsečka :
> plot(dist~speed-1) > abline(lm(dist~speed-1),col="orange") > summary(lm(dist~speed-1)) Call: lm(formula = dist ~ speed - 1) Residuals: Min 1Q Median 3Q Max
36
-26.183 -12.637 -5.455 4.590 50.181 Coefficients: Estimate Std. Error t value Pr(>|t|) speed 2.9091 0.1414 20.58 <2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 16.26 on 49 degrees of freedom Multiple R-squared: 0.8963, Adjusted R-squared: 0.8942 F-statistic: 423.5 on 1 and 49 DF, p-value: < 2.2e-16
Sada posmatrajmo reziduale (biće 4 grafika i naredbom Return prelazimo sa jednog na drugi):
> plot(lm(dist~speed-1))
Na prvom grafiku vidimo da podaci prate određeni trend sa porastom disperzije s leva na desno.
Što se tiče drugog grafika, ukoliko su reziduali normalno raspoređeni, podaci treba da budu bliski liniji. U
ovom slučaju, vidimo da podaci nisu normalno raspodeljeni.
37
Na trećem grafiku vidimo trend među podacima, tako da velike vrednosti daju veće disperzije.
Četvrti grafik prikazuje koji podaci imaju najveći uticaj. Ako Kukova linija sadrži određenu tačku, to sugeriše
da analiza može biti vrlo osetljiva za tu tačku i da bi bilo mudro isključiti tu tačku i ponoviti analizu bez nje.
S obzirom na rastuću disperziju (videti o heteroskedastičnosti u teorijskom aspektu), primenjujemo
logaritamsku transformaciju na podatke:
> par(mfrow=c(2,2)) > ln.speed=log(speed) > ln.dist=log(dist) > plot(lm(ln.dist~ln.speed-1))
38
Svuda se vidi manje trenda, izuzev na Q-Q grafiku.
> summary(lm(ln.dist~ln.speed-1)) Call: lm(formula = ln.dist ~ ln.speed - 1) Residuals: Min 1Q Median 3Q Max -1.21083 -0.22501 0.01129 0.25636 0.85978 Coefficients: Estimate Std. Error t value Pr(>|t|) ln.speed 1.33466 0.02187 61.02 <2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.4166 on 49 degrees of freedom Multiple R-squared: 0.987, Adjusted R-squared: 0.9867 F-statistic: 3724 on 1 and 49 DF, p-value: < 2.2e-16
Sada model objašnjava 99% disperzije među podacima. Kako tumačimo podatke?
što znači da distance raste kao stepena funkcija brzine.
39
Primer 7:
Učitavamo bazu sa internet koja sadrži podatke o konzumaciji opojnih sredstava. Fokusiraćemo se samo na
žensku populaciju.
> options(digits=3) > options(width=67) # narrow output > library(foreign) > ds = read.csv("http://www.math.smith.edu/r/data/help.csv") > newds = ds[ds$female==1,] > attach(newds) > sub = factor(substance, levels=c("heroin","alcohol","cocaine"))
Najpre formiramo grafik zavisnosti životnog doba i broja alkoholnih pića konzumiranih u period pre
detoksikacije (ime promenljive: ), kao i primarnih zloupotrebljenih supstanci (alkohol, kokain ili heroin).
Sledeći prikaz daje grafik opservacijskih vrednosti za ; radi lakše čitljivosti, ograničavamo se na broj pića
između 0 i 40.
> plot(age, i1, ylim=c(0,40), type="n", cex.lab=1.4, cex.axis=1.4) > points(age[substance=="alcohol"], i1[substance=="alcohol"], pch="a") > lines(lowess(age[substance=="alcohol"],i1[substance=="alcohol"]),lty=1, lwd=2) > points(age[substance=="cocaine"], i1[substance=="cocaine"], pch="c") > lines(lowess(age[substance=="cocaine"], i1[substance=="cocaine"]), lty=2, lwd=2) > points(age[substance=="heroin"], i1[substance=="heroin"], pch="h") > lines(lowess(age[substance=="heroin"], i1[substance=="heroin"]), lty=3, lwd=2) > legend(44,38,legend=c("alcohol","cocaine","heroin"),lty=1:3,cex=1.4,lwd=2, pch=c("a","c","h"))
Opcija “pch” u legend() komandi se može koristiti za umetanje simbola u legendi na grafiku. Grafik
sugeriše da postoji dramatičan efekat primarnih supstanci, sa većim brojem onih koji konzumiraju alkohol.
Postoji indikacija da to ima veze sa životnom dobi.
40
Sada demonstriramo prikaz granica poverenja i predviđenih vrednosti linearnog regresionog modela od “pcs”,
tj. procenata, kao funkciju od “age”, tj. životnog doba.
> ord = order(age) > orderage = age[ord] > orderpcs = pcs[ord] > lm1 = lm(orderpcs ~ orderage) > pred.w.clim = predict(lm1, interval="confidence") > pred.w.plim = predict(lm1, interval="prediction") > matplot(orderage, pred.w.plim, lty=c(1, 2, 2), type="l", ylab="predicted PCS", xlab="age (in years)", lwd=2) > matpoints(orderage, pred.w.clim, lty=c(1, 3, 3), type="l", lwd=2) > legend(40, 56, legend=c("prediction", "confidence"), lty=2:3, lwd=2)
Sledeće što ćemo uraditi jeste fitovanje linearnog regresionog modela za broj pića kao funkciju od životnog
doba, opojnih supstanci, i njihove interakcije. Kako bismo procenili imali potrebe za interakcijom, fitujemo
model bez interakcije i koristimo anova() funkciju kako bismo uporedili modele (takođe se može iskoristiti
drop1() funkcija).
> options(show.signif.stars=FALSE) > lm1 = lm(i1 ~ sub * age) > lm2 = lm(i1 ~ sub + age) > anova(lm2, lm1) Analysis of Variance Table Model 1: i1 ~ sub + age Model 2: i1 ~ sub * age Res.Df RSS Df Sum of Sq F Pr(>F) 1 103 26196 2 101 24815 2 1381 2.81 0.065
S obzirom na dobijenu vrednost , postoji određena interakcija između životne dobi i grupe
supstanci.
41
Postoje mnogi kvantiteti od interesa smešteni u objektu linearnog modela lm1, i oni se lako mogu videti i
kasnije upotrebiti u određene svrhe:
> names(summary(lm1)) [1] "call" "terms" "residuals" [4] "coefficients" "aliased" "sigma" [7] "df" "r.squared" "adj.r.squared" [10] "fstatistic" "cov.unscaled" > summary(lm1)$sigma [1] 15.7 > names(lm1) [1] "coefficients" "residuals" "effects" [4] "rank" "fitted.values" "assign" [7] "qr" "df.residual" "contrasts" [10] "xlevels" "call" "terms" [13] "model" > lm1$coefficients (Intercept) subalcohol subcocaine age -7.770 64.880 13.027 0.393 subalcohol:age subcocaine:age -1.113 -0.278 > coef(lm1) (Intercept) subalcohol subcocaine age -7.770 64.880 13.027 0.393 subalcohol:age subcocaine:age -1.113 -0.278 > confint(lm1) 2.5 % 97.5 % (Intercept) -33.319 17.778 subalcohol 28.207 101.554 subcocaine -24.938 50.993 age -0.325 1.112 subalcohol:age -2.088 -0.138 subcocaine:age -1.348 0.793 > vcov(lm1) (Intercept) subalcohol subcocaine age (Intercept) 165.86 -165.86 -165.86 -4.548 subalcohol -165.86 341.78 165.86 4.548 subcocaine -165.86 165.86 366.28 4.548 age -4.55 4.55 4.55 0.131 subalcohol:age 4.55 -8.87 -4.55 -0.131 subcocaine:age 4.55 -4.55 -10.13 -0.131 subalcohol:age subcocaine:age (Intercept) 4.548 4.548 subalcohol -8.866 -4.548 subcocaine -4.548 -10.127 age -0.131 -0.131 subalcohol:age 0.241 0.131 subcocaine:age 0.131 0.291
Procenjivanje modela je važan deo kako regresione, tako i bilo koje druge analize. Počinjemo ispitivanjem
reziduala. Najpre računamo kvantile za njihovu raspodelu i prikazujemo najmanji rezidual.
> pred = fitted(lm1) > resid = residuals(lm1) > quantile(resid) 0% 25% 50% 75% 100% -31.92 -8.25 -4.18 3.58 49.88
42
Možemo ispitati rezultat i potom izabrati podskup baze podataka za nalaženje vrednosti reziduala koji je
manji od -31. Skup podataka se može sortirati tako da je najmanja opservacija na prvom mestu :
> tmpds = data.frame(id, age, i1, sub, pred, resid, rstandard(lm1)) > tmpds[resid==max(resid),] id age i1 sub pred resid rstandard.lm1. 4 9 50 71 alcohol 21.1 49.9 3.32 > tmpds[resid==min(resid),] id age i1 sub pred resid rstandard.lm1. 72 325 35 0 alcohol 31.9 -31.9 -2.07
Rezultat sadrži broj vrste minimalnog i maksimalnog reziduala.
Grafičke alatke predstavljaju najbolji način da se ispitaju reziduali. Sledeća slika daje grafike vezane za model :
> oldpar = par(mfrow=c(2, 2), mar=c(4, 4, 2, 2)+.1) > plot(lm1) > par(oldpar)
Na narednoj slici vidimo empirijsku gustinu standardizovanih reziduala, a pretpostavka da reziduali približno
imaju normalnu raspodelu nije pouzdana. Takođe vidimo da postoje određena odstupanja od modela, tako da
bi trebalo sprovesti daljne istraživanje.
> library(MASS) > std.res = rstandard(lm1) > hist(std.res, breaks=seq(-2.5, 3.5, by=.5), main="", xlab="standardized residuals", col="gray80", freq=FALSE) > lines(density(std.res), lwd=2) > xvals = seq(from=min(std.res), to=max(std.res), length=100) > lines(xvals, dnorm(xvals, mean(std.res), sd(std.res)), lty=2, lwd=3)
43
Što se tiče fitovanja regresionog modela posebno za svaku vrednost druge promenljive, formira se matrica
određenih dimenzija i for petlja za svaku jedinstvenu vrednost promenljive.
> uniquevals = unique(substance) > numunique = length(uniquevals) > formula = as.formula(i1 ~ age) > p = length(coef(lm(formula))) > res = matrix(rep(0, numunique*p), p, numunique) > for (i in 1:length(uniquevals)) { + res[,i] = coef(lm(formula, subset=substance==uniquevals[i])) + } > rownames(res) = c("intercept","slope") > colnames(res) = uniquevals > res heroin cocaine alcohol intercept -7.770 5.257 57.11 slope 0.393 0.116 -0.72 > detach(newds)
Nameće se pitanje : da li postoji statistički značajna veza između pola ispitanika i zloupotrebe supstanci sa
simptomima depresije? Funkcija interaction.plot() se može upotrebiti za grafičku procenu ovog
pitanja. Sledeća slika prikazuje grafik interakcije za CESD kao funkciju grupe opojnih supstanci i pola
ispitanika.
> attach(ds) > sub = as.factor(substance) > gender = as.factor(ifelse(female, "F", "M")) > interaction.plot(sub, gender, cesd, xlab="substance", las=1, lwd=2)
44
Postoje naznake na velike efekte pola i grupe supstanci, ali mala sugestija na njihovu interakciju.
Sledeći boxplot dijagram predstavlja funkciju CESD od grupe supstanci i pola ispitanika. Širina svakog
boxplot-a je proporcionalna veličini uzorka, sa oznakama za intervale poverenja za medijane i X-ovima koji
označavaju srednje vrednosti.
> subs = character(length(substance)) > subs[substance=="alcohol"] = "Alc" > subs[substance=="cocaine"] = "Coc" > subs[substance=="heroin"] = "Her" > gen = character(length(female)) > boxout = boxplot(cesd ~ subs + gender, notch=TRUE, varwidth=TRUE, col = "gray80") > boxmeans = tapply(cesd, list(subs, gender), mean) > points(seq(boxout$n), boxmeans, pch=4, cex=2)
45
U nastavku ćemo ispitati da li postoji značajna interakcija kroz dvostranu analizu disperzije. Fitujemo modele
sa i bez interakcije, i poredimo dobijene rezultate. Takođe ručno konstruišemo test količnika verodostojnosti.
> aov1 = aov(cesd ~ sub * gender, data=ds) > aov2 = aov(cesd ~ sub + gender, data=ds) > resid = residuals(aov2) > anova(aov2, aov1) Analysis of Variance Table Model 1: cesd ~ sub + gender Model 2: cesd ~ sub * gender Res.Df RSS Df Sum of Sq F Pr(>F) 1 449 65515 2 447 65369 2 146 0.5 0.61 > options(digits=6) > logLik(aov1) 'log Lik.' -1768.92 (df=7) > logLik(aov2) 'log Lik.' -1769.42 (df=5) > lldiff = logLik(aov1)[1] - logLik(aov2)[1] > lldiff [1] 0.505055 > 1 - pchisq(2*lldiff, 2) [1] 0.603472 > options(digits=3)
Postoji određena šansa ( ) za interakciju, tako da se ovaj termin može izostaviti. Model je prethodno
već fitovan tako da testira interakciju i može biti prikazan.
> aov2 Call: aov(formula = cesd ~ sub + gender, data = ds) Terms: sub gender Residuals Sum of Squares 2704 2569 65515 Deg. of Freedom 2 1 449 Residual standard error: 12.1 Estimated effects may be unbalanced > summary(aov2) Df Sum Sq Mean Sq F value Pr(>F) sub 2 2704 1352 9.27 0.00011 gender 1 2569 2569 17.61 3.3e-05 Residuals 449 65515 146
Default dizajn-matrica se može izmeniti i model ponovo fitovati.
46
Literatura
1. http://en.wikipedia.org/wiki/Linear_regression
2. http://msenux.redwoods.edu/math/R/regression.php
3. https://stat.ethz.ch/R-manual/R-devel/library/stats/html/lm.html
4. http://ww2.coastal.edu/kingw/statistics/R-tutorials/simplelinear.html
5. http://rtutorialseries.blogspot.com/2009/11/r-tutorial-series-simple-linear.html
6.http://www.evergreen.edu/scicomp/docs/workshops/Tutorial2_LinearRegression.pdf?q=gettin
g-started-with-the-r-commander
7.http://www.montefiore.ulg.ac.be/~kvansteen/GBIO00091/ac20092010/Class8/Using%20R%20fo
r%20linear%20regression.pdf
8. Materijali sa časova vežbi iz predmeta:
Statistički softver 1
Statistički softver 2