var1 = function(x) { return(mean(x**2)-mean(x)**2) } var2 = function(x,n) { return(weighted.mean(x**2,n)-weighted.mean(x,n)**2) } sd1 = function(x) { return(sqrt(var1(x))) } sd2 = function(x,n) { return(sqrt(var2(x,n))) } covariance = function(x,y){ return(sum((x-mean(x))*(y-mean(y)))/length(x)) } # correlation = function(x, y) { # return(covariance(x,y)/(sd1(x) * sd1(y))) # } droite_yx = function(x, y) { m = covariance(x,y) / var1(x) p = mean(y) - m*mean(x) return (c(m, p)) } droite_xy = function(x, y) { m = covariance(x, y) / var1(y) p = mean(x) - m * mean(y) return (c(m, p)) } reg_yx <- droite_yx(x, y) reg_xy <- droite_xy(x, y) plot(x, y, main = "Régression Vitesse vs Distance de freinage", xlab = "Vitesse (km/h)", ylab = "Distance de freinage (m)", pch = 19, col = "blue", cex = 1.2) abline(a = reg_yx[2], b = reg_yx[1], col = "red", lwd = 1) abline(a = -reg_xy[2]/reg_xy[1], b = 1/reg_xy[1], col = "purple", lwd = 1)