Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- predkosc <- c(61,225,110,51,114,68,24,24,133,83,83,92,93,37,111,172,142,105,143,77,154,108,98,164,124,97,90,87,137,71,73,74,62,88,100,101,126,113,49)
- droga <- c(58,149,90,55,91,69,31,35,109,77,78,82,86,44,89,121,106,98,116,65,111,88,86,122,104,85,72,80,105,74,71,66,73,72,72,90,91,98,59);
- #Tu są wektory danych wejściowych
- auta <- data.frame(predkosc, droga)
- avgPredkosc<-sum(predkosc)/length(predkosc);
- avgDroga<-sum(droga)/length(droga);
- #Tu liczymy średnie wartości, nie chciało mi się szukać legitnej funkcji wiec dzielę sumę przez ilość
- plot(auta$predkosc,y=auta$droga);
- #Rysujemy wykres
- points(avgPredkosc,avgDroga,pch="x");
- #Dodajemy punkt od średnich danych, jest on oznaczony jako x a nie jako kółko
- scatter.smooth(x=auta$predkosc, y=auta$droga, main="Droga / Predkosc");
- #To robi taką linię trendu, nie wiem jak po polskiemu
- points(avgPredkosc,avgDroga,pch="x");
- modelReg<- lm(droga ~ predkosc, data=auta);
- #Tu robimy model regresji liniowej
- print(modelReg)
- #droga=Intercept+(β∗predkosc)
- #β=predkosc wyliczona z regresji
- summary(modelReg);
- #Tu nam wychodzi że p-value jest znacznie mniejsze od 0,05 więc dobry
- #model regresji (jest statystycznie znaczący)
- AIC(modelReg);
- BIC(modelReg);
- #Tu robimy 3 modele:
- set.seed(100) #Ziarno do losowania
- daneTreningoweIndex1 <- sample(1:nrow(auta), 0.8*nrow(auta)) #Liczba wierszy do trenowania
- daneTreningoweIndex2 <- sample(1:nrow(auta), 0.8*nrow(auta))
- daneTreningoweIndex3 <- sample(1:nrow(auta), 0.8*nrow(auta))
- daneTreningowe1 <- auta[daneTreningoweIndex1, ] #dane do trenowania
- daneTreningowe2 <- auta[daneTreningoweIndex2, ]
- daneTreningowe3 <- auta[daneTreningoweIndex3, ]
- daneTestowe1 <- auta[-daneTreningoweIndex1, ] #dane testowe
- daneTestowe2 <- auta[-daneTreningoweIndex2, ]
- daneTestowe3 <- auta[-daneTreningoweIndex3, ]
- Model1 <- lm(droga ~ predkosc, data=daneTreningowe1) #tworzymy model
- Model2 <- lm(droga ~ predkosc, data=daneTreningowe2)
- Model3 <- lm(droga ~ predkosc, data=daneTreningowe3)
- szacowanaDroga1 <- predict(Model1, daneTestowe1) #Oszacuj droge
- szacowanaDroga2 <- predict(Model2, daneTestowe2)
- szacowanaDroga3 <- predict(Model3, daneTestowe3)
- summary (Model1) #Podsumowanie
- summary (Model2)
- summary (Model3)
- wlasciwe1 <- data.frame(cbind(wlasciwe=daneTestowe1$droga, przewidywane=szacowanaDroga1)) #Wyliczamy czy model prawdziwy
- wlasciwe2 <- data.frame(cbind(wlasciwe=daneTestowe2$droga, przewidywane=szacowanaDroga2))
- wlasciwe3 <- data.frame(cbind(wlasciwe=daneTestowe3$droga, przewidywane=szacowanaDroga3))
- trafnosc1 <- cor(wlasciwe1) #Zapisujemy
- trafnosc2 <- cor(wlasciwe2)
- trafnosc3 <- cor(wlasciwe3)
- head(wlasciwe1);
- head(wlasciwe2);
- head(wlasciwe3);
- print(trafnosc1); #wypisujemy poprawnosc modelu
- print(trafnosc2);
- print(trafnosc3);
- #plot(Model1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement