data <- 'TO-DO' # nacteme datovy soubor cneck.txt 'TO-DO' # prohledneme si strukturu dat, popr. odstranime NA hodnoty # Stejne jako v pripade jednorozmerneho linearniho modelu (minule cviceni) # si vykreslime nase data do bodovych grafu. Nyni vsak mame vice nezavislych promennych, # muzeme jednotlive vykreslovat v bodovem grafu (viz pdf s resenim) # vztah mezi danou nezavislou promennou a zavislou promennou neck.C # nebo muzeme muzeme tuto zavislost pozorovat v matici grafu, kdy jednoduse # vykreslime plot() na vsechny promenne, ktere nas zajimaji plot(data[,3:8]) # zajima nas posledni radek # sestrojime linearni model - funkce lm(), # Zadejte spravne formuli, kde vlevo od "~" je zavisla promenna a vpravo od "~" # jsou v nasem pripade nezavisle promenne. V pripade, ze neuvazujeme interakci mezi # promennymi, zadame vice nezavislych promennych na jedne strane pomoci "+". modelfull <- lm(neck.C ~ body.W + body.H + waist.C + hip.C + antb.C, data = data) # Nastavime graf na format 2x2 par(mfrow = c(2,2)) # Analyza rezidui - overeni predpokladu modelu plot(modelfull) # Dale budeme testovat normalitu rezidui. # Rezidua najdeme pod "residuals" ve vystupu modelu 'TO-DO' # Pomoci t-testu overime, zda rezidua nemaji systematickou chybu, tj. zda jejich # stredni hodnota je rovna nule. t.test('TO-DO') # Durbin – Watsonuv test nezavislosti rezidui car::durbinWatsonTest(modelfull) # multikolinearita cor(data[,3:7]) # korelacni koeficienty mezi nezavislymi promennymi car::vif(modelfull) # koeficienty VIF # vypis informaci o modelu summary('TO-DO') # intervaly spolehlivosti koeficientu confint('TO-DO') model2 <- 'TO-DO' # sestaveni modelu bez promenne body.H summary(model2) # STEPWISE procedury # metoda backward - zaciname s plnym modelem model.back <- step(lm(neck.C ~ body.W + body.H + waist.C + hip.C + antb.C, data = data), direction = 'backward') 'TO-DO' # prohlednuti vysledku modelu # metoda forward - zaciname s minimalnim modelem a nastavujeme maximalni model # do argumentu scope # vsimnete si, ze jsou vypisovany do konzole jednotlive kroky procedury model.for <- step(lm(neck.C ~ 1, data = data), scope = ~ body.W + body.H + waist.C + hip.C + antb.C, direction = 'forward') 'TO-DO' # prohlednuti vysledku modelu # metoda both - zacneme s maximalnim modelem a jdeme obema smery, # tj. postupne se promenne pridavaji/vypousti # analogicky lze zacit u minimalniho modelu - viz pdf s prikladem model.both <- step(lm(neck.C ~ body.W + body.H + waist.C + hip.C + antb.C, data = data), direction = 'backward') 'TO-DO' # prohlednuti vysledku modelu 'TO-DO' # analogicky vypracujte nereseny priklad