<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Exercise 02.1
Create a function that receives two inputs a and b, and returns the product of the a decimal of pi and the b decimal of pi.
i.e, 
pi = 3.14159
if a = 2 and b = 4
result = 4 * 5
result = 20
Caveats
Step2:  Exercise 02.2
Using the given dataset. Estimate a linear regression between Employed and GNP.
$$Employed = b_0 + b_1 * GNP $$
$$\hat b = (X^TX)^{-1}X^TY$$
$$Y = Employed$$
$$X = [1  \quad GNP]$$
Step3:  Exercise 02.3
Analyze the baby names dataset using pandas
Step4:  segment the data into boy and girl names
Step5:  Analyzing the popularity of a name over time
<ASSISTANT_TASK:>
Python Code:
from math import pi
def mult_dec_pi(a, b):
    
    # Add the solution here
    
    result = ''
    return result
mult_dec_pi(a=2, b=4)
# 20.0
mult_dec_pi(a=5, b=10)
# 45.0
mult_dec_pi(a=14, b=1)
# 9.0
mult_dec_pi(a=6, b=8)
# 10.0
# Bonus
mult_dec_pi(a=16, b=4)
# 'Error'
Explanation: Exercise 02.1
Create a function that receives two inputs a and b, and returns the product of the a decimal of pi and the b decimal of pi.
i.e, 
pi = 3.14159
if a = 2 and b = 4
result = 4 * 5
result = 20
Caveats:
- a and b are between 1 and 15
- decimals positions 1 and 2 are 1 and 4, respectively. (remember that python start indexing in 0)
End of explanation
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
# Import data
raw_data = 
Year,Employed,GNP
1947,60.323,234.289
1948,61.122,259.426
1949,60.171,258.054
1950,61.187,284.599
1951,63.221,328.975
1952,63.639,346.999
1953,64.989,365.385
1954,63.761,363.112
1955,66.019,397.469
1956,67.857,419.18
1957,68.169,442.769
1958,66.513,444.546
1959,68.655,482.704
1960,69.564,502.601
1961,69.331,518.173
1962,70.551,554.894
data = []
for line in raw_data.splitlines()[2:]:
    words = line.split(',')
    data.append(words)
data = np.array(data, dtype=np.float)
n_obs = data.shape[0]
plt.plot(data[:, 2], data[:, 1], 'bo')
plt.xlabel("GNP")
plt.ylabel("Employed")
Explanation: Exercise 02.2
Using the given dataset. Estimate a linear regression between Employed and GNP.
$$Employed = b_0 + b_1 * GNP $$
$$\hat b = (X^TX)^{-1}X^TY$$
$$Y = Employed$$
$$X = [1  \quad GNP]$$
End of explanation
import pandas as pd
# Load dataset
import zipfile
with zipfile.ZipFile('../datasets/baby-names2.csv.zip', 'r') as z:
    f = z.open('baby-names2.csv')
    names = pd.io.parsers.read_table(f, sep=',')
names.head()
names[names.year == 1993].head()   
Explanation: Exercise 02.3
Analyze the baby names dataset using pandas
End of explanation
boys = names[names.sex == 'boy'].copy()    
girls = names[names.sex == 'girl'].copy()
Explanation: segment the data into boy and girl names
End of explanation
william = boys[boys['name']=='William']
plt.plot(range(william.shape[0]), william['prop'])
plt.xticks(range(william.shape[0])[::5], william['year'].values[::5], rotation='vertical')
plt.ylim([0, 0.1])
plt.show()
Daniel = boys[boys['name']=='Daniel']
plt.plot(range(Daniel.shape[0]), Daniel['prop'])
plt.xticks(range(Daniel.shape[0])[::5], Daniel['year'].values[::5], rotation='vertical')
plt.ylim([0, 0.1])
plt.show()
Explanation: Analyzing the popularity of a name over time
End of explanation
<END_TASK>