################## ### DEVETI CAS ### ################# # 1. # broj sati ucenja x <- c(4, 9, 10, 14, 4, 7, 12, 22, 1, 3, 8, 11, 5, 6, 10, 11, 16, 13, 13, 10) # rezultati testa y <- c(390, 580, 650, 730, 410, 530, 600, 790, 350, 400, 590, 640, 450, 520, 690, 690, 770, 700, 730, 640) plot(x, y) model1 <- lm(y ~ x) model1 ## Interval poverenja za srednju vrednost Y predict(model1, data.frame(x = 10), interval = "confidence") # verujemo s poverenjem od 95% da je prosecan broj poena na testu onih koji su ucili 10 sati za test izmedju 697.6 i 768.5. ## Traka poverenja interval <- predict(model1, interval = "confidence", data.frame(x = seq(0, 25, 1))) plot(x, y, xlab = "x", ylab = "y") abline(model1) # regresiona prava lines(seq(0, 25, 1), interval[ ,3], col = "purple") lines(seq(0, 25, 1), interval[ ,2], col = "purple") # interval je najuzi za x_0 = mean(x)=9.45, jer je tu procena najpreciznija ## Interval predvidjanja predvidjanje <- predict(model1, interval = "prediction", data.frame(x = seq(0, 25, 1))) lines(seq(0, 25, 1), predvidjanje[ ,3], col = "aquamarine3") lines(seq(0, 25, 1), predvidjanje[ ,2], col = "aquamarine3") # interval predvidjanja u svakoj tacki siri nego interval poverenja za srednju vrednost ## Testiranje hipoteze o parametrima regresije summary(model1) # p-vrednost testa je 0, pa odbacujemo H0, tj. linearni model je koristan za predvidjanje ## Dijagnostika modela qqnorm(residuals(model1), ylab = "Residuals") qqline(residuals(model1)) plot(fitted(model1), residuals(model1), xlab = "Fitted", ylab = "Residuals") # 2. obim <- c(30, 87, 129, 148, 168, 174, 177) starost <- c(177, 484, 664, 1004, 1231, 1372, 1582) plot(starost, obim) model2 <- lm(obim ~ starost) abline(model2) summary(model2) qqnorm(residuals(model2), ylab = "Residuals") qqline(residuals(model2)) plot(fitted(model2), residuals(model2), xlab = "Fitted",ylab="Residuals") model3 <- lm(log(obim) ~ starost) summary(model3) qqnorm(residuals(model3), ylab = "Residuals") qqline(residuals(model3)) plot(fitted(model3), residuals(model2), xlab = "Fitted", ylab = "Residuals") # 3. za vezbu # 4. head(stackloss) attach(stackloss) vmodel1 <- lm(stack.loss ~ Air.Flow + Water.Temp + Acid.Conc.) summary(vmodel1) vmodel2 <- lm(stack.loss ~ Air.Flow + Water.Temp) summary(vmodel2) anova(vmodel1, vmodel2) #Acid.Conc.ne utice na stack.loss # predvidjanje newdata <- data.frame(Air.Flow = c(72, 67, 55), Water.Temp = c(20, 11, 22)) predict(vmodel2, newdata) cor(stackloss) # Dijagnostika modela qqnorm(residuals(vmodel2), ylab = "Residuals") qqline(residuals(vmodel2)) plot(fitted(vmodel2), residuals(vmodel2), xlab = "Fitted", ylab = "Residuals") # 5. za vezbu