In [1]:
%matplotlib inline


/Users/NIGG/anaconda/lib/python3.5/site-packages/matplotlib/__init__.py:1035: UserWarning: Duplicate key in file "/Users/NIGG/.matplotlib/matplotlibrc", line #515
  (fname, cnt))
/Users/NIGG/anaconda/lib/python3.5/site-packages/matplotlib/__init__.py:1035: UserWarning: Duplicate key in file "/Users/NIGG/.matplotlib/matplotlibrc", line #516
  (fname, cnt))

In [4]:
import numpy as np
import pandas as pd

# 統計用ツール
import statsmodels.api as sm
import statsmodels.tsa.api as tsa
from patsy import dmatrices

# 自作の空間統計用ツール
from spatialstat import *

#描画
import matplotlib.pyplot as plt
from pandas.tools.plotting import autocorrelation_plot
import seaborn as sns
sns.set(font=['IPAmincho'])

#深層学習
import chainer
from chainer import cuda, Function, gradient_check, Variable, optimizers, serializers, utils
from chainer import Link, Chain, ChainList
import chainer.functions as F
import chainer.links as L

from MakeData import makedata


---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-4-e932e8620666> in <module>()
     23 import chainer.links as L
     24 
---> 25 from MakeData import makedata

ImportError: No module named 'MakeData'

In [ ]:
data = pd.read_csv("TokyoSingle.csv")
data = data.dropna()

In [23]:
datas = makedata(data)


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-23-b1e8b0e68ec8> in <module>()
----> 1 datas = makedata(data)

/Users/NIGG/Projects/不動産/makedata.py in makedata(data)
     53 
     54     #Make Japanese Block name
---> 55     BLOCK = data["CITY_CODE"].copy()
     56     BLOCK[BLOCK == 13101] = "01都心・城南"
     57     BLOCK[BLOCK == 13102] = "01都心・城南"

NameError: name 'pd' is not defined

Main Analysis

OLS part


In [10]:
vars = ['P', 'S', 'L', 'R', 'RW', 'A', 'TS', 'TT', 'WOOD', 'SOUTH', 'CMD', 'IDD', 'FAR', 'X', 'Y']
eq = fml_build(vars)

y, X = dmatrices(eq, data=data, return_type='dataframe')

CITY_NAME = pd.get_dummies(data['CITY_NAME'])
TDQ = pd.get_dummies(data['TDQ'])

X = pd.concat((X, CITY_NAME, TDQ), axis=1)

datas = pd.concat((y, X), axis=1)

datas = datas[datas['12世田谷区'] == 1][0:5000]

In [295]:
class CAR(Chain):
    def __init__(self, unit1, unit2, unit3, col_num):
        self.unit1 = unit1
        self.unit2 = unit2
        self.unit3 = unit3
        super(CAR, self).__init__(
            l1 = L.Linear(col_num, unit1),
            l2 = L.Linear(self.unit1, self.unit1),
            l3 = L.Linear(self.unit1, self.unit2),
            l4 = L.Linear(self.unit2, self.unit3),
            l5 = L.Linear(self.unit3, self.unit3),
            l6 = L.Linear(self.unit3, 1),
        )
    
    def __call__(self, x, y):
        fv = self.fwd(x, y)
        loss = F.mean_squared_error(fv, y)
        return loss
    
    def fwd(self, x, y):
        h1 = F.sigmoid(self.l1(x))
        h2 = F.sigmoid(self.l2(h1))
        h3 = F.sigmoid(self.l3(h2))
        h4 = F.sigmoid(self.l4(h3))
        h5 = F.sigmoid(self.l5(h4))
        h6 = self.l6(h5)
        return h6

In [296]:
class OLS_DLmodel(object):
    def __init__(self, data, vars, bs=200, n=1000):
        self.vars = vars
        eq = fml_build(vars)
        y, X = dmatrices(eq, data=datas, return_type='dataframe')
        self.y_in = y[:-n]
        self.X_in = X[:-n]
        self.y_ex = y[-n:]
        self.X_ex = X[-n:]
        
        self.logy_in = np.log(self.y_in)
        self.logy_ex = np.log(self.y_ex)
        
        self.bs = bs

    def OLS(self):
        X_in = self.X_in
        X_in = X_in.drop(['X', 'Y'], axis=1)
        model = sm.OLS(self.logy_in, X_in, intercept=False)
        self.reg = model.fit()
        print(self.reg.summary())
        df = (pd.DataFrame(self.reg.params)).T
        df['X'] = 0
        df['Y'] = 0
        self.reg.params = pd.Series((df.T)[0])
        
    def directDL(self, ite=100, bs=200, add=False):
        logy_in = np.array(self.logy_in, dtype='float32')
        X_in = np.array(self.X_in, dtype='float32')

        y = Variable(logy_in)
        x = Variable(X_in)

        num, col_num = X_in.shape
        
        if add is False:
            self.model1 = CAR(15, 15, 5, col_num)
        
        optimizer = optimizers.SGD()
        optimizer.setup(self.model1)

        for j in range(ite):
            sffindx = np.random.permutation(num)
            for i in range(0, num, bs):
                x = Variable(X_in[sffindx[i:(i+bs) if (i+bs) < num else num]])
                y = Variable(logy_in[sffindx[i:(i+bs) if (i+bs) < num else num]])
                self.model1.zerograds()
                loss = self.model1(x, y)
                loss.backward()
                optimizer.update()
            if j % 1000 == 0:
                loss_val = loss.data
                print('epoch:', j)
                print('train mean loss={}'.format(loss_val))
                print(' - - - - - - - - - ')
                
        y_ex = np.array(self.y_ex, dtype='float32').reshape(len(self.y_ex))
        X_ex = np.array(self.X_ex, dtype='float32')
        X_ex = Variable(X_ex)

        logy_pred =  self.model1.fwd(X_ex, X_ex).data
        y_pred = np.exp(logy_pred)
        error = y_ex - y_pred.reshape(len(y_pred),)
        plt.hist(error[:])
        
    def DL(self, ite=100, bs=200, add=False):
        y_in = np.array(self.y_in, dtype='float32').reshape(len(self.y_in))
                                                            
        resid = y_in - np.exp(self.reg.predict())
        resid = np.array(resid, dtype='float32').reshape(len(resid),1)
        
        X_in = np.array(self.X_in, dtype='float32')

        y = Variable(resid)
        x = Variable(X_in)

        num, col_num = X_in.shape
        
        if add is False:
            self.model1 = CAR(10, 10, 3, col_num)
            
        optimizer = optimizers.Adam()
        optimizer.setup(self.model1)

        for j in range(ite):
            sffindx = np.random.permutation(num)
            for i in range(0, num, bs):
                x = Variable(X_in[sffindx[i:(i+bs) if (i+bs) < num else num]])
                y = Variable(resid[sffindx[i:(i+bs) if (i+bs) < num else num]])
                self.model1.zerograds()
                loss = self.model1(x, y)
                loss.backward()
                optimizer.update()
            if j % 1000 == 0:
                loss_val = loss.data
                print('epoch:', j)
                print('train mean loss={}'.format(loss_val))
                print(' - - - - - - - - - ')
            
    def predict(self):
        y_ex = np.array(self.y_ex, dtype='float32').reshape(len(self.y_ex))
        
        X_ex = np.array(self.X_ex, dtype='float32')
        X_ex = Variable(X_ex)
        resid_pred =  self.model1.fwd(X_ex, X_ex).data  
        print(resid_pred[:10])
        
        self.logy_pred = np.matrix(self.X_ex)*np.matrix(self.reg.params).T
        self.error1 = np.array(y_ex - np.exp(self.logy_pred.reshape(len(self.logy_pred),)))[0]
        
        self.pred = np.exp(self.logy_pred) + resid_pred
        self.error2 = np.array(y_ex - self.pred.reshape(len(self.pred),))[0]
        
    def compare(self):
        plt.hist(self.error1)
        plt.hist(self.error2)

In [297]:
vars = ['P', 'S', 'L', 'R', 'RW', 'A', 'TS', 'TT', 'WOOD', 'SOUTH', 'CMD', 'IDD', 'FAR', 'X', 'Y']
#vars += vars + list(TDQ.columns)

In [298]:
model = OLS_DLmodel(datas, vars)

In [299]:
model.OLS()


                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      P   R-squared:                       0.773
Model:                            OLS   Adj. R-squared:                  0.772
Method:                 Least Squares   F-statistic:                     1130.
Date:                Fri, 10 Feb 2017   Prob (F-statistic):               0.00
Time:                        23:02:29   Log-Likelihood:                 1308.3
No. Observations:                4000   AIC:                            -2591.
Df Residuals:                    3987   BIC:                            -2509.
Df Model:                          12                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
Intercept      8.7986      0.038    228.864      0.000         8.723     8.874
S              0.0033      0.000     30.422      0.000         0.003     0.004
L              0.0033   9.42e-05     35.165      0.000         0.003     0.003
R              0.0081      0.003      2.541      0.011         0.002     0.014
RW             0.0087      0.001      5.975      0.000         0.006     0.012
A             -0.0008   3.16e-05    -26.233      0.000        -0.001    -0.001
TS            -0.0105      0.001    -16.554      0.000        -0.012    -0.009
TT            -0.0101      0.001    -17.053      0.000        -0.011    -0.009
WOOD          -0.0273      0.008     -3.582      0.000        -0.042    -0.012
SOUTH          0.0223      0.007      3.160      0.002         0.008     0.036
CMD            0.0213      0.022      0.950      0.342        -0.023     0.065
IDD           -0.0649      0.040     -1.608      0.108        -0.144     0.014
FAR           -0.0044      0.000     -9.475      0.000        -0.005    -0.003
==============================================================================
Omnibus:                      268.842   Durbin-Watson:                   1.360
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              812.990
Skew:                          -0.330   Prob(JB):                    2.89e-177
Kurtosis:                       5.108   Cond. No.                     2.86e+03
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The condition number is large, 2.86e+03. This might indicate that there are
strong multicollinearity or other numerical problems.

In [300]:
model.DL(ite=10, bs=200)


epoch: 0
train mean loss=6049555.0
 - - - - - - - - - 

In [301]:
model.predict()


[[ 0.740327  ]
 [ 0.740327  ]
 [ 0.740327  ]
 [ 0.740327  ]
 [ 0.740327  ]
 [ 0.740327  ]
 [ 0.740327  ]
 [ 0.73971379]
 [ 0.740327  ]
 [ 0.740327  ]]

In [302]:
model.DL(ite=20000, bs=200, add=True)


epoch: 0
train mean loss=4328890.0
 - - - - - - - - - 
epoch: 1000
train mean loss=4355183.0
 - - - - - - - - - 
epoch: 2000
train mean loss=4764372.0
 - - - - - - - - - 
epoch: 3000
train mean loss=2951811.5
 - - - - - - - - - 
epoch: 4000
train mean loss=6812783.5
 - - - - - - - - - 
epoch: 5000
train mean loss=2901403.0
 - - - - - - - - - 
epoch: 6000
train mean loss=6036729.5
 - - - - - - - - - 
epoch: 7000
train mean loss=4023599.75
 - - - - - - - - - 
epoch: 8000
train mean loss=3378336.75
 - - - - - - - - - 
epoch: 9000
train mean loss=3907749.5
 - - - - - - - - - 
epoch: 10000
train mean loss=2021185.875
 - - - - - - - - - 
epoch: 11000
train mean loss=2737937.25
 - - - - - - - - - 
epoch: 12000
train mean loss=3911723.5
 - - - - - - - - - 
epoch: 13000
train mean loss=3031674.25
 - - - - - - - - - 
epoch: 14000
train mean loss=8506982.0
 - - - - - - - - - 
epoch: 15000
train mean loss=14871465.0
 - - - - - - - - - 
epoch: 16000
train mean loss=2417662.5
 - - - - - - - - - 
epoch: 17000
train mean loss=5277356.5
 - - - - - - - - - 
epoch: 18000
train mean loss=1716837.5
 - - - - - - - - - 
epoch: 19000
train mean loss=6417654.5
 - - - - - - - - - 

In [320]:
model.DL(ite=10000, bs=200, add=True)


epoch: 0
train mean loss=7686336.5
 - - - - - - - - - 
epoch: 1000
train mean loss=2246108.25
 - - - - - - - - - 
epoch: 2000
train mean loss=4548270.0
 - - - - - - - - - 
epoch: 3000
train mean loss=3440824.25
 - - - - - - - - - 
epoch: 4000
train mean loss=3445346.0
 - - - - - - - - - 
epoch: 5000
train mean loss=2494561.0
 - - - - - - - - - 
epoch: 6000
train mean loss=3791223.75
 - - - - - - - - - 
epoch: 7000
train mean loss=14824376.0
 - - - - - - - - - 
epoch: 8000
train mean loss=1552063.625
 - - - - - - - - - 
epoch: 9000
train mean loss=7464750.5
 - - - - - - - - - 

In [303]:
model.predict()


[[-200.914505  ]
 [ 813.39611816]
 [-176.11975098]
 [  97.72927856]
 [ 813.26416016]
 [ 806.31604004]
 [-188.42362976]
 [-201.4822998 ]
 [  57.99349976]
 [-201.93777466]]

青がOLSの誤差、緑がOLSと深層学習を組み合わせた誤差。


In [311]:
model.compare()



In [312]:
print(np.mean(model.error1))
print(np.mean(model.error2))


163.754931905
-29.7797052108

In [313]:
print(np.mean(np.abs(model.error1)))
print(np.mean(np.abs(model.error2)))


1167.89405709
1073.01866785

In [314]:
print(max(np.abs(model.error1)))
print(max(np.abs(model.error2)))


21206.5786028
21004.6408281

In [315]:
print(np.var(model.error1))
print(np.var(model.error2))


3690602.28497
3282789.60412

In [316]:
fig = plt.figure()
ax = fig.add_subplot(111)

errors = [model.error1, model.error2]

bp = ax.boxplot(errors)

plt.grid()
plt.ylim([-5000,5000])

plt.title('分布の箱ひげ図')

plt.show()



In [415]:
X = model.X_ex['X'].values
Y = model.X_ex['Y'].values

In [318]:
e = model.error2

In [319]:
import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D

fig=plt.figure()
ax=Axes3D(fig)
 
ax.scatter3D(X, Y, e)
plt.show()



In [331]:
t


Out[331]:
array([ 35.59299   ,  35.59450712,  35.59602424,  35.59754136,
        35.59905847,  35.60057559,  35.60209271,  35.60360983,
        35.60512695,  35.60664407,  35.60816119,  35.60967831,
        35.61119542,  35.61271254,  35.61422966,  35.61574678,
        35.6172639 ,  35.61878102,  35.62029814,  35.62181525,
        35.62333237,  35.62484949,  35.62636661,  35.62788373,
        35.62940085,  35.63091797,  35.63243508,  35.6339522 ,
        35.63546932,  35.63698644,  35.63850356,  35.64002068,
        35.6415378 ,  35.64305492,  35.64457203,  35.64608915,
        35.64760627,  35.64912339,  35.65064051,  35.65215763,
        35.65367475,  35.65519186,  35.65670898,  35.6582261 ,
        35.65974322,  35.66126034,  35.66277746,  35.66429458,
        35.66581169,  35.66732881,  35.66884593,  35.67036305,
        35.67188017,  35.67339729,  35.67491441,  35.67643153,
        35.67794864,  35.67946576,  35.68098288,  35.6825    ])

In [358]:
plt.hist(Xs)


Out[358]:
(array([ 100.,  100.,  100.,  100.,  100.,  100.,  100.,  100.,  100.,  100.]),
 array([ 35.59299 ,  35.601941,  35.610892,  35.619843,  35.628794,
         35.637745,  35.646696,  35.655647,  35.664598,  35.673549,  35.6825  ]),
 <a list of 10 Patch objects>)

In [339]:
import numpy as np
from scipy.stats import gaussian_kde
import matplotlib.pyplot as plt

In [564]:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

Xs = np.linspace(min(X),max(X),10)
Ys = np.linspace(min(Y),max(Y),10)

error = model.error1
Xgrid, Ygrid = np.meshgrid(Xs, Ys)
Z = LL(X, Y, Xs, Ys, error)

fig = plt.figure()
ax = Axes3D(fig)
ax.plot_wireframe(Xgrid,Ygrid,Z) #<---ここでplot

plt.show()



In [505]:
fig = plt.figure()
ax = Axes3D(fig)
ax.set_zlim(-100, 500)
ax.plot_surface(Xgrid,Ygrid,Z) #<---ここでplot

plt.show()



In [541]:
h = 10
(0.9375*(1-((X-1)/h)**2)**2)*(0.9375*(1-((Y-2)/h)**2)**2)


Out[541]:
array([ 3786901.31243339,  3784625.47845582,  3777981.7633057 ,
        3758241.22292077,  3783507.56196237,  3783967.04306729,
        3777823.00996672,  3771319.94555596,  3758148.56699871,
        3780577.5522556 ,  3775695.32669684,  3779008.24766451,
        3782569.26098256,  3784973.66370602,  3766204.55437186,
        3762338.77888803,  3781761.85076149,  3771852.08386755,
        3785017.3610941 ,  3785338.51693229,  3784627.97056458,
        3776518.07809418,  3776473.4188768 ,  3769505.1587688 ,
        3789280.42521991,  3787394.138282  ,  3765459.1646375 ,
        3788411.08560455,  3762824.41040828,  3762638.78120961,
        3764436.781566  ,  3760565.07881974,  3761726.34158408,
        3759052.19393293,  3789400.06675331,  3773497.4668366 ,
        3758449.6490537 ,  3787416.11578878,  3759010.74514849,
        3785060.21514383,  3778268.73047614,  3773163.81279354,
        3792542.38195157,  3785892.21423553,  3790266.43163301,
        3780184.41451075,  3780697.33152517,  3783385.33676403,
        3789280.42521991,  3778755.00643174,  3776266.41107625,
        3776290.68028277,  3784369.38992951,  3777649.79563716,
        3785059.87306769,  3776266.41107625,  3772647.36280805,
        3789131.02769756,  3780174.17251955,  3773979.5851856 ,
        3756477.49951799,  3785221.80854626,  3780145.24191216,
        3788330.96146206,  3767045.79686863,  3778329.69892261,
        3763081.21947144,  3785043.79928151,  3779070.74093679,
        3772433.37205335,  3781472.23995934,  3777760.70031165,
        3774706.22200465,  3784768.17035589,  3771374.46728241,
        3772403.70662037,  3760332.22597192,  3776089.51684304,
        3759670.17686123,  3777242.54275217,  3778428.64902046,
        3778498.6112949 ,  3779070.74093679,  3787934.87438249,
        3786739.76430333,  3764696.90800013,  3779108.77535494,
        3788411.08560455,  3772538.17910189,  3779601.11090415,
        3784369.38992951,  3784768.17035589,  3778690.53155044,
        3778690.53155044,  3772538.17910189,  3776089.51684304,
        3759954.72805165,  3759233.12024369,  3775319.2389871 ,
        3786207.55483072,  3763052.04982464,  3785634.28926529,
        3765999.87741258,  3767496.46165733,  3765984.78468922,
        3783736.55840782,  3778775.29304566,  3774538.74864656,
        3788255.32695271,  3765922.2112324 ,  3760442.06124776,
        3772447.52644045,  3786015.10802852,  3785419.84297688,
        3782304.9206218 ,  3764591.1925611 ,  3777203.49768994,
        3778858.60056323,  3776266.41107625,  3790338.02488179,
        3782334.79036992,  3775250.50620585,  3784973.66370602,
        3784940.48627394,  3779136.8980785 ,  3774651.17590022,
        3779459.84344389,  3770713.97825051,  3772476.11584938,
        3772038.99092356,  3782376.65938115,  3789538.79661889,
        3783223.23263796,  3783796.23780078,  3783796.23780078,
        3789254.87214505,  3774201.01981909,  3790588.11783637,
        3785443.56329534,  3785059.87306769,  3783385.33676403,
        3782893.41777707,  3771629.15467521,  3789859.94187988,
        3771846.1082727 ,  3780998.40523019,  3761716.35987933,
        3765403.75319255,  3765904.54424931,  3780877.50243586,
        3763081.21947144,  3777494.94837905,  3778498.6112949 ,
        3762188.86575179,  3767991.67758879,  3773038.11073478,
        3777738.18888507,  3790410.35743681,  3784840.83895933,
        3788641.95824471,  3759958.7766087 ,  3786929.42405436,
        3783438.03625948,  3759907.97982111,  3765340.50154791,
        3792402.37943402,  3788688.43826934,  3779269.98758677,
        3772017.15476515,  3763524.62045773,  3781345.14157731,
        3781526.60076644,  3786471.77796535,  3785221.75138724,
        3763052.04982464,  3783594.59031935,  3762873.07320193,
        3788122.8138692 ,  3762521.08180441,  3777571.08269456,
        3778063.0486856 ,  3784742.23341586,  3774538.74864656,
        3778775.29304566,  3763081.21947144,  3763081.21947144,
        3765055.62325657,  3774546.90274852,  3782304.9206218 ,
        3786929.42405436,  3786377.53472125,  3777952.65157563,
        3775591.44152031,  3782913.62533965,  3787053.84662942,
        3766203.77008656,  3778826.89614704,  3780602.94033415,
        3782913.62533965,  3779988.15260556,  3779269.98758677,
        3778102.62049643,  3762859.11266797,  3788928.48530586,
        3780414.36078702,  3780312.06147516,  3775798.45768062,
        3780889.79159757,  3781526.60076644,  3780877.50243586,
        3780877.50243586,  3780381.33561991,  3767758.8236593 ,
        3778775.29304566,  3783759.96417945,  3787136.45764729,
        3776695.93782754,  3778755.00643174,  3789252.2799577 ,
        3761438.77489118,  3781371.36864982,  3777548.29239947,
        3774538.74864656,  3777005.92106296,  3770910.94625748,
        3785699.9929916 ,  3789146.31307789,  3776384.24321991,
        3784057.47550065,  3766583.64395715,  3771403.42644482,
        3771664.84421114,  3762972.28463806,  3778263.85880423,
        3771613.82480643,  3763144.80796306,  3756477.49951799,
        3781345.14157731,  3770977.74583825,  3778165.75437554,
        3781638.87644778,  3765883.06703805,  3783759.96417945,
        3783759.96417945,  3772333.3887145 ,  3789626.35194625,
        3776473.4188768 ,  3778384.26832777,  3777720.07034329,
        3785807.67726146,  3793640.70027681,  3768787.7663493 ,
        3768862.38157614,  3778888.43784427,  3764696.90800013,
        3775857.95235852,  3792417.59985451,  3783759.96417945,
        3792741.04744254,  3790251.31590351,  3763081.21947144,
        3776635.07323692,  3778104.6280026 ,  3788330.96146206,
        3761397.02975587,  3761397.02975587,  3778464.19405396,
        3773400.6596839 ,  3782734.45157896,  3792911.2979064 ,
        3769084.57773197,  3769550.2925103 ,  3761532.71528514,
        3764856.46865509,  3781526.60076644,  3784999.04778692,
        3761128.09382674,  3766454.13209152,  3781638.87644778,
        3783736.55840782,  3776531.78304743,  3778268.73047614,
        3790206.691248  ,  3778671.66539401,  3789782.24069337,
        3781879.95694488,  3790271.24822829,  3776685.12042623,
        3784365.45103511,  3780775.94433034,  3778231.71589888,
        3783967.04306729,  3765760.34619236,  3775695.32669684,
        3783921.85989313,  3792676.59648354,  3774492.38376712,
        3766818.36952459,  3764547.36710716,  3768787.7663493 ,
        3770409.26249126,  3777625.01047568,  3787247.12251276,
        3762089.20270898,  3763461.66049725,  3763358.84009825,
        3763072.45018526,  3786986.1042921 ,  3767742.69559788,
        3775526.19025679,  3768501.89638444,  3792542.38195157,
        3759670.17686123,  3782042.20607   ,  3784028.71493969,
        3765055.62325657,  3776785.60747884,  3786624.26576304,
        3789752.71684954,  3776266.41107625,  3784095.94465416,
        3777981.7633057 ,  3778464.19405396,  3758162.12180541,
        3767244.16824103,  3765266.65657863,  3788411.08560455,
        3777625.01047568,  3774492.38376712,  3786201.77840912,
        3785699.9929916 ,  3789160.02196463,  3762972.28463806,
        3779381.59468844,  3779684.67087017,  3774492.38376712,
        3783122.86247424,  3783554.6564399 ,  3762387.49001913,
        3769798.56727906,  3769496.97973327,  3775798.45768062,
        3780395.49791765,  3784147.97265396,  3761716.35987933,
        3785221.75138724,  3783759.96417945,  3782508.70775944,
        3782734.45157896,  3778847.25324403,  3784269.36490643,
        3767580.10740387,  3767580.10740387,  3782640.91416801,
        3781617.79505247,  3758241.22292077,  3778160.36090616,
        3762691.99945933,  3755925.02798934,  3778826.89614704,
        3774538.74864656,  3783332.16585936,  3776290.68028277,
        3777119.54418766,  3760410.62858241,  3786415.3811267 ,
        3771664.84421114,  3778047.1959725 ,  3768542.18054442,
        3786275.36411059,  3789747.65278171,  3775383.57945057,
        3781526.60076644,  3762308.91166225,  3778826.89614704,
        3778268.73047614,  3778268.73047614,  3778135.54772756,
        3778063.0486856 ,  3784028.71493969,  3783796.23780078,
        3761238.41619727,  3782981.8305651 ,  3774538.74864656,
        3780992.71472112,  3777005.92106296,  3777005.92106296,
        3773498.14143004,  3766464.03154595,  3781371.36864982,
        3792676.59648354,  3783314.71350011,  3777854.05185902,
        3789752.71684954,  3772538.17910189,  3773010.69426192,
        3778106.32988085,  3788189.29330077,  3788411.08560455,
        3789278.31398306,  3773498.14143004,  3785979.08203081,
        3785338.51693229,  3792024.82503427,  3774037.30041652,
        3776290.68028277,  3775695.32669684,  3774492.38376712,
        3763803.43069332,  3764591.1925611 ,  3766818.36952459,
        3768787.7663493 ,  3783538.12414368,  3775695.32669684,
        3782704.76598558,  3793730.09338407,  3793520.02091176,
        3769545.82781292,  3777040.26757083,  3777309.02895942,
        3770913.58698344,  3770383.17720805,  3792789.78620146,
        3756477.49951799,  3786622.23426765,  3778847.25324403,
        3778268.73047614,  3782508.70775944,  3781617.79505247,
        3779721.28017515,  3777900.05452253,  3788189.29330077,
        3764591.1925611 ,  3773498.14143004,  3765266.65657863,
        3786377.53472125,  3768787.7663493 ,  3768787.7663493 ,
        3768082.88053399,  3793520.02091176,  3785699.9929916 ,
        3784365.45103511,  3781672.50255114,  3778566.92588321,
        3783678.6889489 ,  3776089.51684304,  3781679.97634976,
        3781679.97634976,  3778090.67794461,  3780184.41451075,
        3782777.03705891,  3776290.68028277,  3786130.2138828 ,
        3786415.3811267 ,  3764591.1925611 ,  3771868.02927824,
        3775867.62292414,  3760885.6723269 ,  3760070.16096263,
        3762387.49001913,  3775695.32669684,  3759118.22839132,
        3775798.45768062,  3778074.65386225,  3779409.17818243,
        3778268.73047614,  3778826.89614704,  3780758.4747328 ,
        3783473.60187388,  3762429.61013573,  3773038.11073478,
        3771868.02927824,  3789252.2799577 ,  3790271.24822829,
        3773010.69426192,  3788411.08560455,  3785934.01535233,
        3773839.25299681,  3766818.36952459,  3760410.62858241,
        3763088.56165927,  3766818.36952459,  3788641.95824471,
        3768706.18486933,  3773715.02502812,  3762089.20270898,
        3788143.63617652,  3777625.01047568,  3777005.92106296,
        3776953.85125737,  3763447.83603215,  3784095.94465416,
        3778034.65831057,  3767531.5173394 ,  3788928.48530586,
        3758405.62518217,  3786377.53472125,  3762089.20270898,
        3780174.17251955,  3782472.51065604,  3783736.55840782,
        3788143.63617652,  3768930.54477404,  3778268.73047614,
        3783796.23780078,  3785799.14124741,  3774538.74864656,
        3763161.36306667,  3774538.74864656,  3765055.62325657,
        3785408.95751925,  3774168.1305737 ,  3771823.63795629,
        3786624.26576304,  3784365.45103511,  3776792.48508384,
        3767224.53581386,  3776290.68028277,  3783385.33676403,
        3774028.13865513,  3773024.69123254,  3792917.59876637,
        3765856.41814146,  3770414.89700568,  3777324.42283662,
        3776555.63664497,  3763461.66049725,  3766845.4373072 ,
        3778221.66556767,  3762240.10833412,  3762873.07320193,
        3786622.23426765,  3792741.04744254,  3790582.35418179,
        3786929.42405436,  3782693.18942216,  3783314.71350011,
        3782693.18942216,  3770546.89109661,  3775417.10382906,
        3790628.76793901,  3791809.41353078,  3772647.36280805,
        3769840.49971344,  3793520.02091176,  3787607.02974778,
        3787247.12251276,  3787101.37367774,  3780889.79159757,
        3774767.09317087,  3784973.66370602,  3767943.09075063,
        3778826.89614704,  3780775.94433034,  3755925.02798934,
        3760440.66733837,  3760211.46808756,  3789752.71684954,
        3774115.42875349,  3787136.45764729,  3790206.691248  ,
        3788399.60153897,  3776833.29108553,  3785699.9929916 ,
        3763745.07492232,  3774115.42875349,  3790338.02488179,
        3789859.94187988,  3778305.27745437,  3767025.35625425,
        3787217.83658904,  3784368.51279147,  3786498.99937731,
        3785221.75138724,  3783759.96417945,  3779381.59468844,
        3776743.00934277,  3763161.36306667,  3776480.56981083,
        3786762.66717855,  3777926.53775191,  3777926.53775191,
        3781373.18915858,  3777023.76913416,  3760410.62858241,
        3792911.2979064 ,  3762972.28463806,  3792402.37943402,
        3792402.37943402,  3760950.15570313,  3758554.78241955,
        3763753.03395789,  3779298.85035144,  3771542.56059188,
        3771035.36857482,  3789284.85403962,  3780775.94433034,
        3779551.68629594,  3776518.07809418,  3761397.02975587,
        3761397.02975587,  3788330.96146206,  3782777.03705891,
        3782984.45940805,  3776792.48508384,  3786969.76725197,
        3762885.44116652,  3773400.6596839 ,  3760410.62858241,
        3763883.60019927,  3767967.21514013,  3782913.62533965,
        3787176.7788839 ,  3786886.283568  ,  3776371.53006901,
        3762089.20270898,  3767574.90894856,  3773438.19914622,
        3756070.30175267,  3780796.8990668 ,  3763870.3361319 ,
        3759010.74514849,  3767404.71246036,  3789578.57478302,
        3789278.31398306,  3767957.8092619 ,  3785221.75138724,
        3772668.39294656,  3774546.90274852,  3761397.02975587,
        3777630.16484211,  3790334.48978526,  3770632.49639777,
        3788756.93175353,  3789146.31307789,  3786015.10802852,
        3779008.9745346 ,  3760672.28945179,  3765796.09240791,
        3760543.53732564,  3788641.95824471,  3788699.00663122,
        3788688.43826934,  3779524.0540914 ,  3777023.76913416,
        3776142.19636667,  3766027.65407981,  3774492.38376712,
        3774600.80125956,  3793730.09338407,  3788641.95824471,
        3788928.48530586,  3763461.66049725,  3769960.38019128,
        3757252.58747982,  3778031.52171768,  3767758.8236593 ,
        3774168.1305737 ,  3761438.77489118,  3788529.14943514,
        3765039.92049091,  3777005.92106296,  3769592.90795115,
        3781288.26105364,  3789724.3095042 ,  3789724.3095042 ,
        3773889.65730144,  3783611.69711922,  3785043.79928151,
        3772538.17910189,  3774586.11101061,  3785059.87306769,
        3786428.49734205,  3780474.28679549,  3760410.62858241,
        3780089.72281299,  3793192.85416754,  3782411.73290563,
        3774492.38376712,  3781651.58529656,  3785221.80854626,
        3766405.71870132,  3788936.10321199,  3759679.89927016,
        3771035.36857482,  3776518.07809418,  3769267.44355201,
        3772160.61646631,  3760211.46808756,  3763161.36306667,
        3788529.14943514,  3781288.26105364,  3775207.56780385,
        3767668.0811609 ,  3791175.23450928,  3783921.85989313,
        3766027.65407981,  3787247.12251276,  3771679.92298126,
        3779309.1817145 ,  3783759.96417945,  3783941.6619636 ,
        3784690.44880004,  3757946.63719338,  3783582.0046146 ,
        3790628.76793901,  3787959.22981338,  3790379.86361098,
        3775207.56780385,  3775378.41212567,  3775207.56780385,
        3783015.13822271,  3758389.76399045,  3784365.45103511,
        3765261.05988526,  3786002.69060212,  3776518.07809418,
        3785456.79460244,  3772333.3887145 ,  3762093.35130003,
        3760917.7876983 ,  3780682.50462689,  3787690.05403163,
        3757252.58747982,  3765055.62325657,  3787780.2616334 ,
        3767186.37497419,  3788284.42123979,  3792676.59648354,
        3785882.22924002,  3786822.45358172,  3774342.00936857,
        3775663.90253703,  3790544.83244308,  3782984.45940805,
        3787959.22981338,  3768303.08865203,  3790379.86361098,
        3782620.80062902,  3774586.11101061,  3778858.60056323,
        3778083.34858575,  3783791.06223321,  3777625.01047568,
        3779381.59468844,  3781983.2570717 ,  3775695.32669684,
        3780098.05519932,  3780348.62414111,  3767885.43410865,
        3778769.85723679,  3779551.68629594,  3779551.68629594,
        3780654.33840596,  3774168.1305737 ,  3762691.99945933,
        3785221.75138724,  3779551.68629594,  3765055.62325657,
        3776468.49884174,  3788688.43826934,  3787993.51492503,
        3769395.23648446,  3778826.89614704,  3792024.82503427,
        3767957.8092619 ,  3764646.69926641,  3770913.58698344,
        3777358.17773799,  3786207.55483072,  3785659.44409298,
        3776531.78304743,  3777094.90923159,  3776468.49884174,
        3779409.17818243,  3788330.96146206,  3762956.61335518,
        3780775.94433034,  3765403.75319255,  3770375.35834154,
        3767531.5173394 ,  3780992.71472112,  3774819.10705562,
        3788688.43826934,  3758162.12180541,  3767967.21514013,
        3787595.68007504,  3774163.26455893,  3780089.72281299,
        3773791.32179429,  3759296.64632414,  3772646.18280468,
        3762308.91166225,  3781672.50255114,  3766847.07163305,
        3782644.13188356,  3762873.07320193,  3785408.95751925,
        3766110.8755126 ,  3766048.15809406,  3785389.47098618,
        3788483.00554097,  3788483.00554097,  3783611.69711922,
        3785443.56329534,  3758162.12180541,  3767967.21514013,
        3764763.61094177,  3779797.30083495,  3784768.17035589,
        3778498.6112949 ,  3772860.71630522,  3777799.4406364 ,
        3771846.1082727 ,  3785371.24021431,  3763112.73115429,
        3777548.29239947,  3766048.15809406,  3778928.69883956,
        3762691.99945933,  3771823.63795629,  3767249.52657639,
        3787959.22981338,  3760821.36154485,  3771846.1082727 ,
        3785282.59597303,  3785282.59597303,  3763932.64844961,
        3780787.28772306,  3783507.56196237,  3783507.56196237,
        3785891.24649373,  3788483.00554097,  3775169.54912988,
        3766134.00322021,  3781720.52902033,  3788631.12135044,
        3767967.21514013,  3770901.62206299,  3789724.3095042 ,
        3776177.06933264,  3777848.21089658,  3778074.65386225,
        3767404.71246036,  3764874.55764341,  3765589.5664445 ,
        3763323.58667557,  3774115.42875349,  3765650.93663506,
        3777625.01047568,  3783507.56196237,  3776607.14370595,
        3778607.0280567 ,  3792911.2979064 ,  3767244.16824103,
        3782984.45940805,  3758389.76399045,  3760134.64169438,
        3775345.2682697 ,  3781672.50255114,  3767188.46371594,
        3767430.62941952,  3789175.54797552,  3786986.1042921 ,
        3782471.16707056,  3781805.0601362 ,  3776185.366938  ,
        3765479.06872676,  3766476.08829923,  3786061.61053751,
        3787653.86650557,  3769395.23648446,  3775886.03397142,
        3781754.74887847,  3788769.54564993,  3769505.1587688 ,
        3788483.00554097,  3780992.71472112,  3767967.21514013,
        3787927.62710913,  3780259.59285343,  3787306.77877453,
        3771539.00023953,  3786201.77840912,  3768303.08865203,
        3767991.67758879,  3769298.93121092,  3790876.71677574,
        3758389.76399045,  3771403.42644482,  3779958.10192077,
        3762093.35130003,  3789015.18431698,  3771607.46749011,
        3781058.51375008,  3780348.62414111,  3767130.56179425,
        3757777.88276151,  3764554.28840827,  3783291.81287518,
        3778031.11258839,  3778106.32988085,  3765008.71592855,
        3782747.06423195,  3765869.08823485,  3766061.5074567 ,
        3773050.04898853,  3776188.68140149,  3779275.6882283 ,
        3774115.42875349,  3773038.11073478,  3789175.54797552,
        3775345.2682697 ,  3790635.01663564,  3768930.54477404,
        3790761.06981012,  3786969.89596322,  3780367.4357824 ,
        3787927.62710913,  3786377.53472125,  3785934.01535233,
        3758389.76399045,  3772582.01662948,  3779692.6021905 ,
        3765008.71592855,  3787993.51492503,  3786015.10802852,
        3764592.79037816,  3767991.67758879,  3783554.6564399 ,
        3764507.90711475,  3783778.16085165,  3773791.32179429,
        3770536.91808426,  3789645.04653304,  3765648.0336788 ,
        3763072.45018526,  3762873.07320193,  3783203.80373618,
        3778607.0280567 ,  3789015.18431698,  3787780.2616334 ,
        3771100.58493264,  3761567.62327197,  3788207.13945022,
        3772582.01662948,  3766583.64395715,  3774251.6879816 ,
        3770497.26822821,  3780242.53911619,  3765008.71592855,
        3764592.79037816,  3774050.28954744,  3782581.21146718,
        3765008.71592855,  3778327.78584508,  3771362.10878167,
        3768574.88681416,  3777255.72118894,  3775465.30261072,
        3770901.62206299,  3776373.62690559,  3762504.03449983,
        3763405.52085498,  3776267.75488347,  3776518.07809418,
        3766110.8755126 ,  3789175.54797552,  3781058.51375008,
        3765650.93663506,  3789175.54797552,  3776473.4188768 ,
        3781754.74887847,  3774115.42875349,  3778160.36090616,
        3780098.05519932,  3778998.18788323,  3786929.42405436,
        3782984.26260692,  3781754.74887847,  3776266.41107625,
        3793837.15859552,  3773922.12405398,  3764856.46865509,
        3787352.95782509,  3763307.9814651 ,  3768542.18054442,
        3779392.18844502,  3789175.54797552,  3777909.85900758,
        3766818.36952459,  3785443.56329534,  3785497.69511782,
        3764592.79037816,  3775744.03813905,  3761491.9345805 ,
        3773720.9065264 ,  3772088.37845065,  3776884.86007245,
        3764419.687238  ])

In [562]:
def LL(X, Y, Xs, Ys, error):   
    n = len(X)
    h = 0.1
    error = model.error2
    mean_of_error = np.zeros((len(Xs), len(Ys)))
    for i in range(len(Xs)):
        for j in range(len(Ys)):
            u1 = ((X-Xs[i])/h)**2 
            u2 = ((Y-Ys[j])/h)**2
            k = (0.9375*(1-((X-Xs[i])/h)**2)**2)*(0.9375*(1-((Y-Ys[j])/h)**2)**2)
            K = np.diag(k)
            indep = np.matrix(np.array([np.ones(n), X - Xs[i], Y-Ys[j]]).T)
            dep = np.matrix(np.array([error]).T)
            gls_model = sm.GLS(dep, indep, sigma=K)
            gls_results = gls_model.fit()
            mean_of_error[i, j] = gls_results.params[0]
    return mean_of_error

In [558]:
h = 200
u1 = ((X-30)/h)**2

In [559]:
u1


Out[559]:
array([ 0.00080218,  0.00079844,  0.00079512,  0.00078458,  0.00080182,
        0.00079814,  0.00079598,  0.0007913 ,  0.00078429,  0.00079676,
        0.00079371,  0.00079666,  0.00080218,  0.00079895,  0.00079134,
        0.00078946,  0.00080111,  0.00079443,  0.00079821,  0.00079887,
        0.00080112,  0.0007983 ,  0.0007985 ,  0.00079139,  0.00080236,
        0.00080183,  0.00078979,  0.00080199,  0.00078838,  0.0007882 ,
        0.00078828,  0.0007837 ,  0.00078426,  0.0007843 ,  0.00080062,
        0.00079543,  0.00078473,  0.00080416,  0.00078265,  0.00080195,
        0.000794  ,  0.00079341,  0.00080369,  0.00080056,  0.00080547,
        0.00079593,  0.00079604,  0.00079856,  0.00080236,  0.00079822,
        0.00079466,  0.00079398,  0.0008001 ,  0.00079509,  0.00080013,
        0.00079466,  0.00079393,  0.00080254,  0.00079524,  0.00079561,
        0.00078289,  0.00080139,  0.00079902,  0.00080535,  0.00079256,
        0.0007989 ,  0.00078982,  0.00080073,  0.00079549,  0.00079399,
        0.00079839,  0.0007984 ,  0.00079525,  0.00080034,  0.00079196,
        0.0007921 ,  0.00078592,  0.00079403,  0.00078435,  0.00079673,
        0.00079793,  0.00079548,  0.00079549,  0.00080509,  0.000801  ,
        0.00078928,  0.0007946 ,  0.00080199,  0.00079214,  0.00079529,
        0.0008001 ,  0.00080034,  0.00079421,  0.00079421,  0.00079214,
        0.00079403,  0.00078452,  0.00078447,  0.00079435,  0.0008028 ,
        0.00079054,  0.00079926,  0.00078952,  0.00079295,  0.00079197,
        0.00080061,  0.00079571,  0.00079735,  0.0008013 ,  0.00078966,
        0.0007837 ,  0.00079471,  0.00080063,  0.0008001 ,  0.00079868,
        0.00078949,  0.00079515,  0.00079474,  0.00079466,  0.00080213,
        0.00079743,  0.00079725,  0.00079895,  0.00079887,  0.00079434,
        0.00079382,  0.00079454,  0.00079092,  0.00079588,  0.00079574,
        0.00080217,  0.00080557,  0.00080027,  0.00080173,  0.00080173,
        0.00080156,  0.00079316,  0.00080152,  0.00080099,  0.00080013,
        0.00079856,  0.00079782,  0.00079155,  0.00080184,  0.00079366,
        0.0007987 ,  0.0007899 ,  0.00078935,  0.00078967,  0.00079981,
        0.00078982,  0.00079464,  0.00079548,  0.00078446,  0.00078928,
        0.00079479,  0.00079609,  0.00080668,  0.00079756,  0.00080114,
        0.00078446,  0.0008013 ,  0.00080012,  0.0007851 ,  0.00078962,
        0.00080282,  0.00080026,  0.00079983,  0.00079587,  0.00078691,
        0.0007955 ,  0.00079948,  0.00080096,  0.00080154,  0.00079054,
        0.00080159,  0.00078957,  0.00080575,  0.00078944,  0.00079562,
        0.00079552,  0.00080322,  0.00079735,  0.00079571,  0.00078982,
        0.00078982,  0.00078901,  0.00079722,  0.00079868,  0.0008013 ,
        0.00079975,  0.00079444,  0.00079239,  0.00079774,  0.00080245,
        0.00079055,  0.00079488,  0.00079632,  0.00079774,  0.00079711,
        0.00079983,  0.00079928,  0.00078641,  0.00080135,  0.00079799,
        0.00079773,  0.00079283,  0.00079513,  0.00079948,  0.00079981,
        0.00079981,  0.00079524,  0.00078873,  0.00079571,  0.00080067,
        0.00080125,  0.00079374,  0.00079822,  0.00080252,  0.00078526,
        0.00079549,  0.00079872,  0.00079735,  0.00079388,  0.00079149,
        0.00079946,  0.00080561,  0.00079473,  0.000798  ,  0.0007898 ,
        0.00079221,  0.00079241,  0.00078631,  0.00079377,  0.000795  ,
        0.00078671,  0.00078289,  0.0007955 ,  0.00079388,  0.00079786,
        0.00080037,  0.00078883,  0.00080067,  0.00080067,  0.00079319,
        0.0008055 ,  0.0007985 ,  0.00079419,  0.00079394,  0.00080061,
        0.00080399,  0.00078946,  0.00078986,  0.00079407,  0.00078928,
        0.00079273,  0.00080354,  0.00080067,  0.0008038 ,  0.0008065 ,
        0.00078982,  0.00079699,  0.00079652,  0.00080535,  0.00078465,
        0.00078465,  0.00079542,  0.00079278,  0.00079733,  0.00080361,
        0.00079388,  0.00079421,  0.00078493,  0.00078814,  0.00079948,
        0.00080373,  0.00078608,  0.00079147,  0.00080037,  0.00080061,
        0.00079762,  0.000794  ,  0.00080255,  0.00079913,  0.00080569,
        0.00079843,  0.00080644,  0.00079376,  0.0007988 ,  0.00079883,
        0.00079581,  0.00079814,  0.00078802,  0.00079371,  0.00079787,
        0.00080363,  0.00079565,  0.00079034,  0.00078872,  0.00078946,
        0.0007915 ,  0.0007962 ,  0.00080009,  0.00078693,  0.00078766,
        0.00079064,  0.00078972,  0.0008048 ,  0.00079313,  0.00079567,
        0.00079135,  0.00080369,  0.00078435,  0.00079783,  0.0007988 ,
        0.00078901,  0.00079384,  0.00080113,  0.00080217,  0.00079466,
        0.00080117,  0.00079512,  0.00079542,  0.00078211,  0.00079099,
        0.00078783,  0.00080199,  0.0007962 ,  0.00079565,  0.00080077,
        0.00079946,  0.00080049,  0.00078631,  0.00079937,  0.00079944,
        0.00079565,  0.00079935,  0.00079963,  0.00078464,  0.00078992,
        0.00079401,  0.00079283,  0.00080069,  0.00080052,  0.0007899 ,
        0.00080154,  0.00080067,  0.00079733,  0.00079733,  0.00079811,
        0.00080081,  0.00078917,  0.00078917,  0.00079784,  0.00079713,
        0.00078458,  0.00079459,  0.0007888 ,  0.00078221,  0.00079488,
        0.00079735,  0.00079739,  0.00079398,  0.00079595,  0.00078487,
        0.00080099,  0.00079241,  0.00079472,  0.00079019,  0.00080226,
        0.00080496,  0.00079385,  0.00079948,  0.00079028,  0.00079488,
        0.000794  ,  0.000794  ,  0.00079583,  0.00079552,  0.0007988 ,
        0.00080173,  0.00078619,  0.00079878,  0.00079735,  0.00079633,
        0.00079388,  0.00079388,  0.00079277,  0.0007897 ,  0.00079549,
        0.00080363,  0.00079732,  0.00079339,  0.00080217,  0.00079214,
        0.00079237,  0.00079724,  0.00080169,  0.00080199,  0.00080242,
        0.00079277,  0.000799  ,  0.00079887,  0.0008028 ,  0.00079266,
        0.00079398,  0.00079371,  0.00079565,  0.00078888,  0.00078949,
        0.00079034,  0.00078946,  0.00079946,  0.00079371,  0.00079914,
        0.00080384,  0.00080365,  0.00079101,  0.00079601,  0.00079475,
        0.00079467,  0.00079451,  0.00080308,  0.00078289,  0.00080329,
        0.00079811,  0.000794  ,  0.00079733,  0.00079713,  0.00079797,
        0.00079706,  0.00080169,  0.00078949,  0.00079277,  0.00078783,
        0.00079975,  0.00078946,  0.00078946,  0.00078893,  0.00080365,
        0.00079946,  0.0007988 ,  0.00079975,  0.00079911,  0.00079792,
        0.00079403,  0.00079679,  0.00079679,  0.00079391,  0.00079593,
        0.00079836,  0.00079398,  0.00080272,  0.00080099,  0.00078949,
        0.0007935 ,  0.00079705,  0.00078557,  0.00078585,  0.00078464,
        0.00079371,  0.00078511,  0.00079283,  0.00079645,  0.00079677,
        0.000794  ,  0.00079488,  0.00079993,  0.00079743,  0.00078704,
        0.00079479,  0.0007935 ,  0.00080252,  0.00080644,  0.00079237,
        0.00080199,  0.00079955,  0.00079261,  0.00079034,  0.00078487,
        0.00078894,  0.00079034,  0.00080114,  0.00079127,  0.00079247,
        0.00078693,  0.00080184,  0.0007962 ,  0.00079388,  0.00079781,
        0.00078614,  0.00080117,  0.00079444,  0.00079079,  0.00080135,
        0.00078385,  0.00079975,  0.00078693,  0.00079524,  0.00079995,
        0.00080061,  0.00080184,  0.00079102,  0.000794  ,  0.00080173,
        0.00080388,  0.00079735,  0.0007856 ,  0.00079735,  0.00078901,
        0.00080207,  0.00079532,  0.00079157,  0.00080113,  0.0007988 ,
        0.00079799,  0.00078849,  0.00079398,  0.00079856,  0.00079488,
        0.00079657,  0.00080327,  0.00078824,  0.00079238,  0.00079388,
        0.00079285,  0.00078766,  0.00079121,  0.00079742,  0.00078933,
        0.00078957,  0.00080329,  0.0008038 ,  0.00080271,  0.0008013 ,
        0.00079699,  0.00079732,  0.00079699,  0.00079514,  0.00079725,
        0.00080155,  0.00080274,  0.00079393,  0.00079203,  0.00080365,
        0.0008003 ,  0.00080009,  0.00080515,  0.00079513,  0.00079639,
        0.00079895,  0.00078877,  0.00079488,  0.00079883,  0.00078221,
        0.00078463,  0.00078602,  0.00080217,  0.00079478,  0.00080125,
        0.00080255,  0.0008009 ,  0.00079289,  0.00079946,  0.00078818,
        0.00079478,  0.00080213,  0.00080184,  0.00079766,  0.00078844,
        0.00079974,  0.00080175,  0.00080326,  0.00080154,  0.00080067,
        0.00079937,  0.00079722,  0.0007856 ,  0.00079469,  0.00080424,
        0.00079853,  0.00079853,  0.00079563,  0.00079437,  0.00078487,
        0.00080361,  0.00078631,  0.00080282,  0.00080282,  0.00078378,
        0.00078448,  0.00078793,  0.00079709,  0.00079183,  0.00079174,
        0.0008053 ,  0.00079883,  0.00079701,  0.0007983 ,  0.00078465,
        0.00078465,  0.00080535,  0.00079836,  0.00079704,  0.00079799,
        0.00080182,  0.00079061,  0.00079278,  0.00078487,  0.00078792,
        0.00079158,  0.00079774,  0.00080192,  0.00079955,  0.00079288,
        0.00078693,  0.00079185,  0.00079493,  0.0007822 ,  0.00079903,
        0.00079003,  0.00078265,  0.00079252,  0.00080244,  0.00080242,
        0.00078887,  0.00080154,  0.00079419,  0.00079722,  0.00078465,
        0.00079419,  0.00080649,  0.00079222,  0.00080521,  0.00080561,
        0.00080063,  0.00079503,  0.00078508,  0.00078925,  0.00078401,
        0.00080114,  0.00080035,  0.00080026,  0.00079433,  0.00079437,
        0.00079378,  0.00078928,  0.00079565,  0.00079578,  0.00080384,
        0.00080114,  0.00080135,  0.00078766,  0.00079055,  0.00078329,
        0.00079603,  0.00078873,  0.00079532,  0.00078526,  0.00080125,
        0.00079014,  0.00079388,  0.00078978,  0.00079548,  0.00080206,
        0.00080206,  0.00079453,  0.00080034,  0.00080073,  0.00079214,
        0.00079441,  0.00080013,  0.00080085,  0.00079522,  0.00078487,
        0.00079715,  0.0008039 ,  0.00079739,  0.00079565,  0.00080065,
        0.00080139,  0.00079165,  0.00080214,  0.00078297,  0.00079174,
        0.0007983 ,  0.00079422,  0.00079375,  0.00078602,  0.0007856 ,
        0.00080125,  0.00079548,  0.00079664,  0.00079126,  0.00080274,
        0.00079787,  0.00078928,  0.00080009,  0.0007939 ,  0.00079562,
        0.00080067,  0.00080055,  0.00079918,  0.00078204,  0.00079772,
        0.00080155,  0.00079968,  0.00080137,  0.00079664,  0.00079666,
        0.00079664,  0.00079851,  0.00078238,  0.0007988 ,  0.00078874,
        0.0007984 ,  0.0007983 ,  0.00080416,  0.00079319,  0.00078877,
        0.00078637,  0.0008005 ,  0.00080089,  0.00078329,  0.00078901,
        0.00080191,  0.00078928,  0.00080555,  0.00080363,  0.00080099,
        0.00080153,  0.00079423,  0.00079693,  0.00080173,  0.00079704,
        0.00079968,  0.00079275,  0.00080137,  0.00079762,  0.00079441,
        0.00079474,  0.00079479,  0.00079762,  0.0007962 ,  0.00079937,
        0.00079972,  0.00079371,  0.00079678,  0.00079671,  0.00079261,
        0.00079665,  0.00079701,  0.00079701,  0.00079643,  0.00079532,
        0.0007888 ,  0.00080154,  0.00079701,  0.00078901,  0.00079735,
        0.00080026,  0.00080306,  0.00078976,  0.00079488,  0.0008028 ,
        0.00078887,  0.00078694,  0.00079467,  0.00079705,  0.0008028 ,
        0.0007982 ,  0.00079762,  0.00079612,  0.00079735,  0.00079677,
        0.00080535,  0.00078904,  0.00079883,  0.00078935,  0.00079068,
        0.00079079,  0.00079633,  0.00079364,  0.00080026,  0.00078211,
        0.00079158,  0.00080155,  0.00079632,  0.00079715,  0.00079566,
        0.00078497,  0.00079609,  0.00079028,  0.00079975,  0.00078822,
        0.00079777,  0.00078957,  0.00080207,  0.00079061,  0.00079163,
        0.0007986 ,  0.00080172,  0.00080172,  0.00080034,  0.00080099,
        0.00078211,  0.00079158,  0.00078783,  0.00079997,  0.00080034,
        0.00079548,  0.00079569,  0.00079352,  0.00079366,  0.00080076,
        0.00078958,  0.00079872,  0.00079163,  0.0007981 ,  0.0007888 ,
        0.00079157,  0.00079067,  0.00079968,  0.00078501,  0.00079366,
        0.00080165,  0.00080165,  0.00079031,  0.00079728,  0.00080182,
        0.00080182,  0.00079863,  0.00080172,  0.00079381,  0.00078856,
        0.00079713,  0.00080212,  0.00079158,  0.00079453,  0.00080206,
        0.00079609,  0.00079806,  0.00079645,  0.00079252,  0.00079134,
        0.00079186,  0.00078985,  0.00079478,  0.00079052,  0.0007962 ,
        0.00080182,  0.00079759,  0.00079892,  0.00080361,  0.00079099,
        0.00079704,  0.00078238,  0.00078375,  0.00079773,  0.00079975,
        0.00078878,  0.00078877,  0.00080433,  0.0008048 ,  0.00080208,
        0.00079787,  0.00079765,  0.00078861,  0.0007892 ,  0.00080105,
        0.00080269,  0.00078976,  0.00079725,  0.00079911,  0.00080564,
        0.00079139,  0.00080172,  0.00079633,  0.00079158,  0.00080151,
        0.00079747,  0.00080129,  0.00079143,  0.00080077,  0.00079275,
        0.00078928,  0.00078999,  0.00080265,  0.00078238,  0.00079221,
        0.0007988 ,  0.00078877,  0.00080414,  0.00079302,  0.000797  ,
        0.00079671,  0.00079111,  0.00078337,  0.00078767,  0.00079855,
        0.00079717,  0.00079724,  0.00078818,  0.00079693,  0.0007899 ,
        0.00078828,  0.00079646,  0.00079753,  0.00079886,  0.00079478,
        0.00079479,  0.00080433,  0.00079773,  0.00080159,  0.00079102,
        0.00080727,  0.00079993,  0.00079888,  0.00080151,  0.00079975,
        0.00079955,  0.00078238,  0.00079352,  0.00079489,  0.00078818,
        0.00080306,  0.00080063,  0.0007882 ,  0.00078928,  0.00079963,
        0.00078955,  0.00079968,  0.00079566,  0.00079166,  0.00080581,
        0.00078924,  0.00078972,  0.00078957,  0.00079767,  0.00079892,
        0.00080414,  0.00080191,  0.00079247,  0.00078403,  0.0008021 ,
        0.00079352,  0.0007898 ,  0.00079634,  0.00079068,  0.00079714,
        0.00078818,  0.0007882 ,  0.00079417,  0.00079751,  0.00078818,
        0.00079628,  0.00079204,  0.00078978,  0.00079493,  0.00079748,
        0.00079453,  0.00079468,  0.00078735,  0.00078746,  0.00079839,
        0.0007983 ,  0.00079061,  0.00080433,  0.000797  ,  0.00079052,
        0.00080433,  0.0007985 ,  0.00079911,  0.00079478,  0.00079459,
        0.00079678,  0.00079611,  0.0008013 ,  0.00079813,  0.00079911,
        0.00079466,  0.00080385,  0.00079393,  0.00078814,  0.0008014 ,
        0.00078612,  0.00079019,  0.00080006,  0.00080433,  0.00079545,
        0.00079034,  0.00080099,  0.00080219,  0.0007882 ,  0.00079749,
        0.00078433,  0.0007965 ,  0.0007956 ,  0.00079394,  0.00079117])

In [557]:
u1[u1 < 0] = 0

In [467]:
for x in range(lXs[:2]):
    print(x)


---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-467-a3dbab2096be> in <module>()
      6     for j in range(len(Ys)):
      7         k = 0.15915494309189535*np.exp((-((X-Xs[i])/h)**2-((Y-Ys[j])/h)**2)*0.5)
----> 8         K = np.diag(k)
      9         indep = np.matrix(np.array([np.ones(n), X - Xs[i], Y-Ys[j]]).T)
     10         dep = np.matrix(np.array([error]).T)

/Users/NIGG/anaconda/lib/python3.5/site-packages/numpy/lib/twodim_base.py in diag(v, k)
    300     if len(s) == 1:
    301         n = s[0]+abs(k)
--> 302         res = zeros((n, n), v.dtype)
    303         if k >= 0:
    304             i = k

KeyboardInterrupt: 

In [499]:
mean_of_error


Out[499]:
array([[ -78.58764766,  -77.88149257,  -77.17533748, ...,  625.44897607,
         626.15513116,  626.86128625],
       [ -79.21571684,  -78.50956175,  -77.80340666, ...,  624.8209069 ,
         625.52706199,  626.23321708],
       [ -79.84378601,  -79.13763092,  -78.43147583, ...,  624.19283773,
         624.89899281,  625.6051479 ],
       ..., 
       [   0.        ,    0.        ,    0.        , ...,    0.        ,
           0.        ,    0.        ],
       [   0.        ,    0.        ,    0.        , ...,    0.        ,
           0.        ,    0.        ],
       [   0.        ,    0.        ,    0.        , ...,    0.        ,
           0.        ,    0.        ]])

In [468]:



Out[468]:
38

In [367]:
plt.plot(gaussian_kde(Y, 0.1)(Ys))


Out[367]:
[<matplotlib.lines.Line2D at 0x11a7a2e10>]

In [ ]:
N = 5

means = np.random.randn(N,2) * 10 + np.array([100, 200])
stdev = np.random.randn(N,2) * 10 + 30
count = np.int64(np.int64(np.random.randn(N,2) * 10000 + 50000))

a = [
    np.hstack([
        np.random.randn(count[i,j]) * stdev[i,j] + means[i,j]
        for j in range(2)])
    for i in range(N)]

In [337]:
for x in Xs:
    for y in Ys:


Out[337]:
array([ 139.58772   ,  139.5893561 ,  139.5909922 ,  139.59262831,
        139.59426441,  139.59590051,  139.59753661,  139.59917271,
        139.60080881,  139.60244492,  139.60408102,  139.60571712,
        139.60735322,  139.60898932,  139.61062542,  139.61226153,
        139.61389763,  139.61553373,  139.61716983,  139.61880593,
        139.62044203,  139.62207814,  139.62371424,  139.62535034,
        139.62698644,  139.62862254,  139.63025864,  139.63189475,
        139.63353085,  139.63516695,  139.63680305,  139.63843915,
        139.64007525,  139.64171136,  139.64334746,  139.64498356,
        139.64661966,  139.64825576,  139.64989186,  139.65152797,
        139.65316407,  139.65480017,  139.65643627,  139.65807237,
        139.65970847,  139.66134458,  139.66298068,  139.66461678,
        139.66625288,  139.66788898,  139.66952508,  139.67116119,
        139.67279729,  139.67443339,  139.67606949,  139.67770559,
        139.67934169,  139.6809778 ,  139.6826139 ,  139.68425   ])

In [249]:
def loclinearc(points,x,y,h):
    n = len(points[,1])
    const = matrix(1, nrow=length(x), ncol=1)
    bhat = matrix(0, nrow=3, ncol=n)
    b1 = matrix(0, n, n)
    predict = matrix(0, n, 1)

    for (j in 1:n) {

    for (i in 1:n) {
      a <- -.5*sign( abs( (points[i, 1]*const - x[,1])/h ) -1 ) + .5	
      #get the right data points, (K(x) ~=0)
      b <- -.5*sign( abs( (points[j, 2]*const - x[,2])/h ) -1 ) + .5

      x1andy <- nonzmat(cbind((x[,1]*a*b), (y*a*b)))
      x2andy <- nonzmat(cbind((x[,2]*a*b), (y*a*b)))
      ztheta1 <- x1andy[,1]
      ztheta2 <- x2andy[,1]
      yuse <- x1andy[,2]
      q1 <- (ztheta1 - points[i,1]);
      q2 <- (ztheta2 - points[j,2]);
      nt1 <- ( (ztheta1- points[i,1])/h )
      nt2 <- ( (ztheta2- points[j,2])/h )
      #q2 = ((ztheta - points(i,1)).^2)/2;
      weights <- diag(c((15/16)%*%( 1-(nt1^2))^2*((15/16)%*%( 1-(nt2^2))^2)))
      #Biweight Kernel
      tempp3 <- cbind(matrix(1, nrow=length(ztheta1), ncol=1), q1, q2)
      bhat[,i] <- solve(t(tempp3)%*%weights%*%tempp3)%*%t(tempp3)%*%weights%*%yuse
    }
    b1[,j] <- t(bhat[1,])
    }
    return(b1)
}


Out[249]:
array([ 35.66455,  35.65134,  35.63957,  35.60207,  35.66327,  35.65029,
        35.64262,  35.62602,  35.60105,  35.64538,  35.63457,  35.64502,
        35.66455,  35.65314,  35.62616,  35.61948,  35.66079,  35.63714,
        35.65052,  35.65285,  35.66081,  35.65083,  35.65156,  35.62632,
        35.66519,  35.66333,  35.62063,  35.66388,  35.61562,  35.61499,
        35.61528,  35.59893,  35.60094,  35.60108,  35.65905,  35.64066,
        35.6026 ,  35.67156,  35.59519,  35.66376,  35.63561,  35.63352,
        35.66988,  35.65884,  35.67615,  35.64243,  35.64283,  35.65176,
        35.66519,  35.65055,  35.63795,  35.63552,  35.65722,  35.63948,
        35.6573 ,  35.63795,  35.63536,  35.66584,  35.63999,  35.64131,
        35.59604,  35.66175,  35.65339,  35.67573,  35.63049,  35.65297,
        35.62073,  35.65945,  35.64087,  35.63558,  35.65117,  35.65121,
        35.64002,  35.65805,  35.62836,  35.62884,  35.60686,  35.6357 ,
        35.60126,  35.64529,  35.64953,  35.64086,  35.64087,  35.67482,
        35.6604 ,  35.61882,  35.63772,  35.66388,  35.629  ,  35.64018,
        35.65722,  35.65805,  35.63635,  35.63635,  35.629  ,  35.6357 ,
        35.60186,  35.60167,  35.63684,  35.66676,  35.6233 ,  35.65425,
        35.61969,  35.63188,  35.62841,  35.65902,  35.64165,  35.64747,
        35.66146,  35.62018,  35.59893,  35.63811,  35.65907,  35.65722,
        35.65219,  35.61958,  35.63969,  35.63821,  35.63795,  35.66439,
        35.64775,  35.64712,  35.65314,  35.65285,  35.63681,  35.63496,
        35.63753,  35.62465,  35.64226,  35.64176,  35.66451,  35.67651,
        35.65781,  35.66298,  35.66298,  35.66237,  35.63262,  35.66222,
        35.66034,  35.6573 ,  35.65176,  35.64915,  35.6269 ,  35.66336,
        35.6344 ,  35.65227,  35.62104,  35.61906,  35.62021,  35.65617,
        35.62073,  35.63787,  35.64086,  35.60166,  35.61883,  35.63839,
        35.64301,  35.68041,  35.64822,  35.66089,  35.60163,  35.66145,
        35.65727,  35.60392,  35.62003,  35.66682,  35.65776,  35.65626,
        35.64225,  35.61039,  35.64093,  35.65502,  35.66023,  35.6623 ,
        35.6233 ,  35.66248,  35.61986,  35.67714,  35.61941,  35.64136,
        35.641  ,  35.66824,  35.64747,  35.64165,  35.62073,  35.62073,
        35.61787,  35.64703,  35.65219,  35.66145,  35.65596,  35.63716,
        35.62988,  35.64887,  35.66552,  35.62336,  35.63873,  35.64384,
        35.64887,  35.64661,  35.65626,  35.65431,  35.60861,  35.66163,
        35.64973,  35.64884,  35.63143,  35.63961,  35.65502,  35.65617,
        35.65617,  35.64001,  35.61688,  35.64165,  35.65922,  35.66126,
        35.63467,  35.65055,  35.66576,  35.6045 ,  35.64089,  35.65233,
        35.64747,  35.63518,  35.62668,  35.65494,  35.67666,  35.6382 ,
        35.64977,  35.62066,  35.62923,  35.62994,  35.60823,  35.6348 ,
        35.63916,  35.60968,  35.59604,  35.64093,  35.63517,  35.6493 ,
        35.65815,  35.61724,  35.65922,  35.65922,  35.63274,  35.67625,
        35.65156,  35.63627,  35.63538,  35.65902,  35.67096,  35.61947,
        35.62089,  35.63585,  35.61882,  35.63111,  35.66934,  35.65922,
        35.67028,  35.6798 ,  35.62073,  35.64621,  35.64452,  35.67573,
        35.60233,  35.60233,  35.64063,  35.63128,  35.64742,  35.66962,
        35.63519,  35.63634,  35.60332,  35.61476,  35.65502,  35.67001,
        35.60744,  35.6266 ,  35.65815,  35.65902,  35.64845,  35.63561,
        35.66586,  35.65377,  35.67693,  35.6513 ,  35.67957,  35.63474,
        35.65262,  35.65271,  35.64202,  35.65029,  35.61434,  35.63457,
        35.64933,  35.66969,  35.64147,  35.62261,  35.61682,  35.61947,
        35.62673,  35.64341,  35.65719,  35.61046,  35.61307,  35.62365,
        35.62038,  35.6738 ,  35.63251,  35.64151,  35.62619,  35.66988,
        35.60126,  35.64917,  35.6526 ,  35.61787,  35.63503,  35.66084,
        35.66453,  35.63795,  35.661  ,  35.63957,  35.64063,  35.59325,
        35.6249 ,  35.61365,  35.66388,  35.64341,  35.64147,  35.65958,
        35.65494,  35.65857,  35.60823,  35.65464,  35.65488,  35.64147,
        35.65455,  35.65554,  35.60228,  35.62112,  35.63562,  35.63143,
        35.65931,  35.6587 ,  35.62104,  35.6623 ,  35.65922,  35.64741,
        35.64742,  35.65018,  35.65973,  35.61842,  35.61842,  35.64923,
        35.64669,  35.60207,  35.63771,  35.6171 ,  35.59361,  35.63873,
        35.64747,  35.64761,  35.63552,  35.64251,  35.60312,  35.66036,
        35.62994,  35.63814,  35.62207,  35.66485,  35.67437,  35.63506,
        35.65502,  35.62238,  35.63873,  35.63561,  35.63561,  35.64208,
        35.641  ,  35.6526 ,  35.66298,  35.6078 ,  35.65253,  35.64747,
        35.64387,  35.63518,  35.63518,  35.63123,  35.62032,  35.64089,
        35.66969,  35.64736,  35.63345,  35.66453,  35.629  ,  35.62982,
        35.64708,  35.66283,  35.66388,  35.66542,  35.63123,  35.65331,
        35.65285,  35.66676,  35.63085,  35.63552,  35.63457,  35.64147,
        35.61741,  35.61958,  35.62261,  35.61947,  35.65496,  35.63457,
        35.65383,  35.67043,  35.66973,  35.62498,  35.64274,  35.63827,
        35.63799,  35.6374 ,  35.66775,  35.59604,  35.66848,  35.65018,
        35.63561,  35.64741,  35.64669,  35.64968,  35.64644,  35.66283,
        35.61958,  35.63123,  35.61365,  35.65596,  35.61947,  35.61947,
        35.61759,  35.66973,  35.65494,  35.65262,  35.65596,  35.65371,
        35.64949,  35.6357 ,  35.64548,  35.64548,  35.63528,  35.64243,
        35.65107,  35.63552,  35.66647,  35.66036,  35.61958,  35.63382,
        35.64642,  35.60559,  35.60659,  35.60228,  35.63457,  35.60395,
        35.63143,  35.64429,  35.64541,  35.63561,  35.63873,  35.6566 ,
        35.64777,  35.61083,  35.63839,  35.63382,  35.66576,  35.67957,
        35.62982,  35.66388,  35.65525,  35.63067,  35.62261,  35.60312,
        35.61763,  35.62261,  35.66089,  35.62592,  35.63017,  35.61046,
        35.66334,  35.64341,  35.63518,  35.64911,  35.60765,  35.661  ,
        35.63717,  35.6242 ,  35.66163,  35.59945,  35.65596,  35.61046,
        35.63999,  35.65667,  35.65902,  35.66334,  35.62502,  35.63561,
        35.66298,  35.67054,  35.64747,  35.60571,  35.64747,  35.61787,
        35.66416,  35.64028,  35.62698,  35.66084,  35.65262,  35.64975,
        35.61601,  35.63552,  35.65176,  35.63874,  35.64473,  35.66841,
        35.61511,  35.62986,  35.63517,  35.63151,  35.61307,  35.62569,
        35.64774,  35.61901,  35.61986,  35.66848,  35.67028,  35.66642,
        35.66145,  35.64619,  35.64736,  35.64619,  35.63964,  35.64712,
        35.66234,  35.66655,  35.63536,  35.6286 ,  35.66973,  35.65791,
        35.65719,  35.67505,  35.63961,  35.64408,  35.65314,  35.61702,
        35.63873,  35.65271,  35.59361,  35.60225,  35.60721,  35.66453,
        35.63836,  35.66126,  35.66586,  35.66005,  35.63166,  35.65494,
        35.6149 ,  35.63836,  35.66439,  35.66336,  35.64857,  35.61582,
        35.65595,  35.66303,  35.66837,  35.6623 ,  35.65922,  35.65464,
        35.64701,  35.60571,  35.63805,  35.67184,  35.65167,  35.65167,
        35.64139,  35.63691,  35.60312,  35.66962,  35.60823,  35.66682,
        35.66682,  35.59923,  35.60171,  35.61402,  35.64657,  35.6279 ,
        35.62757,  35.67555,  35.65271,  35.64628,  35.65083,  35.60233,
        35.60233,  35.67573,  35.65107,  35.64637,  35.64975,  35.66328,
        35.62354,  35.63128,  35.60312,  35.61398,  35.627  ,  35.64887,
        35.66364,  35.65525,  35.63164,  35.61046,  35.62798,  35.6389 ,
        35.59356,  35.65342,  35.62148,  35.59519,  35.63033,  35.66546,
        35.66542,  35.61738,  35.6623 ,  35.63626,  35.64703,  35.60233,
        35.63629,  35.67977,  35.62927,  35.67523,  35.67666,  35.65907,
        35.63924,  35.60385,  35.61873,  35.60004,  35.66089,  35.6581 ,
        35.65776,  35.63677,  35.63691,  35.63483,  35.61884,  35.64147,
        35.64193,  35.67043,  35.66089,  35.66163,  35.61307,  35.62334,
        35.59746,  35.64281,  35.61688,  35.64028,  35.6045 ,  35.66128,
        35.62187,  35.63518,  35.62062,  35.64085,  35.66412,  35.66412,
        35.63747,  35.65805,  35.65945,  35.629  ,  35.63704,  35.6573 ,
        35.65987,  35.63992,  35.60312,  35.64677,  35.67063,  35.64761,
        35.64147,  35.65914,  35.66175,  35.62724,  35.66441,  35.59633,
        35.62757,  35.65083,  35.63638,  35.6347 ,  35.60721,  35.60571,
        35.66128,  35.64085,  35.64496,  35.62586,  35.66653,  35.64933,
        35.61884,  35.65719,  35.63524,  35.64135,  35.65922,  35.65881,
        35.65394,  35.59299,  35.6488 ,  35.66234,  35.65573,  35.6617 ,
        35.64496,  35.64502,  35.64496,  35.6516 ,  35.5942 ,  35.65262,
        35.61691,  35.6512 ,  35.65083,  35.67154,  35.63274,  35.61702,
        35.60847,  35.65862,  35.66001,  35.59746,  35.61787,  35.66362,
        35.61884,  35.67645,  35.66969,  35.66036,  35.66227,  35.63642,
        35.64598,  35.66296,  35.64637,  35.65573,  35.63116,  35.6617 ,
        35.64842,  35.63704,  35.63821,  35.63842,  35.64842,  35.64341,
        35.65464,  35.65587,  35.63457,  35.64547,  35.64521,  35.63067,
        35.64499,  35.64628,  35.64628,  35.64421,  35.64028,  35.6171 ,
        35.6623 ,  35.64628,  35.61787,  35.64747,  35.65776,  35.66767,
        35.62054,  35.63873,  35.66676,  35.61738,  35.6105 ,  35.63799,
        35.64641,  35.66676,  35.65048,  35.64845,  35.64311,  35.64747,
        35.64541,  35.67573,  35.61798,  35.65271,  35.61906,  35.62381,
        35.6242 ,  35.64387,  35.63433,  35.65776,  35.59325,  35.627  ,
        35.66233,  35.64384,  35.64677,  35.64148,  35.60346,  35.64301,
        35.62238,  35.65596,  35.61506,  35.64897,  35.61986,  35.66416,
        35.62357,  35.62718,  35.65192,  35.66294,  35.66294,  35.65805,
        35.66034,  35.59325,  35.627  ,  35.61367,  35.65676,  35.65805,
        35.64086,  35.64161,  35.63388,  35.6344 ,  35.65955,  35.61989,
        35.65233,  35.62718,  35.65014,  35.6171 ,  35.62698,  35.62378,
        35.65573,  35.60362,  35.6344 ,  35.66269,  35.66269,  35.62249,
        35.64724,  35.66327,  35.66327,  35.65201,  35.66294,  35.63493,
        35.61626,  35.64669,  35.66436,  35.627  ,  35.63748,  35.66412,
        35.64302,  35.64999,  35.64429,  35.63033,  35.62614,  35.62799,
        35.62087,  35.63836,  35.62322,  35.64341,  35.66327,  35.64833,
        35.65304,  35.66962,  35.6249 ,  35.64637,  35.5942 ,  35.59909,
        35.64883,  35.65596,  35.61703,  35.617  ,  35.67216,  35.6738 ,
        35.6642 ,  35.64931,  35.64855,  35.61644,  35.61854,  35.66056,
        35.66634,  35.62054,  35.64712,  35.65371,  35.67675,  35.62632,
        35.66294,  35.64387,  35.627  ,  35.6622 ,  35.64789,  35.66142,
        35.62646,  35.65958,  35.63116,  35.61883,  35.62135,  35.66622,
        35.5942 ,  35.62923,  35.6526 ,  35.61702,  35.67148,  35.63211,
        35.64623,  35.64521,  35.62534,  35.59776,  35.61309,  35.65174,
        35.64685,  35.64708,  35.6149 ,  35.64599,  35.62103,  35.61525,
        35.64431,  35.64813,  35.65283,  35.63836,  35.63839,  35.67216,
        35.64883,  35.66249,  35.62502,  35.6825 ,  35.65659,  35.65291,
        35.6622 ,  35.65596,  35.65525,  35.5942 ,  35.63391,  35.63877,
        35.6149 ,  35.66767,  35.65907,  35.61499,  35.61883,  35.65554,
        35.61978,  35.65574,  35.64148,  35.6273 ,  35.67736,  35.61868,
        35.62038,  35.61986,  35.6486 ,  35.65304,  35.67148,  35.66362,
        35.63016,  35.60011,  35.66426,  35.63391,  35.62066,  35.64391,
        35.6238 ,  35.64675,  35.6149 ,  35.61499,  35.63621,  35.64804,
        35.6149 ,  35.64369,  35.62864,  35.6206 ,  35.6389 ,  35.64795,
        35.63748,  35.63802,  35.61196,  35.61234,  35.65116,  35.65083,
        35.62357,  35.67216,  35.64623,  35.62322,  35.67216,  35.65156,
        35.65371,  35.63836,  35.63771,  35.64547,  35.64309,  35.66145,
        35.65025,  35.65371,  35.63795,  35.67045,  35.63537,  35.61476,
        35.6618 ,  35.60758,  35.62207,  35.65706,  35.67216,  35.64075,
        35.62261,  35.66034,  35.66459,  35.61499,  35.64797,  35.60118,
        35.64445,  35.64127,  35.63538,  35.62555])

In [ ]:
nonzmat(x):
    #This function computes nonzeros of a MATRIX when certain ROWS of the 
    #matrix are zero.  This function returns a matrix with the 
    #zero rows deleted

    m, k = x.shape
    xtemp = matrix(np.zeros(m, k))

    for (i in 1:m) {
    xtemp[i,] <- ifelse(x[i,] == matrix(0, nrow=1, ncol=k), 99999*matrix(1, nrow=1, ncol=k), x[i,])
    }

    xtemp <- xtemp - 99999

    if (length(which(xtemp !=0,arr.ind = T)) == 0) {
    a <- matrix(-99999, nrow=1, ncol=k)
    } else {
    a <- xtemp[which(xtemp !=0,arr.ind = T)]
    }
    a <- a + 99999
    n1 <- length(a)
    rowlen <- n1/k
    collen <- k

    out = matrix(a, nrow=rowlen, ncol=collen)
    return(out)
    }

In [265]:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.tri as mtri



#============
# First plot
#============
# Plot the surface.  The triangles in parameter space determine which x, y, z
# points are connected by an edge.
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax.plot_trisurf(X, Y, e)
ax.set_zlim(-1, 1)
plt.show()

In [ ]: