# Regresja liniowa dla irysów. Przygotowanie danych: usuwamy kolumnę # oznaczającą klasę, następnie znajdujemy kolumnę, która najsłabiej koreluje z # pozostałymi i oznaczamy ją przez y. data(iris); X=as.matrix(iris[,-5]) #print(cor(X)) Y=X[,2]; X=X[,-2] # Wszystkie obliczenia związane z regresją lin wykonuje lm # summary podaje streszczenie obliczeń mm=lm(Y~X) print(summary(mm)); print(cor(Y,mm$fitt)) # Sprawdzamy obliczenia lm dotyczące współczynników regresji za pomoca solve # x=solve(A,b) rozwiazuje uklad Ax=b, solve(A) znajduje odrotność macierzy X=cbind(1,X) cc = solve( t(X) %*% X, t(X) %*% Y ) print(cc) sse=sum((Y-mm$fit)^2) V = sse / (nrow(X)-ncol(X)) * solve( t(X) %*% X ) print(sqrt(diag(V))) # odchyl. stand. dla współczynników regresji ssr=sum((mm$fit-mean(mm$fit))^2) F = (ssr/(ncol(X)-1)) / (sse/(nrow(X)-ncol(X))) # Stat F - istotność modelu print(F) print(1-pf(F,4,195)) # p-wartość