S[10:18, 25:45] = 1
    S[0:3, 6:12] = 2
    S[8:15, 2:12] = 3
    v, Sr = constructVAR(S, [0.0, 0.4, 0.8, 0.7], [-0.5, 0.5], [0.0, 0.0])
#    v, Sr = constructVAR(S, [0.0, 0.001, 0.01], [-0.1, 0.1], [0.00, 0.00], [0.01, 0.01])
    ts = v.simulate(200)
    gf = make_model_geofield(S, ts)
    
    # initialize a parallel pool
    pool = Pool(POOL_SIZE)

    # replace field with surrogate field
    sgf = SurrGeoFieldAR()
    sgf.copy_field(gf)
    sgf.prepare_surrogates(pool)
    sgf.construct_surrogate_with_noise()
    gf = sgf
    gf.d = gf.surr_data().copy()
    
#    # construct "components" from the structural matrix
    Uopt = np.zeros((len(Sr), np.amax(Sr)))   
    for i in range(Uopt.shape[1]):
        Uopt[:,i] = np.where(Sr == (i+1), 1.0, 0.0)
        # remove the first element (it's the driver which is not included in the optimal component)
        Uopt[np.nonzero(Uopt[:,i])[0][0],i] = 0.0
        Uopt[:,i] /= np.sum(Uopt[:,i]**2) ** 0.5

    print("Analyzing data ...")
    
    # compute the eigenvalues and eigenvectors of the (spatial) covariance matrix 
    Ud, sd, Vtd = pca_components_gf(gf.data())
Esempio n. 2
0
S[10:18, 25:45] = 1
S[0:3, 6:12] = 2
v, Sr = constructVAR(S, [0.0, 0.8, 0.8], [-0.1, 0.1], [0.0, 0.0])

#v, Sr = constructVAR2(S, [-0.2, 0.2], [0.0, 0.9, 0.9], 0.8)

#S = np.zeros(shape = (5, 10), dtype = np.int32)
#S[1:4, 0:2] = 1
#S[0:3, 6:9] = 2v, Sr = constructVAR(S, [0.0, 0.191, 0.120], [-0.1, 0.1], [0.00, 0.00], [0.01, 0.01])
ts = v.simulate(768)

gf = make_model_geofield(S, ts)
sgf = SurrGeoFieldAR()
sgf.copy_field(gf)
sgf.prepare_surrogates()
sgf.construct_surrogate_with_noise()
ts2 = sgf.surr_data()

plt.figure(figsize=(8, 8))
plt.imshow(S, interpolation='nearest')
plt.title('Structural matrix')

plt.figure()
plt.imshow(v.A, interpolation='nearest')
plt.colorbar()
plt.title('AR structural')

plt.figure()
plt.plot(ts)
plt.title('Simulated time series')