Professional Documents
Culture Documents
June 6, 2021
DATE MAGNITUDE
199 1910.01 6.83
200 1910.01 6.59
201 1910.01 6.98
1
B: Categorization (Table2, Figure 2) (15%)
2
table2 = table2.append({"Date": f"{i}-{i+10}", "Magnitude": "7 <= x < 8",␣
,→"Count": matrix_B.loc[ (matrix_B["MAGNITUDE"].between(7,8)) &␣
,→(matrix_B["DATE"].between(i, i+10)) ].count()["DATE"]}, ignore_index=True)
3
right;">17</td><td>1950-1960</td><td>7 <= x < 8 </td><td style="text-
align: right;"> 81</td></tr>\n<tr><td style="text-align:
right;">18</td><td>1950-1960</td><td>8 <= x < 9 </td><td style="text-
align: right;"> 7</td></tr>\n<tr><td style="text-align:
right;">19</td><td>1950-1960</td><td>9 <= x </td><td style="text-align:
right;"> 0</td></tr>\n<tr><td style="text-align:
right;">20</td><td>1960-1970</td><td>6 <= x < 7 </td><td style="text-
align: right;"> 1080</td></tr>\n<tr><td style="text-align:
right;">21</td><td>1960-1970</td><td>7 <= x < 8 </td><td style="text-
align: right;"> 113</td></tr>\n<tr><td style="text-align:
right;">22</td><td>1960-1970</td><td>8 <= x < 9 </td><td style="text-
align: right;"> 9</td></tr>\n<tr><td style="text-align:
right;">23</td><td>1960-1970</td><td>9 <= x </td><td style="text-align:
right;"> 2</td></tr>\n<tr><td style="text-align:
right;">24</td><td>1970-1980</td><td>6 <= x < 7 </td><td style="text-
align: right;"> 1125</td></tr>\n<tr><td style="text-align:
right;">25</td><td>1970-1980</td><td>7 <= x < 8 </td><td style="text-
align: right;"> 125</td></tr>\n<tr><td style="text-align:
right;">26</td><td>1970-1980</td><td>8 <= x < 9 </td><td style="text-
align: right;"> 8</td></tr>\n<tr><td style="text-align:
right;">27</td><td>1970-1980</td><td>9 <= x </td><td style="text-align:
right;"> 0</td></tr>\n<tr><td style="text-align:
right;">28</td><td>1980-1990</td><td>6 <= x < 7 </td><td style="text-
align: right;"> 1104</td></tr>\n<tr><td style="text-align:
right;">29</td><td>1980-1990</td><td>7 <= x < 8 </td><td style="text-
align: right;"> 91</td></tr>\n<tr><td style="text-align:
right;">30</td><td>1980-1990</td><td>8 <= x < 9 </td><td style="text-
align: right;"> 1</td></tr>\n<tr><td style="text-align:
right;">31</td><td>1980-1990</td><td>9 <= x </td><td style="text-align:
right;"> 0</td></tr>\n<tr><td style="text-align:
right;">32</td><td>1990-2000</td><td>6 <= x < 7 </td><td style="text-
align: right;"> 1155</td></tr>\n<tr><td style="text-align:
right;">33</td><td>1990-2000</td><td>7 <= x < 8 </td><td style="text-
align: right;"> 120</td></tr>\n<tr><td style="text-align:
right;">34</td><td>1990-2000</td><td>8 <= x < 9 </td><td style="text-
align: right;"> 5</td></tr>\n<tr><td style="text-align:
right;">35</td><td>1990-2000</td><td>9 <= x </td><td style="text-align:
right;"> 0</td></tr>\n<tr><td style="text-align:
right;">36</td><td>2000-2010</td><td>6 <= x < 7 </td><td style="text-
align: right;"> 1209</td></tr>\n<tr><td style="text-align:
right;">37</td><td>2000-2010</td><td>7 <= x < 8 </td><td style="text-
align: right;"> 118</td></tr>\n<tr><td style="text-align:
right;">38</td><td>2000-2010</td><td>8 <= x < 9 </td><td style="text-
align: right;"> 10</td></tr>\n<tr><td style="text-align:
right;">39</td><td>2000-2010</td><td>9 <= x </td><td style="text-align:
right;"> 1</td></tr>\n<tr><td style="text-align:
right;">40</td><td>2010-2020</td><td>6 <= x < 7 </td><td style="text-
4
align: right;"> 983</td></tr>\n<tr><td style="text-align:
right;">41</td><td>2010-2020</td><td>7 <= x < 8 </td><td style="text-
align: right;"> 109</td></tr>\n<tr><td style="text-align:
right;">42</td><td>2010-2020</td><td>8 <= x < 9 </td><td style="text-
align: right;"> 7</td></tr>\n<tr><td style="text-align:
right;">43</td><td>2010-2020</td><td>9 <= x </td><td style="text-align:
right;"> 1</td></tr>\n</tbody>\n</table>'
fig, ax = plt.subplots()
ax.set_xticks(np.arange(0, 120, 10))
plt.title("Figure 2")
plt.plot(table2_1["Date"], table2_1["Count"], label="6 <= x < 7")
plt.plot(table2_2["Date"], table2_2["Count"], label="7 <= x < 8")
plt.plot(table2_3["Date"], table2_3["Count"], label="8 <= x < 9")
plt.legend()
plt.show()
5
[63]: matrix_C = pd.DataFrame({"Date": [], "Cat1":[], "Cat2": [], "Cat3":[]})
for i in range(1910, 2018):
cat1 = matrix_B.loc[(matrix_B["DATE"].between(i, i+1)) &␣
,→(matrix_B["MAGNITUDE"].between(6, 7))].count()["DATE"]
6
table3["std3"] = std3
plt.figure(figsize=(6, 6))
plt.plot(matrix_B['MAGNITUDE'],
[mean for i in range(0, len(matrix_B['MAGNITUDE']))])
plt.plot(matrix_B['MAGNITUDE'], [
mean - std1 for i in range(0, len(matrix_B['MAGNITUDE']))
])
plt.plot(matrix_B['MAGNITUDE'], [
mean + std1 for i in range(0, len(matrix_B['MAGNITUDE']))
])
plt.plot(matrix_B['MAGNITUDE'], [
mean - std2 for i in range(0, len(matrix_B['MAGNITUDE']))
])
plt.plot(matrix_B['MAGNITUDE'], [
mean + std2 for i in range(0, len(matrix_B['MAGNITUDE']))
])
plt.plot(matrix_B['MAGNITUDE'], [
mean - std3 for i in range(0, len(matrix_B['MAGNITUDE']))
])
plt.plot(matrix_B['MAGNITUDE'], [
mean + std3 for i in range(0, len(matrix_B['MAGNITUDE']))
])
plt.xlabel("Magnitude")
plt.legend([
'MEAN', 'MEAN - STD1', 'MEAN + STD1', 'MEAN - STD2', 'MEAN + STD2',
'MEAN - STD3', 'MEAN + STD3'
])
plt.title("Figure 3")
7
[65]: table3['BELOW_STD1'] = len(
matrix_B[matrix_B['MAGNITUDE'] < (mean + std1)])
table3['BETWEEN_STD1_STD2'] = len(
matrix_B[(matrix_B['MAGNITUDE'] < (mean + std2))
& (matrix_B['MAGNITUDE'] > (mean + std1))])
table3['ABOVE_STD3'] = len(
matrix_B[matrix_B['MAGNITUDE'] < (mean + std3)])
tabulate.tabulate(table3, ["Mean", "STD 1", "STD 2", "STD 3", "Below STD1",␣
,→"Between STD1 and STD2", "Above STD3"], tablefmt='html')
8
STD3</th></tr>\n</thead>\n<tbody>\n<tr><td style="text-align: right;"> 0</td><td
style="text-align: right;">6.43237</td><td style="text-align:
right;">0.420982</td><td style="text-align: right;">0.841963</td><td
style="text-align: right;">1.26294</td><td style="text-align: right;">
10319</td><td style="text-align: right;"> 1062</td><td
style="text-align: right;"> 11782</td></tr>\n</tbody>\n</table>'
9
[13]: below_q1 = 0
between_q1_q3 = 0
above_q3 = 0
for i in matrix_B["MAGNITUDE"]:
if i < q1:
below_q1 += 1
if q1 < i < q3:
between_q1_q3 += 1
if i > q3:
above_q3 += 1
table4["below_q1"] = below_q1
table4["between_q1_q3"] = between_q1_q3
table4["above_q3"] = above_q3
tabulate.tabulate(table4, ["Median", "Q1", "Q3", "Below Q1", "Between Q1 and␣
,→Q3", "Above Q3"], tablefmt='html')
matrix_D['Rolling_mean'] = matrix_D.iloc[:,1].rolling(window=10).mean()
matrix_D['Rolling_std1'] = matrix_D.iloc[:,1].rolling(window=10).std()
matrix_D['Rolling_std2'] = matrix_D.iloc[:,1].rolling(window=10).std()*2
matrix_D['Rolling_std3'] = matrix_D.iloc[:,1].rolling(window=10).std()*3
plt.plot(matrix_D["Year"], matrix_D["Rolling_mean"])
plt.plot(matrix_D["Year"], matrix_D["Rolling_std1"])
plt.plot(matrix_D["Year"], matrix_D["Rolling_std2"])
plt.plot(matrix_D["Year"], matrix_D["Rolling_std3"])
plt.legend(["Rolling Mean", "Rolling Std 1", "Rolling Std 2", "Rolling Std 3"])
plt.ylabel("Magnitude")
plt.xlabel("Year")
plt.title("Figure 5")
10
plt.show()
matrix_E['Rolling_q2'] = matrix_E.iloc[:,1].rolling(window=10).quantile(.75,␣
,→interpolation = 'midpoint')
plt.plot(matrix_E['Year'], matrix_E['Rolling_median'])
plt.plot(matrix_E['Year'], matrix_E['Rolling_q1'])
plt.plot(matrix_E['Year'], matrix_E['Rolling_q2'])
plt.legend(["Rolling Median", "Rolling Q1", "Rolling Q2"])
plt.title("Figure 6")
plt.ylabel("Magnitude")
plt.xlabel("Year")
plt.show()
11
[16]: table_7 = pd.DataFrame(index=[0])
12
tabulate.tabulate( table_7, ["Thickness Fraction", "Thickness", "Year Mode",␣
,→"Magnitude Mode"], tablefmt='html' )
13
[16]: '<table>\n<thead>\n<tr><th style="text-align: right;"> </th><th style="text-
align: right;"> Thickness Fraction</th><th style="text-align: right;">
Thickness</th><th style="text-align: right;"> Year Mode</th><th style="text-
align: right;"> Magnitude Mode</th></tr>\n</thead>\n<tbody>\n<tr><td
style="text-align: right;"> 0</td><td style="text-align: right;">
0.0533343</td><td style="text-align: right;"> 18</td><td style="text-
align: right;"> 2008.19</td><td style="text-align: right;">
6.09861</td></tr>\n</tbody>\n</table>'
# print(matrix_B["MAGNITUDE"].idxmax())
plt.title("Figure 8")
# fig, ax = plt.subplots()
# ax = matrix_F.boxplot(column=["MAGNITUDE"], by=["DATE"])
# ax = matrix_F.boxplot(column=["MAGNITUDE"])
# ax.set_xticks(np.arange(0, 120, 10))
# plt.boxplot(column=[matrix_F["MAGNITUDE"]], by=[matrix_F["DATE"]])
plt.show()
tabulate.tabulate(table_8, ["Type", "Date", "Magnitude"], tablefmt="html")
14
[17]: '<table>\n<thead>\n<tr><th style="text-align: right;"> </th><th>Type
</th><th style="text-align: right;"> Date</th><th style="text-align: right;">
Magnitude</th></tr>\n</thead>\n<tbody>\n<tr><td style="text-align: right;">
0</td><td>Min Value</td><td style="text-align: right;">1914.05</td><td
style="text-align: right;"> 6 </td></tr>\n<tr><td style="text-align:
right;"> 1</td><td>Max Value</td><td style="text-align: right;">1960.05</td><td
style="text-align: right;"> 9.55</td></tr>\n</tbody>\n</table>'
15
plt.show()
plt.hist(matrix_B["MAGNITUDE"], bins=int(1/thickness))
plt.title("Figure 9")
plt.xlabel("Magnitude")
plt.ylabel("Times")
plt.plot()
plt.show()
16
[19]: fig, ax = plt.subplots(figsize=(7,6))
matrix_F.boxplot(column="MAGNITUDE", by="RANGE", ax=ax, showfliers=False)
plt.show()
17
[146]: fig, ax = plt.subplots(figsize=(8,7))
18
tmp = matrix_C.assign(fit=res.fittedvalues)
plt.plot(tmp["Date"], tmp["Cat3"], label="Category 3 (8 <= x < 9)")
plt.plot(tmp["Date"], tmp["fit"], label="Category 3 linear fit", color="pink")
print(res.summary())
print(res.params)
plt.legend()
plt.show()
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly
specified.
[2] The condition number is large, 1.24e+05. This might indicate that there are
strong multicollinearity or other numerical problems.
Intercept 3.415681
Date -0.001362
dtype: float64
19
20