This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Drop irrelevant columns | |
cols_to_drop = ['PT08.S1(CO)', 'C6H6(GT)', 'PT08.S2(NMHC)', 'PT08.S4(NO2)', 'PT08.S5(O3)', 'T', 'RH', 'AH'] | |
weekly_data = weekly_data.drop(cols_to_drop, axis=1) | |
# Import Prophet | |
from fbprophet import Prophet | |
import logging | |
logging.getLogger().setLevel(logging.ERROR) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Make dates actual dates | |
data['Date'] = pd.to_datetime(data['Date']) | |
# Convert measurements to floats | |
for col in data.iloc[:,2:].columns: | |
if data[col].dtypes == object: | |
data[col] = data[col].str.replace(',', '.').astype('float') | |
# Compute the average considering only the positive values | |
def positive_average(num): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import warnings | |
warnings.filterwarnings('ignore') | |
import numpy as np | |
import pandas as pd | |
from scipy import stats | |
import statsmodels.api as sm | |
import matplotlib.pyplot as plt | |
%matplotlib inline |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Make a dataframe containing actual and predicted prices | |
comparison = pd.DataFrame({'actual': [18.93, 19.23, 19.08, 19.17, 19.11, 19.12], | |
'predicted': [18.96, 18.97, 18.96, 18.92, 18.94, 18.92]}, | |
index = pd.date_range(start='2018-06-05', periods=6,)) | |
#Plot predicted vs actual price | |
plt.figure(figsize=(17, 8)) | |
plt.plot(comparison.actual) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Set initial values and some bounds | |
ps = range(0, 5) | |
d = 1 | |
qs = range(0, 5) | |
Ps = range(0, 5) | |
D = 1 | |
Qs = range(0, 5) | |
s = 5 | |
#Create a list with all possible combinations of parameters |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def tsplot(y, lags=None, figsize=(12, 7), syle='bmh'): | |
if not isinstance(y, pd.Series): | |
y = pd.Series(y) | |
with plt.style.context(style='bmh'): | |
fig = plt.figure(figsize=figsize) | |
layout = (2,2) | |
ts_ax = plt.subplot2grid(layout, (0,0), colspan=2) | |
acf_ax = plt.subplot2grid(layout, (1,0)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def double_exponential_smoothing(series, alpha, beta): | |
result = [series[0]] | |
for n in range(1, len(series)+1): | |
if n == 1: | |
level, trend = series[0], series[1] - series[0] | |
if n >= len(series): # forecasting | |
value = result[-1] | |
else: | |
value = series[n] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def exponential_smoothing(series, alpha): | |
result = [series[0]] # first value is same as series | |
for n in range(1, len(series)): | |
result.append(alpha * series[n] + (1 - alpha) * result[n-1]) | |
return result | |
def plot_exponential_smoothing(series, alphas): | |
plt.figure(figsize=(17, 8)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def plot_moving_average(series, window, plot_intervals=False, scale=1.96): | |
rolling_mean = series.rolling(window=window).mean() | |
plt.figure(figsize=(17,8)) | |
plt.title('Moving average\n window size = {}'.format(window)) | |
plt.plot(rolling_mean, 'g', label='Rolling mean trend') | |
#Plot confidence intervals for smoothed values | |
if plot_intervals: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Plot closing price | |
plt.figure(figsize=(17, 8)) | |
plt.plot(data.CLOSE) | |
plt.title('Closing price of New Germany Fund Inc (GF)') | |
plt.ylabel('Closing price ($)') | |
plt.xlabel('Trading day') | |
plt.grid(False) | |
plt.show() |
NewerOlder