|
|
|
|
|
|
|
|
'''
|
|
|
The slope is defined as how much calorie burnage increases, if average pulse increases by one. It tells us how "steep" the diagonal line is.
|
|
|
We can find the slope by using the proportional difference of two points from the graph.
|
|
|
If the average pulse is 80, the calorie burnage is 240
|
|
|
If the average pulse is 90, the calorie burnage is 260
|
|
|
We see that if average pulse increases with 10, the calorie burnage increases by 20.
|
|
|
'''
|
|
|
|
|
|
|
|
|
'''
|
|
|
f(x2) = Second observation of Calorie_Burnage = 260
|
|
|
f(x1) = First observation of Calorie_Burnage = 240
|
|
|
x2 = Second observation of Average_Pulse = 90
|
|
|
x1 = First observation of Average_Pulse = 80
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def slope(x1,y1, x2,y2):
|
|
|
s = (y2-y1)/(x2-x1)
|
|
|
return s
|
|
|
print(slope(80,240,90,260))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'''
|
|
|
Does it make sense that average pulse is zero?
|
|
|
No, you would be dead and you certainly would not burn any calories.
|
|
|
However, we need to include the intercept in order to complete the mathematical function's ability to predict Calorie_Burnage correctly.
|
|
|
'''
|
|
|
'''
|
|
|
Other examples where the intercept of a mathematical function can have a practical meaning:
|
|
|
Predicting next years revenue by using marketing expenditure (How much revenue will we have next year, if marketing expenditure is zero?). It is likely to assume that a company will still have some revenue even though if it does not spend money on marketing.
|
|
|
Fuel usage with speed (How much fuel do we use if speed is equal to 0 mph?). A car that uses gasoline will still use fuel when it is idle.
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
|
|
import pandas as pd
|
|
|
import numpy as np
|
|
|
health_data = pd.read_csv('data-calculate-slope-and-intercept.csv', header=0, sep=',')
|
|
|
x = health_data['Average_Pulse']
|
|
|
y = health_data['Calorie_Burnage']
|
|
|
slope_intercept = np.polyfit(x,y,1)
|
|
|
print(slope_intercept)
|
|
|
'''
|
|
|
Example Explained:
|
|
|
Isolate the variables Average_Pulse (x) and Calorie_Burnage (y) from health_data.
|
|
|
Call the np.polyfit() function.
|
|
|
The last parameter of the function specifies the degree of the function, which in this case is "1".
|
|
|
'''
|
|
|
|
|
|
'''
|
|
|
Tip: linear functions = 1.degree function. In our example, the function is linear, which is in the 1.degree. That means that all coefficients (the numbers) are in the power of one.
|
|
|
'''
|
|
|
|
|
|
'''
|
|
|
We have now calculated the slope (2) and the intercept (80). We can write the mathematical function as follow:
|
|
|
Predict Calorie_Burnage by using a mathematical expression:
|
|
|
'''
|
|
|
|
|
|
'''
|
|
|
Task:
|
|
|
Now, we want to predict calorie burnage if average pulse is 135.
|
|
|
Remember that the intercept is a constant. A constant is a number that does not change.
|
|
|
We can now substitute the input x with 135:
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def my_function(x):
|
|
|
return 2 *x + 80
|
|
|
print(my_function(135))
|
|
|
|
|
|
|
|
|
def my_function(x):
|
|
|
return 2*x + 80
|
|
|
print(my_function(140))
|
|
|
|
|
|
def my_function(x):
|
|
|
return 2*x + 80
|
|
|
print(my_function(150))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import pandas as pd
|
|
|
import matplotlib.pyplot as plt
|
|
|
health_data = pd.read_csv('data-linear-functions.csv', header=0, sep=',')
|
|
|
health_data.plot(x ='Average_Pulse', y='Calorie_Burnage', kind='line')
|
|
|
|
|
|
|
|
|
plt.title('Average Pulse vs Calorie Burnage')
|
|
|
plt.xlabel('Average Pulse')
|
|
|
plt.ylabel('Calorie Burnage')
|
|
|
|
|
|
plt.xlim(xmin=0)
|
|
|
plt.ylim(ymin=0)
|
|
|
plt.show()
|
|
|
|
|
|
|
|
|
|
|
|
'''
|
|
|
Example Explained
|
|
|
Import the pyplot module of the matplotlib library
|
|
|
Plot the data from Average_Pulse against Calorie_Burnage
|
|
|
kind='line' tells us which type of plot we want. Here, we want to have a straight line
|
|
|
plt.ylim() and plt.xlim() tells us what value we want the axis to start and stop on.
|
|
|
plt.show() shows us the output
|
|
|
''' |