Advertisement
pan7nikt

regresja.py

Oct 3rd, 2024
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.04 KB | None | 0 0
  1. import matplotlib.pyplot as plt
  2. from scipy import stats
  3. import numpy as np
  4. import csv
  5. import math
  6.  
  7. data_x = []
  8. data_y = []
  9.  
  10. #Pobieranie danych
  11. with open("data1.csv", newline = '') as csvdata:
  12.     csv_reader = csv.reader(csvdata)
  13.  
  14.     for line in csv_reader:
  15.         #print(line[1])
  16.         data_x.append(float(line[0]))
  17.         data_y.append(float(line[1]))
  18.  
  19. #Ustawienie tickow dla osi X
  20. #TODO: ticki dla osi Y jak bedzie trzeba
  21. x_ticks = np.arange(math.floor(min(data_x)),math.ceil(max(data_x))+1,1)
  22. #print(x_ticks)
  23. #print(max(data_x))
  24.  
  25. #Tworzenie wykresu rozproszonnego i ustawienie tickow X
  26. plt.scatter(data_x,data_y)
  27. plt.xticks(x_ticks)
  28.  
  29. #Workaround do normalnej regresi liniowej (tutaj uzywamy biblioteki, ktorej potencjalnie nie musimy)
  30. slope, intercept, r, p, std_err = stats.linregress(data_x,data_y)
  31.  
  32. def myfunc(data_x):
  33.   return slope * data_x + intercept
  34.  
  35. mymodel = list(map(myfunc, data_x))
  36.  
  37. #nalozenie regresji liniowej na wykres
  38. plt.plot(data_x, mymodel, color='red')
  39.  
  40. #Znalezienie R pearsona
  41.  
  42. plt.show()
  43.  
  44.  
  45.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement