zadania10.txt

(4 KB) Pobierz
------------------------------
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
Zgłoś jeśli naruszono regulamin