------------------------------ ZADANIE 1 (METODA NA PIECHOTE) ------------------------------ dane=read.csv2("Raty.csv") dane dochod<-dane[,1] wiek<-dane[,2] wydatek<-dane[,3] #liczebnosc probki n<-length(dochod) #Licze rednie z wydatkow i dochodow: md<-mean(dochod) mw<-mean(wydatek) #oraz odchylenia standardowe: sd<-sd(dochod) sw<-sd(wydatek) #Obliczam wspolczynnik korelacji danych wydatkow i dochodow: r<-cor(dochod,wydatek) #obliczam wspolczynniki regresji liniowej y=Ax+B : A<-r*sw/sd B<-mw-A*md x<-seq(1000,4000,by=1) y<-A*x+B #dziele dane na osoby z ratami i bez rat rata<-dane[,4] #bez rat dochodN<-dochod[rata=="N"] wydatekN<-wydatek[rata=="N"] #liczebnosc probki nN<-length(dochodN) #Licze rednie z wydatkow i dochodow: mdN<-mean(dochodN) mwN<-mean(wydatekN) #oraz odchylenia standardowe: sdN<-sd(dochodN) swN<-sd(wydatekN) #Obliczam wspolczynnik korelacji danych wydatkow i dochodow: rN<-cor(dochodN,wydatekN) #obliczam wspolczynniki regresji liniowej y=ATx+BT : AN<-rN*swN/sdN BN<-mwN-AN*mdN xN<-seq(1000,4000,by=1) yN<-AN*xN+BN #z ratami dochodT<-dochod[rata=="T"] wydatekT<-wydatek[rata=="T"] #liczebnosc probki nT<-length(dochodT) #Licze rednie z wydatkow i dochodow: mdT<-mean(dochodT) mwT<-mean(wydatekT) #oraz odchylenia standardowe: sdT<-sd(dochodT) swT<-sd(wydatekT) #Obliczam wspolczynnik korelacji danych wydatkow i dochodow: rT<-cor(dochodT,wydatekT) #obliczam wspolczynniki regresji liniowej y=ATx+BT : AT<-rT*swT/sdT BT<-mwT-AT*mdT xT<-seq(1000,4000,by=1) yT<-AT*xT+BT #wszystkie wykresy na jednym: plot(dochod,wydatek,main="Wszystkie krzywe regresji na jednym wykresie",col="red");lines(x,y,lwd=2);lines(xN,yN,lwd=2,col="blue");lines(xT,yT,lwd=2,col="green") ---------------------------------------------------------------- ZADANIE 1 (METODA Z WYKORZYSTANIEM WBUDOWANYCH FUNKCJI REGRESJI) ---------------------------------------------------------------- #wykres punktowy: plot(dochod,wydatek,col="red") #model regresji liniowej zaleznosci wydatkow od dochodow: reg1<-lm(wydatek~dochod) #nanosimy krzywa regresji na wykres: abline(reg1,col="blue",lwd=2) #model regresji liniowej wydatkow od dochodow osob z ratami: reg2<-lm(wydatek[rata=="T"]~dochod[rata=="T"]) #nanosimy krzywa regresji na wykres: abline(reg2,col="red",lwd=2) #model regresji liniowej wydatkow od dochodow osob bez rat: reg3<-lm(wydatek[rata=="N"]~dochod[rata=="N"]) #nanosimy krzywa regresji na wykres: abline(reg3,col="green",lwd=2) ------------ ZADANIE 3 ------------ #model regresji liniowej zaleznosci wydatkow od dochodow oraz wieku: reg3D<-lm(wydatek~dochod+wiek) #Aby narysowac wykres plaszczyzny regresji musimy zdefiniowac funkcje y=Ax+By+C #gdzie A,B,C to wyliczone wspolczynniki tej regresji: f<-function(a,b) reg3D$coef[2]*a+reg3D$coef[3]*b+reg3D$coef[1] #opisujemy os dochodow (os OX): arg_d<-seq(1000,4200,by=400) #dochod z przedzialu od 1000 do 4200 #opisujemy os wiekow (os OY): arg_w<-seq(21,60) #wiek z przedzialu od 21 do 60 #macierz wartosci funkcji regresji: wart_wyd=outer(arg_d,arg_w,f) #wykres plaszczyzny regresji: wykres=persp(x=arg_d,y=arg_w,z=wart_wyd,xlab="Dochod",ylab="Wiek",zlab ="Wydatek",ticktype="detailed",theta=-40,phi=25, main="Zależnoć wydatków od dochodów i wieku",col="grey") #nanosimy dane empiryczne: points(trans3d(dochod, wiek, wydatek, wykres), col="red", lwd = 2, pch = 20) #oraz kreski empiryczne wyznaczajace polozenie punktow wzgledem plaszczyzny regresji: segments(trans3d(dochod, wiek, wydatek, wykres)$x, trans3d(dochod, wiek, wydatek, wykres)$y, trans3d(dochod, wiek, predict(reg3D), wykres)$x, trans3d(dochod, wiek, predict(reg3D), wykres)$y) ="detailed",theta=-40,phi=25, main="Zależnoć wydatków od dochodów i wieku",col="grey") #nanosimy dane empiryczne: points(trans3d(dochod, wiek, wydatek, wykres), col="red", lwd = 2, pch = 20) #oraz kreski empiryczne
aivliska