Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- #import numpy
- #from pylab import *
- def average(A):
- size = len(A)
- arraySum = 0
- for i in range(0, size):
- arraySum += A[i]
- return arraySum / size
- def standard_deviation(A):
- avg = average(A)
- size = len(A)
- arraySum = 0
- for i in range(0, size):
- arraySum += ((A[i] - avg) * (A[i] - avg))
- return sqrt(arraySum / size)
- def covariance(X, Y):
- avgX = average(X)
- avgY = average(Y)
- size = len(X)
- XY = []
- for i in range(0, size):
- XY.append(X[i] * Y[i])
- avgXY = average(XY)
- return avgXY - (avgX * avgY)
- def rPearson_compound(X, Y):
- cov = covariance(X, Y)
- stdX = standard_deviation(X)
- stdY = standard_deviation(Y)
- return cov / (stdX * stdY)
- def linear_regression(X, Y):
- cov = covariance(X, Y)
- stdX = standard_deviation(X)
- avgX = average(X)
- avgY = average(Y)
- a = cov / (stdX * stdX)
- b = avgY - a * avgX
- return {'a': a, 'b': b}
- xArray = []
- yArray = []
- xyArray = []
- with open(sys.argv[1], "r") as ins:
- for line in ins:
- splittedLine = line.split(" ")
- xArray.append(float(splittedLine[0]))
- yArray.append(float(splittedLine[1]))
- xyArray.append(float(splittedLine[0]) * float(splittedLine[1]))
- xAvg = numpy.average(xArray)
- yAvg = numpy.average(yArray)
- xyAvg = numpy.average(xyArray)
- xStd = numpy.std(xArray)
- yStd = numpy.std(yArray)
- # cov = numpy.cov([xArray, yArray], ddof = 0)
- cov = xyAvg - (xAvg * yAvg);
- cor = cov / (xStd * yStd)
- regressionA = round(cov / (xStd * xStd), 3)
- regressionB = round(yAvg - regressionA * xAvg, 3)
- sm = min(xArray) - 1
- bg = max(xArray) + 1
- smY = regressionA * sm + regressionB
- bgY = regressionA * bg + regressionB
- lineX = [sm, bg]
- lineY = [smY, bgY]
- print(xArray);
- print(yArray);
- print("Średnia X: {}".format(xAvg))
- print("Średnia Y: {}".format(yAvg))
- print("Średnia X: {}".format(average(xArray)))
- print("Średnia Y: {}".format(average(yArray)))
- print("Odchylenie standardowe X: {}".format(xStd))
- print("Odchylenie standardowe Y: {}".format(yStd))
- print("Odchylenie standardowe X: {}".format(standard_deviation(xArray)))
- print("Odchylenie standardowe Y: {}".format(standard_deviation(yArray)))
- print("Kowariancja: {}".format(cov))
- print("Kowariancja: {}".format(covariance(xArray, yArray)))
- print("Współczynnik korelacji r-Pearsona: {}".format(cor))
- print("Współczynnik korelacji r-Pearsona: {}".format(rPearson_compound(xArray, yArray)))
- print("Prosta regresji : y = {} * x + {}".format(regressionA, regressionB))
- reg = linear_regression(xArray, yArray)
- print("Prosta regresji : y = {} * x + {}".format(reg['a'], reg['b']))
- plot(xArray, yArray, "ro");
- plot(lineX, lineY)
- xlabel("Oś x")
- ylabel("Oś y")
- title("AWD")
- savefig("awd.png")
- print("Wykres zapisano do pliku awd.png")
Advertisement
Add Comment
Please, Sign In to add comment