. Посчитать ковариацию, коэффициент корреляции. Вывести это добро в shall. Написано на версии 2.7.4 . В программировании опыта не имею, питоном увлекся неделю назад. Наслышан об “индийском” коде. Хотелось бы избежать сего порока
Заранее благодарю за внимание и любые советы!
Ps. What is the most common language?
Bad English

import csv x_average, y_average, xy_average = 0, 0, 0 infile = open('data.txt','r') table = [['X','Y']] for row in csv.reader(infile): table.append(row) infile.close() for i in range(1, len(table)): for j in range(len(table[1])): table[i][j] = float(table[i][j]) import numpy as np ## colunm 0 = Xi; c1 = Yi; EXTRA: c2 = Xi*Yi, c3 = (Xi - X), c4 = Yi -Y matrix = np.zeros((len(table)-1, len(table[1])+3)) for i in range(len(table)-1): for j in range(len(table[1])): matrix[i,j] = table[i+1][j] matrix[i,2] = matrix[i,0]*matrix[i,1] ## Xi*Yi x_average += matrix[i,0] ## X cumulative sum y_average += matrix[i,1] ## Y cumulative sum xy_average += matrix[i,2] ## X*Y cumulative sum ## or average = matrix.sum(axis = 0) ## calculate average values of X, Y and X*Y x_average = x_average/float(len(table)-1) y_average = y_average/float(len(table)-1) xy_average = xy_average/float(len(table)-1) ## cov(X,Y) = sum(Xi*Yi)/n-XY cov = xy_average - x_average*y_average ## var = (sum(Xi - X)**2)/n var_x, var_y = 0, 0 for i in range(len(table)-1): matrix[i,3] = (matrix[i,0]-x_average)**2 ## (Xi - X)^2 matrix[i,4] = (matrix[i,1]-y_average)**2 ## (Yi - Y)^2 var_x += matrix[i,3] var_y += matrix[i,4] ## calculate variance of X(var_x), Y(var_y), correlation coefficient "r" ## r = cov(X,Y)/((var(X)*var(Y))**0.5) var_x = var_x/float(len(table)-1) var_y = var_y/float(len(table)-1) r = cov/((var_x*var_y)**0.5) ## b = cov(X,Y)/var(X) b = cov/var_x ## a = Y - bX a = y_average - b*x_average print 'linear model equation\nY=',a,'+',b,'*X\ncovariance = ',cov,'\ncorrelation coeffitient = ',r,''
