Toy Example Note

Author

GUEBIN CHOI

Published

April 27, 2023

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import pickle
T = 50
t = np.arange(T)/T * 10 
def load_data(fname):
    with open(fname, 'rb') as outfile:
        data_dict = pickle.load(outfile)
    return data_dict
def save_data(data_dict,fname):
    with open(fname,'wb') as outfile:
        pickle.dump(data_dict,outfile)
import torch
x = 50*np.sin(2*t)#+30*np.sin(5*t)
eps_x  = np.random.normal(size=T)
y = x.copy()
for i in range(2,T):
    y[i] = 0.35*x[i-1] - 0.15*x[i-2] + 50*np.cos(0.5*t[i]) 
eps_y  = np.random.normal(size=T)
plt.plot(t,x,color='C0',lw=5)
plt.plot(t,x+eps_x,alpha=0.5,color='C0')
plt.plot(t,y,color='C1',lw=5)
plt.plot(t,y+eps_y,alpha=0.5,color='C1')
_node_ids = {'node1':0, 'node2':1}



_node_ids = {'node1':0, 'node2':1}

_FX1 = np.stack([x,y],axis=1).tolist()

_edges1 = torch.tensor([[1,0]]).tolist()

data_dict1 = {'edges':_edges1, 'node_ids':_node_ids, 'FX':_FX1}
#data_dict = itstgcn.load_data('./data/fivenodes.pkl')

save_data(data_dict1, './data/toy_example1.pkl')

data1 = pd.DataFrame({'x':x,'y':y,'xer':x,'yer':y})

save_data(data1, './data/toy_example_true1.csv')

np.stack([x+eps_x,y+eps_y],axis=1).shape
(800, 2)
_node_ids = {'node1':0, 'node2':1}
_FX = np.stack([x+eps_x,y+eps_y],axis=1).tolist()
_edges = torch.tensor([[0,0],[0,1],[1,0],[1,1]]).tolist()
data_dict = {'edges':_edges, 'node_ids':_node_ids, 'FX':_FX}
data_dict['edges']
[[0, 0], [0, 1], [1, 0], [1, 1]]
np.array(data_dict['edges']).shape
(4, 2)
save_data(data_dict, './data/toy_example.pkl')
data_dict = load_data('./data/toy_example.pkl')
data_dict.keys()
dict_keys(['edges', 'node_ids', 'FX'])
data_dict['edges']
[[0, 0], [0, 1], [1, 0], [1, 1]]
data_dict['node_ids']
{'node1': 0, 'node2': 1}
np.array(data_dict['FX']).shape
(800, 2)
data = pd.DataFrame({'x':x,'y':y,'xer':x+eps_x,'yer':y+eps_y})
save_data(data, './data/toy_example_true.csv')
data = load_data('./data/toy_example_true.csv')
_node_ids = {'node1':0, 'node2':1}
_FX1 = np.stack([x,y],axis=1).tolist()
_edges1 = torch.tensor([[1,0]]).tolist()
data_dict1 = {'edges':_edges1, 'node_ids':_node_ids, 'FX':_FX1}
#data_dict = itstgcn.load_data('./data/fivenodes.pkl')
save_data(data_dict1, './data/toy_example1.pkl')
data1 = pd.DataFrame({'x':x,'y':y,'xer':x,'yer':y})
save_data(data1, './data/toy_example_true1.csv')