Advertisement
Guest User

lin reg

a guest
Jun 6th, 2011
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.02 KB | None | 0 0
  1. # 8-13-LOB.py
  2.  
  3. from graphics import *
  4.  
  5. def listMulti(list1,list2):
  6.     tempAcc = 0
  7.     for i in range(len(list1)):
  8.         tempAcc += list1[i] * list2[i]
  9.     print tempAcc
  10.     return tempAcc
  11.  
  12. def squareList(iterable):
  13.     itSum = 0
  14.     for i in iterable:
  15.         itSum += i**2
  16.     return itSum
  17.        
  18. def listMean(iterable):
  19.     return sum(iterable)/len(iterable)
  20.  
  21. def regression(xList,yList,win):
  22.     xBar = listMean(xList)
  23.     yBar = listMean(yList)
  24.     xListSq = squareList(xList)
  25.     xListXyList = listMulti(xList,yList)
  26.  
  27.     m = ((xListXyList) - ((len(xList)*xBar*yBar)))/\
  28.         ((xListSq) - (len(xList)* (xBar**2)))
  29.    
  30.     y1 = yBar + m*(-50.0 - xBar)
  31.     y2 = yBar + m*(50.0 - xBar)
  32.  
  33.     Line(Point(-50.0,y1),Point(50.0,y2)).draw(win)
  34.  
  35.     return "ybar: %f\txBar: %f\tm: %f\ty1: %f\ty2: %f" %(yBar,xBar,m,y1,y2)
  36.  
  37. def windraw():
  38.     win = GraphWin("Line of Best Fit",500,500)
  39.     win.setCoords(-50.0,-50.0,50.0,50.0)
  40.  
  41.     doneBox = Rectangle(Point(-50,-50),Point(-40,-45))
  42.     doneBox.setWidth(3)
  43.  
  44.     doneBoxTxt = Text(Point(-45,-47.5),"DONE")
  45.  
  46.     doneBox.draw(win)
  47.     doneBoxTxt.draw(win)
  48.  
  49.     return win
  50.  
  51. def pointBuild(xList,yList,win):
  52.     tempPoint = Point(25,25) # prime tempPoint for sentinel loop
  53.     # tests if given point is past rectangle created for doneBox
  54.     while (tempPoint.getX() - (Point(-40,-45)).getX() == abs(tempPoint.getX() - (Point(-40,-45)).getX())) or\
  55.           (tempPoint.getY() - (Point(-40,-45)).getY() == abs(tempPoint.getY() - (Point(-40,-45)).getY())):
  56.        
  57.         tempPoint = win.getMouse()
  58.         tempPoint.draw(win)
  59.         xList.append(tempPoint.getX()); yList.append(tempPoint.getY())
  60.    
  61.    
  62. def main():
  63.     xList,yList = [],[]
  64.  
  65.     win = windraw()
  66.     pointBuild(xList,yList,win)
  67.     print regression(xList,yList,win)
  68.    
  69.  
  70.     # Test out coordinate lists accumulation from pointBuild
  71.     for i in range(len(xList)-1):
  72.         print "Point(%2.2f,%2.2f)" % (xList[i],yList[i])
  73.  
  74.     win.getMouse()
  75.     win.close()
  76.    
  77.  
  78. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement