In [1]:
import cmbfittest as fit

In [2]:
from scipy.ndimage.filters import gaussian_filter1d as gaussian_filter
from numpy.random import multivariate_normal as normal
from numpy.random import normal as N
from numpy import dot, sqrt, zeros, array, arange, save, mean, std
from numpy.linalg import inv, eigh
from scipy.linalg import sqrtm
from matplotlib.colors import LogNorm

In [3]:
### Instancing models
primordial = fit.model.model('primordial', ellmax = 5000, force_calculation = False)
lcdm = fit.model.model('lcdm', ellmax = 5000, force_calculation = False)
primordial.get_dcldphi()
lcdm.get_dcldphi()
primordial.get_covariance()
lcdm.get_covariance()
primordial.save_dcldphi()
lcdm.save_dcldphi()

In [4]:
#lcdm.dcldphi = gaussian_filter(lcdm.dcldphi, sigma = 20, axis = 0)
primordial.dcldphi= gaussian_filter(primordial.dcldphi, sigma = 20, axis = 0)

In [5]:
figure(figsize = (11,8.5), dpi = 400)

plot(primordial.dcldphi[:3000,:3000], linewidth = 2);
xlabel('multipole $l$', fontsize = 24)
ylabel(r'$\delta C_l \left[\mu {\rm k}^2\right]$', fontsize = 24)
title('Primordial Perturbation Responses', fontsize = 24)
savefig('figures/responses.png')



In [6]:
### SPT
spt = fit.data.data('spt', ellmax = 5000)
spt.get_covariance()
spt.get_bandpowers()
spt.get_window_functions()
errorbar(arange(47), spt.observation, yerr = sqrt(diag(spt.covariance)))
figure()
errorbar(arange(35,47), spt.observation[35:47], yerr = sqrt(diag(spt.covariance))[35:47])


Out[6]:
<Container object of 3 artists>

In [7]:
### WMAP
wmap = fit.data.data('wmap', ellmax = 5000)
wmap.get_covariance()
wmap.get_bandpowers()
wmap.get_window_functions()
errorbar(wmap.lslice, wmap.observation, yerr = sqrt(diag(wmap.covariance)))


src/data.py:118: RuntimeWarning: divide by zero encountered in divide
  inv_covariance = np.diag(1.0/np.diag(tttt)) - R_eff/(tttt) + Epsilon/tttt**2
src/data.py:118: RuntimeWarning: invalid value encountered in divide
  inv_covariance = np.diag(1.0/np.diag(tttt)) - R_eff/(tttt) + Epsilon/tttt**2
Out[7]:
<Container object of 3 artists>

In [8]:
fisher_lcdm = fit.model.model('lcdm', ellmax = 5000)
parameter_prior_cov = inv(
                          dot(
                              dot(lcdm.dcldphi.T, wmap.windows.T),
                              dot(
                                  inv(wmap.covariance),
                                  dot(wmap.windows,lcdm.dcldphi)
                                  )
                              )
                        + dot(
                              dot(lcdm.dcldphi.T, spt.windows.T),
                              dot(
                                  inv(spt.covariance),
                                  dot(spt.windows,lcdm.dcldphi)
                                  )
                              )
                          )
fisher_lcdm.dcldphi = dot(lcdm.dcldphi, parameter_prior_cov)
fisher_lcdm.get_covariance()
imshow(log(abs(fisher_lcdm.covariance[:1200,:1200])))
colorbar()


-c:20: RuntimeWarning: divide by zero encountered in log
Out[8]:
<matplotlib.colorbar.Colorbar instance at 0x120c887a0>

In [9]:
#imshow(
#       abs(wmap.covariance),
#       norm = LogNorm(vmin = 10, vmax = 1e4)
#        )
#colorbar()
#figure()
#imshow(abs((spt.covariance)), 
#       norm = LogNorm(vmin = 10, vmax=1e4)
#       )
#colorbar()
#figure()
#plot(sqrt(diag(wmap.covariance)))
#figure()
#plot(sqrt(diag(spt.covariance)))

In [10]:
lda=fit.scheme.compression_scheme(
                                    'LDA',
                                    dcldphi = primordial.dcldphi,
                                    noise_cov = [spt.covariance,wmap.covariance],
                                    windows = [spt.windows, wmap.windows],
                                    supermodel_cov = primordial.covariance,
                                    kappa = 1e6, 
                                    SM_cov = fisher_lcdm.covariance,
                                    nummodes = 20,
                                    ellmax = 5000
                                    )

In [11]:
lda.get_compression_modes()


<matplotlib.figure.Figure at 0x120c69950>
<matplotlib.figure.Figure at 0x12be75590>
1000000.0
/Users/follin/projects/anaconda/lib/python2.7/site-packages/numpy/core/numeric.py:460: ComplexWarning: Casting complex values to real discards the imaginary part
  return array(a, dtype, copy=False, order=order)

In [12]:
from matplotlib.pyplot import cm
spt_ells = arange(650, 3000, 50)
nummodes = 4
figure(figsize = (11,8.5), dpi = 400)
colormap = cm.RdYlBu
#colors = [colormap(i) for i in np.linspace(0, 0.9, nummodes)]
colors = ['b', 'g', 'r', 'k']
for i in arange(nummodes):
    plot(spt_ells, lda.modes[:47,i]/50, color = colors[i], linestyle='dashed', linewidth = 3);
    plot(wmap.lslice, lda.modes[47:,i], color = colors[i], label = 'Mode %i'%(i+1), linewidth = 3);
legend(loc = 2)
xlabel('Multipole $l$', fontsize = 24)
ylabel('Filter Function $h_i(l)$', fontsize = 24)

savefig('figures/modes.png')

figure(figsize = (11,8.5), dpi = 400)
colors = ['b', 'g', 'r', 'k']
for i in arange(nummodes):
    semilogx(spt_ells, lda.modes[:47,i]/50, color = colors[i], linestyle='dashed', linewidth = 3);
    semilogx(wmap.lslice, lda.modes[47:,i], color = colors[i], label = 'Mode %i'%(i+1), linewidth = 3);
legend(loc = 2)
xlabel('Multipole $l$', fontsize = 24)
ylabel('Filter Function $h_i(l)$', fontsize = 24)

savefig('figures/modes_logscale.png')



In [13]:
print lcdm.dcldphi.T.shape
print spt.windows.shape


(6, 5001)
(47, 5001)

In [14]:
lda.modes.shape
for i in arange(6):
    windowed_lcdm = []
    windowed_lcdm.append(dot(lcdm.dcldphi.T[i,:], spt.windows.T))
    windowed_lcdm.append(dot(lcdm.dcldphi.T[i,:], wmap.windows.T))
    windowed_lcdm = [item for sublist in windowed_lcdm for item in sublist]
    windowed_lcdm = array(windowed_lcdm)
    print dot(real(lda.modes.T), windowed_lcdm)/sqrt(dot(windowed_lcdm, windowed_lcdm)* dot(real(lda.modes).T, real(lda.modes)));


#print dot(real(windowed_lcdm), windowed_lcdm)/sqrt(dot(windowed_lcdm, windowed_lcdm)* dot(windowed_lcdm, windowed_lcdm));


[[ -5.58259929e-02   5.02052596e-03              nan  -4.73694888e-03
               nan   5.61913441e-03              nan   2.66517793e-03
               nan   1.18344856e-02              nan              nan
               nan              nan  -3.65227818e-05  -9.91102590e-03
               nan              nan              nan  -6.00104968e-03]
 [ -5.93673885e-02   4.72104053e-03              nan  -4.58501324e-03
               nan   6.78116004e-03              nan   2.47859496e-03
               nan   1.06170458e-02              nan              nan
               nan              nan  -3.82102495e-05  -7.90775310e-03
               nan              nan              nan  -5.21595189e-03]
 [             nan              nan   9.66943370e-05              nan
   -8.32109969e-04              nan   6.16205221e-03              nan
    9.21807539e-04              nan  -2.75739688e-03   1.27396968e-03
   -8.33883519e-04  -1.28153530e-03              nan              nan
               nan   3.46881881e-03   2.77711641e-03              nan]
 [ -5.95254631e-02   4.87243385e-03              nan  -4.44255048e-03
               nan   9.76373745e-03              nan   2.58304994e-03
               nan   1.25393135e-02              nan              nan
               nan              nan  -4.80787537e-05  -8.37733135e-03
               nan              nan              nan  -5.93572551e-03]
 [             nan              nan   1.10734627e-04              nan
   -7.26604889e-04              nan   5.62133648e-03              nan
    7.19653541e-04              nan  -2.05240909e-03   9.28284867e-04
   -6.87260165e-04  -1.54666522e-03              nan              nan
               nan   3.34197773e-03   2.69659790e-03              nan]
 [ -8.42983246e-02   8.60309639e-03              nan  -1.16563218e-02
               nan   3.72123360e-03   2.30472288e-02   3.12682082e-03
               nan   1.03673327e-02              nan              nan
               nan              nan  -2.74731296e-05  -1.19656390e-02
    6.08517702e-03              nan              nan  -5.50679521e-03]
 [             nan              nan   2.38682325e-04              nan
   -1.63618250e-03   3.43557547e-02   2.49635391e-03              nan
    9.78282145e-04              nan              nan              nan
               nan              nan  -2.90208870e-05              nan
    2.17820100e-03   1.55840996e-03   1.46644572e-03  -9.35841964e-03]
 [ -6.89981562e-02   5.42647881e-03              nan  -5.32157265e-03
               nan   5.39591066e-03              nan   2.15637942e-03
               nan   1.08601255e-02              nan              nan
   -7.25162472e-04  -1.00522836e-03              nan  -6.31636677e-03
               nan              nan              nan  -1.24614574e-02]
 [             nan              nan   1.36070727e-04              nan
   -7.98261516e-04              nan   3.72815270e-03              nan
    6.55053227e-04              nan  -1.88401761e-03   8.49365574e-04
   -8.26211099e-04  -1.84219327e-03              nan              nan
    4.62825084e-03   2.67767148e-03   2.05988624e-03              nan]
 [ -7.61776234e-02   5.77940321e-03              nan  -6.42314472e-03
               nan   4.44831512e-03              nan   2.70023525e-03
               nan   8.67278186e-03              nan              nan
               nan              nan  -2.35232227e-05  -8.44297266e-03
               nan   3.03902008e-03   1.13743071e-02  -3.90313401e-03]
 [             nan              nan   1.66229404e-04              nan
   -9.29757678e-04              nan              nan              nan
    7.69429928e-04              nan  -1.60395608e-03   7.12811804e-04
   -4.63531116e-04  -7.13528244e-04              nan              nan
               nan              nan              nan              nan]
 [             nan              nan   1.73176621e-04              nan
   -9.48219136e-04              nan              nan              nan
    7.82168594e-04              nan  -1.60729830e-03   7.11329583e-04
   -4.63159682e-04  -7.07126740e-04              nan              nan
               nan              nan              nan              nan]
 [             nan              nan   1.97858279e-04              nan
   -1.22537012e-03              nan              nan   3.83714576e-03
    1.32805301e-03              nan  -1.82439621e-03   8.08443018e-04
   -4.07523074e-04  -6.64956513e-04              nan  -7.59279613e-03
               nan              nan              nan              nan]
 [             nan              nan   2.19861187e-04              nan
   -1.99393772e-03              nan              nan   3.84597861e-03
    2.14105949e-03              nan  -2.03058229e-03   8.92452446e-04
   -4.80797721e-04  -5.63615654e-04              nan  -8.02686514e-03
               nan              nan              nan              nan]
 [ -1.16994707e-01   1.03510287e-02              nan  -1.22560771e-02
               nan   5.86625558e-03   4.15702607e-03              nan
               nan   1.17063405e-02              nan              nan
               nan              nan  -1.74274598e-05              nan
    1.77571090e-03   1.33869870e-03   1.46167845e-03  -3.56943531e-03]
 [ -9.97822304e-02   6.73269545e-03              nan  -6.71175670e-03
               nan   8.03010030e-03              nan   2.45635232e-03
               nan   1.32054117e-02              nan              nan
   -5.58022978e-04  -8.15881627e-04              nan  -5.54500395e-03
               nan              nan              nan  -9.91638516e-03]
 [             nan              nan              nan              nan
               nan   1.58853716e-02   3.81453265e-03              nan
    2.12681986e-03              nan              nan              nan
               nan              nan  -2.17091880e-05              nan
    1.42548539e-03              nan   3.87254013e-03  -8.95531125e-03]
 [             nan              nan   3.96489795e-04              nan
   -2.87045819e-03              nan   4.59872274e-03              nan
    2.07340070e-03   3.11559752e-02              nan              nan
               nan              nan  -2.75782237e-05              nan
               nan   8.45961585e-04   9.14920907e-04  -3.82066885e-03]
 [             nan              nan   3.00052325e-04              nan
   -2.18935597e-03              nan   4.09047758e-03              nan
    1.50772348e-03   1.10226304e-01              nan              nan
               nan              nan  -2.84634674e-05              nan
    6.16823014e-03   8.64840591e-04   8.94948674e-04  -4.08568178e-03]
 [ -1.05310995e-01   7.74071977e-03              nan  -8.28926875e-03
               nan   6.44163184e-03   7.34376397e-03   8.44703035e-03
               nan   1.06409873e-02              nan              nan
               nan              nan  -1.95543617e-05  -1.72848369e-02
    4.01285526e-03   1.01601491e-03   1.14940401e-03  -3.18119258e-03]]
[[  1.35812022e-03  -3.38748516e-03              nan   1.56967231e-02
               nan   2.27289072e-03              nan  -7.90665923e-05
               nan  -6.60076828e-03              nan              nan
               nan              nan  -2.95598238e-04   3.43728865e-03
               nan              nan              nan   9.04959519e-04]
 [  1.44427437e-03  -3.18541420e-03              nan   1.51932573e-02
               nan   2.74291993e-03              nan  -7.35313222e-05
               nan  -5.92173258e-03              nan              nan
               nan              nan  -3.09255808e-04   2.74252436e-03
               nan              nan              nan   7.86566613e-04]
 [             nan              nan   5.55758089e-03              nan
   -6.19518406e-04              nan  -1.82054850e-02              nan
   -5.37445557e-03              nan   2.86822122e-03   6.03710087e-04
   -2.02288372e-03  -1.58481172e-02              nan              nan
               nan  -2.38049561e-03  -1.94503678e-03              nan]
 [  1.44811997e-03  -3.28756339e-03              nan   1.47211816e-02
               nan   3.94934640e-03              nan  -7.66301395e-05
               nan  -6.99389101e-03              nan              nan
               nan              nan  -3.89126845e-04   2.90538096e-03
               nan              nan              nan   8.95108621e-04]
 [             nan              nan   6.36455732e-03              nan
   -5.40968285e-04              nan  -1.66079666e-02              nan
   -4.19582811e-03              nan   2.13489881e-03   4.39896605e-04
   -1.66719616e-03  -1.91268485e-02              nan              nan
               nan  -2.29345024e-03  -1.88864323e-03              nan]
 [  2.05078769e-03  -5.80474268e-03              nan   3.86252967e-02
               nan   1.50520644e-03  -6.80919220e-02  -9.27619370e-05
               nan  -5.78245332e-03              nan              nan
               nan              nan  -2.22354605e-04   4.14985850e-03
   -5.91330206e-02              nan              nan   8.30425844e-04]
 [             nan              nan   1.37184490e-02              nan
   -1.21816252e-03   1.38966023e-02  -7.37535679e-03              nan
   -5.70372199e-03              nan              nan              nan
               nan              nan  -2.34881426e-04              nan
   -2.11667802e-02  -1.06946724e-03  -1.02706924e-03   1.41125160e-03]
 [  1.67856918e-03  -3.66139256e-03              nan   1.76339780e-02
               nan   2.18259867e-03              nan  -6.39723039e-05
               nan  -6.05731205e-03              nan              nan
   -1.75914180e-03  -1.24311650e-02              nan   2.19060832e-03
               nan              nan              nan   1.87919032e-03]
 [             nan              nan   7.82076899e-03              nan
   -5.94317723e-04              nan  -1.10146467e-02              nan
   -3.81918602e-03              nan   1.95973939e-03   4.02498248e-04
   -2.00427151e-03  -2.27814986e-02              nan              nan
   -4.49752655e-02  -1.83756649e-03  -1.44270312e-03              nan]
 [  1.85322939e-03  -3.89952024e-03              nan   2.12842331e-02
               nan   1.79930456e-03              nan  -8.01066213e-05
               nan  -4.83730559e-03              nan              nan
               nan              nan  -1.90385913e-04   2.92814633e-03
               nan  -2.08554391e-03  -7.96633715e-03   5.88593407e-04]
 [             nan              nan   9.55416198e-03              nan
   -6.92218597e-04              nan              nan              nan
   -4.48604160e-03              nan   1.66842173e-03   3.37788005e-04
   -1.12446106e-03  -8.82385307e-03              nan              nan
               nan              nan              nan              nan]
 [             nan              nan   9.95345861e-03              nan
   -7.05963430e-04              nan              nan              nan
   -4.56031241e-03              nan   1.67189828e-03   3.37085608e-04
   -1.12356001e-03  -8.74468881e-03              nan              nan
               nan              nan              nan              nan]
 [             nan              nan   1.13720558e-02              nan
   -9.12306510e-04              nan              nan  -1.13834816e-04
   -7.74300667e-03              nan   1.89772172e-03   3.83105824e-04
   -9.88593456e-04  -8.22319034e-03              nan   2.63329268e-03
               nan              nan              nan              nan]
 [             nan              nan   1.26366897e-02              nan
   -1.48451667e-03              nan              nan  -1.14096856e-04
   -1.24831146e-02              nan   2.11219475e-03   4.22916300e-04
   -1.16634741e-03  -6.96995776e-03              nan   2.78383416e-03
               nan              nan              nan              nan]
 [  2.84621679e-03  -6.98412006e-03              nan   4.06126924e-02
               nan   2.37284907e-03  -1.22817323e-02              nan
               nan  -6.52929446e-03              nan              nan
               nan              nan  -1.41049672e-04              nan
   -1.72555620e-02  -9.18689203e-04  -1.02373035e-03   5.38271576e-04]
 [  2.42747612e-03  -4.54273239e-03              nan   2.22406002e-02
               nan   3.24810533e-03              nan  -7.28714602e-05
               nan  -7.36541204e-03              nan              nan
   -1.35368498e-03  -1.00896070e-02              nan   1.92308842e-03
               nan              nan              nan   1.49539291e-03]
 [             nan              nan              nan              nan
               nan   6.42549389e-03  -1.12698521e-02              nan
   -1.24000926e-02              nan              nan              nan
               nan              nan  -1.75703969e-04              nan
   -1.38522276e-02              nan  -2.71224964e-03   1.35046277e-03]
 [             nan              nan   2.27885539e-02              nan
   -2.13709936e-03              nan  -1.35867038e-02              nan
   -1.20886405e-02  -1.73774662e-02              nan              nan
               nan              nan  -2.23205186e-04              nan
               nan  -5.80545699e-04  -6.40792301e-04   5.76157644e-04]
 [             nan              nan   1.72457366e-02              nan
   -1.63000850e-03              nan  -1.20851180e-02              nan
   -8.79054740e-03  -6.14795025e-02              nan              nan
               nan              nan  -2.30369933e-04              nan
   -5.99400935e-02  -5.93501519e-04  -6.26804149e-04   6.16121648e-04]
 [  2.56197848e-03  -5.22287377e-03              nan   2.74679672e-02
               nan   2.60558374e-03  -2.16967952e-02  -2.50594115e-04
               nan  -5.93508614e-03              nan              nan
               nan              nan  -1.58263817e-04   5.99463409e-03
   -3.89951273e-02  -6.97245708e-04  -8.05019573e-04   4.79724491e-04]]
[[  5.56015438e-02  -4.99041270e-03              nan   4.69641791e-03
               nan  -5.53875591e-03              nan  -2.64349113e-03
               nan  -1.17281579e-02              nan              nan
               nan              nan   2.22309680e-05   9.85609299e-03
               nan              nan              nan   5.95109613e-03]
 [  5.91287011e-02  -4.69272359e-03              nan   4.54578229e-03
               nan  -6.68415942e-03              nan  -2.45842640e-03
               nan  -1.05216563e-02              nan              nan
               nan              nan   2.32581088e-05   7.86392355e-03
               nan              nan              nan   5.17253361e-03]
 [             nan              nan  -1.18486969e-04              nan
    8.31871635e-04              nan  -6.06780185e-03              nan
   -9.26794431e-04              nan   2.72739571e-03  -1.26351144e-03
    8.28293122e-04   1.22216227e-03              nan              nan
               nan  -3.43309142e-03  -2.76125454e-03              nan]
 [  5.92861402e-02  -4.84320885e-03              nan   4.40453848e-03
               nan  -9.62407276e-03              nan  -2.56203142e-03
               nan  -1.24266532e-02              nan              nan
               nan              nan   2.92649459e-05   8.33089911e-03
               nan              nan              nan   5.88631573e-03]
 [             nan              nan  -1.35691611e-04              nan
    7.26396774e-04              nan  -5.53535652e-03              nan
   -7.23546800e-04              nan   2.03007837e-03  -9.20664410e-04
    6.82652739e-04   1.47500882e-03              nan              nan
               nan  -3.30755675e-03  -2.68119592e-03              nan]
 [  8.39594021e-02  -8.55149476e-03              nan   1.15565863e-02
               nan  -3.66800348e-03  -2.26947148e-02  -3.10137759e-03
               nan  -1.02741867e-02              nan              nan
               nan              nan   1.67225561e-05   1.18993182e-02
   -6.16216913e-03              nan              nan   5.46095591e-03]
 [             nan              nan  -2.92475714e-04              nan
    1.63571386e-03  -3.38643152e-02  -2.45817145e-03              nan
   -9.83574561e-04              nan              nan              nan
               nan              nan   1.76646570e-05              nan
   -2.20576047e-03  -1.54235898e-03  -1.45806992e-03   9.28051890e-03]
 [  6.87207482e-02  -5.39393063e-03              nan   5.27603944e-03
               nan  -5.31872524e-03              nan  -2.13883276e-03
               nan  -1.07625521e-02              nan              nan
    7.20300947e-04   9.58656520e-04              nan   6.28135765e-03
               nan              nan              nan   1.23577265e-02]
 [             nan              nan  -1.66737873e-04              nan
    7.98032877e-04              nan  -3.67112953e-03              nan
   -6.58597004e-04              nan   1.86351902e-03  -8.42392980e-04
    8.20672138e-04   1.75684517e-03              nan              nan
   -4.68680933e-03  -2.65009258e-03  -2.04812093e-03              nan]
 [  7.58713503e-02  -5.74473818e-03              nan   6.36818608e-03
               nan  -4.38468452e-03              nan  -2.67826318e-03
               nan  -8.59486071e-03              nan              nan
               nan              nan   1.43182963e-05   8.39617659e-03
               nan  -3.00771943e-03  -1.13093412e-02   3.87064380e-03]
 [             nan              nan  -2.03693607e-04              nan
    9.29491376e-04              nan              nan              nan
   -7.73592472e-04              nan   1.58650464e-03  -7.06960205e-04
    4.60423580e-04   6.80470757e-04              nan              nan
               nan              nan              nan              nan]
 [             nan              nan  -2.12206564e-04              nan
    9.47947546e-04              nan              nan              nan
   -7.86400053e-04              nan   1.58981049e-03  -7.05490151e-04
    4.60054636e-04   6.74365832e-04              nan              nan
               nan              nan              nan              nan]
 [             nan              nan  -2.42450888e-04              nan
    1.22501914e-03              nan              nan  -3.80592254e-03
   -1.33523766e-03              nan   1.80454633e-03  -8.01806365e-04
    4.04791019e-04   6.34149335e-04              nan   7.55071226e-03
               nan              nan              nan              nan]
 [             nan              nan  -2.69412734e-04              nan
    1.99336661e-03              nan              nan  -3.81468352e-03
   -2.15264242e-03              nan   2.00848905e-03  -8.85126144e-04
    4.77574429e-04   5.37503559e-04              nan   7.98237539e-03
               nan              nan              nan              nan]
 [  1.16524329e-01  -1.02889429e-02              nan   1.21512098e-02
               nan  -5.78234214e-03  -4.09344316e-03              nan
               nan  -1.16011642e-02              nan              nan
               nan              nan   1.06078804e-05              nan
   -1.79817791e-03  -1.32491066e-03  -1.45332988e-03   3.53972286e-03]
 [  9.93810546e-02  -6.69231254e-03              nan   6.65432859e-03
               nan  -7.91523430e-03              nan  -2.43636475e-03
               nan  -1.30867669e-02              nan              nan
    5.54281963e-04   7.78082148e-04              nan   5.51427018e-03
               nan              nan              nan   9.83383984e-03]
 [             nan              nan              nan              nan
               nan  -1.56581405e-02  -3.75618827e-03              nan
   -2.13832576e-03              nan              nan              nan
               nan              nan   1.32141157e-05              nan
   -1.44352121e-03              nan  -3.85042160e-03   8.88076604e-03]
 [             nan              nan  -4.85849281e-04              nan
    2.86963603e-03              nan  -4.52838395e-03              nan
   -2.08461761e-03  -3.08760524e-02              nan              nan
               nan              nan   1.67865255e-05              nan
               nan  -8.37248532e-04  -9.09695215e-04   3.78886509e-03]
 [             nan              nan  -3.67677071e-04              nan
    2.18872889e-03              nan  -4.02791255e-03              nan
   -1.51588012e-03  -1.09235968e-01              nan              nan
               nan              nan   1.73253624e-05              nan
   -6.24627306e-03  -8.55933092e-04  -8.89837056e-04   4.05167202e-03]
 [  1.04887591e-01  -7.69429071e-03              nan   8.21834290e-03
               nan  -6.34948797e-03  -7.23143898e-03  -8.37829607e-03
               nan  -1.05453827e-02              nan              nan
               nan              nan   1.19024995e-05   1.71890339e-02
   -4.06362752e-03  -1.00555037e-03  -1.14283903e-03   3.15471190e-03]]
[[ 0.05003928 -0.00535232         nan  0.00956153         nan -0.00174163
          nan -0.00210587         nan -0.01105756         nan         nan
          nan         nan -0.00065005  0.00985149         nan         nan
          nan  0.00470559]
 [ 0.05321359 -0.00503304         nan  0.00925485         nan -0.00210179
          nan -0.00195844         nan -0.00992004         nan         nan
          nan         nan -0.00068008  0.00786025         nan         nan
          nan  0.00408997]
 [        nan         nan  0.00107379         nan  0.00055715         nan
  -0.00951673         nan -0.00334024         nan  0.00276749 -0.0007892
  -0.00030135 -0.00749028         nan         nan         nan -0.00289224
  -0.0029493          nan]
 [ 0.05335527 -0.00519444         nan  0.00896729         nan -0.00302623
          nan -0.00204098         nan -0.01171611         nan         nan
          nan         nan -0.00085572  0.008327           nan         nan
          nan  0.00465436]
 [        nan         nan  0.0012297          nan  0.00048651         nan
  -0.00868165         nan -0.00260772         nan  0.00205992 -0.00057506
  -0.00024836 -0.0090399          nan         nan         nan -0.00278648
  -0.00286379         nan]
 [ 0.07556027 -0.00917165         nan  0.02352829         nan -0.00115338
  -0.03559437 -0.00247063         nan -0.00968672         nan         nan
          nan         nan -0.00048898  0.01189376 -0.03238314         nan
          nan  0.00431803]
 [        nan         nan  0.00265056         nan  0.00109553 -0.01064843
  -0.00385539         nan -0.00354488         nan         nan         nan
          nan         nan -0.00051652         nan -0.01159161 -0.00129937
  -0.00155737  0.00733819]
 [ 0.06184606 -0.0057851          nan  0.01074159         nan -0.00167244
          nan -0.00170385         nan -0.01014716         nan         nan
  -0.00026206 -0.00587533         nan  0.00627842         nan         nan
          nan  0.00977137]
 [        nan         nan  0.00151106         nan  0.00053449         nan
  -0.0057578          nan -0.00237363         nan  0.00189092 -0.00052617
  -0.00029858 -0.01076719         nan         nan -0.0246299  -0.00223259
  -0.0021876          nan]
 [ 0.06828133 -0.00616135         nan  0.01296512         nan -0.00137874
          nan -0.00213357         nan -0.00810342         nan         nan
          nan         nan -0.00041867  0.00839225         nan -0.00253388
  -0.01207954  0.00306055]
 [        nan         nan  0.00184597         nan  0.00062253         nan
          nan         nan -0.00278809         nan  0.00160983 -0.00044158
  -0.00016751 -0.00417041         nan         nan         nan         nan
          nan         nan]
 [        nan         nan  0.00192312         nan  0.0006349          nan
          nan         nan -0.00283425         nan  0.00161318 -0.00044066
  -0.00016738 -0.00413299         nan         nan         nan         nan
          nan         nan]
 [        nan         nan  0.00219721         nan  0.00082047         nan
          nan -0.00303189 -0.0048123          nan  0.00183108 -0.00050082
  -0.00014727 -0.00388652         nan  0.00754718         nan         nan
          nan         nan]
 [        nan         nan  0.00244155         nan  0.00133507         nan
          nan -0.00303887 -0.00775829         nan  0.00203802 -0.00055286
  -0.00017375 -0.0032942          nan  0.00797864         nan         nan
          nan         nan]
 [ 0.10486747 -0.0110351          nan  0.02473889         nan -0.00181822
  -0.00642015         nan         nan -0.01093783         nan         nan
          nan         nan -0.00031018         nan -0.0094497  -0.00111618
  -0.00155231  0.00279889]
 [ 0.08943918 -0.00717764         nan  0.01354768         nan -0.0024889
          nan -0.00194087         nan -0.01233848         nan         nan
  -0.00020166 -0.00476864         nan  0.00551169         nan         nan
          nan  0.00777571]
 [        nan         nan         nan         nan         nan -0.00492361
  -0.0058912          nan -0.00770669         nan         nan         nan
          nan         nan -0.00038639         nan -0.00758593         nan
  -0.00411265  0.0070221 ]
 [        nan         nan  0.004403           nan  0.00192196         nan
  -0.00710231         nan -0.00751312 -0.0291106          nan         nan
          nan         nan -0.00049085         nan         nan -0.00070535
  -0.00097165  0.00299589]
 [        nan         nan  0.00333207         nan  0.00146592         nan
  -0.00631737         nan -0.00546335 -0.10299001         nan         nan
          nan         nan -0.0005066          nan -0.03282512 -0.00072109
  -0.00095044  0.00320369]
 [ 0.09439485 -0.00825228         nan  0.01673189         nan -0.00199656
  -0.01134178 -0.00667435         nan -0.00994241         nan         nan
          nan         nan -0.00034804  0.017181   -0.02135499 -0.00084713
  -0.00122067  0.00249446]]
[[  3.43569654e-02   3.64570346e-03              nan  -2.04631074e-02
               nan   1.10250370e-02              nan   7.84961767e-04
               nan   1.52552897e-02              nan              nan
               nan              nan  -3.80301907e-03  -1.44435925e-04
               nan              nan              nan  -4.38779841e-03]
 [  3.65364449e-02   3.42822921e-03              nan  -1.98067619e-02
               nan   1.33049924e-02              nan   7.30008401e-04
               nan   1.36859442e-02              nan              nan
               nan              nan  -3.97873054e-03  -1.15241716e-04
               nan              nan              nan  -3.81375704e-03]
 [             nan              nan  -1.35010702e-02              nan
    1.80179099e-03              nan   3.84612392e-02              nan
    2.48665946e-03              nan  -7.23791751e-03  -5.30241285e-04
    1.29184183e-03   1.31893403e-03              nan              nan
               nan   8.14004403e-03   2.24385518e-03              nan]
 [  3.66337287e-02   3.53816494e-03              nan  -1.91913382e-02
               nan   1.91569660e-02              nan   7.60773014e-04
               nan   1.61638508e-02              nan              nan
               nan              nan  -5.00631135e-03  -1.22085001e-04
               nan              nan              nan  -4.34003522e-03]
 [             nan              nan  -1.54614637e-02              nan
    1.57333789e-03              nan   3.50862926e-02              nan
    1.94133071e-03              nan  -5.38738831e-03  -3.86363166e-04
    1.06469478e-03   1.59180117e-03              nan              nan
               nan   7.84239460e-03   2.17879781e-03              nan]
 [  5.18796795e-02   6.24722160e-03              nan  -5.03540512e-02
               nan   7.30125588e-03   1.43852235e-01   9.20927182e-04
               nan   1.33640505e-02              nan              nan
               nan              nan  -2.86070312e-03  -1.74378329e-04
    3.38243309e-02              nan              nan  -4.02641347e-03]
 [             nan              nan  -3.33263243e-02              nan
    3.54287172e-03   6.74077960e-02   1.55813131e-02              nan
    2.63900484e-03              nan              nan              nan
               nan              nan  -3.02186694e-03              nan
    1.21074853e-02   3.65701593e-03   1.18485916e-03  -6.84261272e-03]
 [  4.24635039e-02   3.94049004e-03              nan  -2.29886190e-02
               nan   1.05870603e-02              nan   6.35107842e-04
               nan   1.39992871e-02              nan              nan
    1.12341255e-03   1.03456369e-03              nan  -9.20500348e-05
               nan              nan              nan  -9.11146646e-03]
 [             nan              nan  -1.89990490e-02              nan
    1.72849798e-03              nan   2.32697432e-02              nan
    1.76706550e-03              nan  -4.94537588e-03  -3.53516021e-04
    1.27995581e-03   1.89595354e-03              nan              nan
    2.57260368e-02   6.28351175e-03   1.66434737e-03              nan]
 [  4.68819601e-02   4.19676951e-03              nan  -2.77472913e-02
               nan   8.72782803e-03              nan   7.95287026e-04
               nan   1.11796832e-02              nan              nan
               nan              nan  -2.44940993e-03  -1.23041608e-04
               nan   7.13146422e-03   9.19021534e-03  -2.85386160e-03]
 [             nan              nan  -2.32099927e-02              nan
    2.01323030e-03              nan              nan              nan
    2.07560703e-03              nan  -4.21023970e-03  -2.96680723e-04
    7.18096558e-04   7.34350964e-04              nan              nan
               nan              nan              nan              nan]
 [             nan              nan  -2.41800068e-02              nan
    2.05320541e-03              nan              nan              nan
    2.10997074e-03              nan  -4.21901272e-03  -2.96063805e-04
    7.17521137e-04   7.27762647e-04              nan              nan
               nan              nan              nan              nan]
 [             nan              nan  -2.76262148e-02              nan
    2.65332818e-03              nan              nan   1.13013570e-03
    3.58254349e-03              nan  -4.78887512e-03  -3.36483568e-04
    6.31329605e-04   6.84361776e-04              nan  -1.10651768e-04
               nan              nan              nan              nan]
 [             nan              nan  -3.06983988e-02              nan
    4.31752910e-03              nan              nan   1.13273719e-03
    5.77570221e-03              nan  -5.33009493e-03  -3.71449288e-04
    7.44845764e-04   5.80063512e-04              nan  -1.16977567e-04
               nan              nan              nan              nan]
 [  7.20019996e-02   7.51649954e-03              nan  -5.29449290e-02
               nan   1.15099017e-02   2.59466114e-02              nan
               nan   1.50901038e-02              nan              nan
               nan              nan  -1.81467453e-03              nan
    9.87025242e-03   3.14143430e-03   1.18100730e-03  -2.60987052e-03]
 [  6.14089326e-02   4.88901188e-03              nan  -2.89940639e-02
               nan   1.57554788e-02              nan   7.23457387e-04
               nan   1.70224874e-02              nan              nan
    8.64482158e-04   8.39691301e-04              nan  -8.08087663e-05
               nan              nan              nan  -7.25058139e-03]
 [             nan              nan              nan              nan
               nan   3.11679339e-02   2.38088948e-02              nan
    5.73728953e-03              nan              nan              nan
               nan              nan  -2.26051938e-03              nan
    7.92353114e-03              nan   3.12893589e-03  -6.54787123e-03]
 [             nan              nan  -5.53603937e-02              nan
    6.21548340e-03              nan   2.87035178e-02              nan
    5.59318649e-03   4.01617311e-02              nan              nan
               nan              nan  -2.87164628e-03              nan
               nan   1.98516121e-03   7.39238011e-04  -2.79356540e-03]
 [             nan              nan  -4.18951889e-02              nan
    4.74067370e-03              nan   2.55312405e-02              nan
    4.06722087e-03   1.42087645e-01              nan              nan
               nan              nan  -2.96382433e-03              nan
    3.42859800e-02   2.02946331e-03   7.23100842e-04  -2.98733538e-03]
 [  6.48114980e-02   5.62099849e-03              nan  -3.58087456e-02
               nan   1.26388202e-02   4.58370447e-02   2.48786237e-03
               nan   1.37168061e-02              nan              nan
               nan              nan  -2.03614311e-03  -2.51896367e-04
    2.23053732e-02   2.38421391e-03   9.28695722e-04  -2.32599837e-03]]
[[-0.05847054  0.00473243         nan -0.0031841          nan  0.0045598
          nan  0.00254416         nan  0.01045265         nan         nan
          nan         nan  0.00030707 -0.00982552         nan         nan
          nan -0.00557127]
 [-0.0621797   0.00445013         nan -0.00308197         nan  0.00550275
          nan  0.00236605         nan  0.00937737         nan         nan
          nan         nan  0.00032126 -0.00783953         nan         nan
          nan -0.0048424 ]
 [        nan         nan  0.00115425         nan -0.00098636         nan
   0.00313068         nan  0.00078808         nan -0.00216077  0.00127648
  -0.00093611 -0.00112488         nan         nan         nan  0.00282161
   0.00261458         nan]
 [-0.06234526  0.00459284         nan -0.00298621         nan  0.00792304
          nan  0.00246577         nan  0.01107518         nan         nan
          nan         nan  0.00040423 -0.00830506         nan         nan
          nan -0.00551062]
 [        nan         nan  0.00132185         nan -0.0008613          nan
   0.00285597         nan  0.00061525         nan -0.00160832  0.00093011
  -0.00077151 -0.0013576          nan         nan         nan  0.00271844
   0.00253877         nan]
 [-0.08829164  0.00810942         nan -0.00783519         nan  0.00301969
   0.01170933  0.00298485         nan  0.00915681         nan         nan
          nan         nan  0.00023098 -0.01186241  0.00427433         nan
          nan -0.00511241]
 [        nan         nan  0.00284918         nan -0.00193949  0.02787889
   0.00126829         nan  0.00083636         nan         nan         nan
          nan         nan  0.000244           nan  0.00153001  0.00126765
   0.00138062 -0.00868819]
 [-0.07226669  0.00511509         nan -0.00357707         nan  0.00437866
          nan  0.00205847         nan  0.00959206         nan         nan
  -0.00081406 -0.00088235         nan -0.00626187         nan         nan
          nan -0.01156899]
 [        nan         nan  0.00162429         nan -0.00094624         nan
   0.00189412         nan  0.00056002         nan -0.00147637  0.00085104
  -0.0009275  -0.001617           nan         nan  0.00325096  0.00217808
   0.00193933         nan]
 [-0.07978625  0.00544776         nan -0.00431753         nan  0.0036097
          nan  0.00257763         nan  0.00766012         nan         nan
          nan         nan  0.00019777 -0.00837013         nan  0.00247201
   0.0107086  -0.0036236 ]
 [        nan         nan  0.0019843          nan -0.00110211         nan
          nan         nan  0.00065781         nan -0.0012569   0.00071422
  -0.00052036 -0.00062631         nan         nan         nan         nan
          nan         nan]
 [        nan         nan  0.00206723         nan -0.00112399         nan
          nan         nan  0.0006687          nan -0.00125952  0.00071273
  -0.00051994 -0.00062069         nan         nan         nan         nan
          nan         nan]
 [        nan         nan  0.00236186         nan -0.00145252         nan
          nan  0.00366292  0.00113539         nan -0.00142965  0.00081004
  -0.00045748 -0.00058367         nan -0.00752729         nan         nan
          nan         nan]
 [        nan         nan  0.00262451         nan -0.00236356         nan
          nan  0.00367135  0.00183046         nan -0.00159122  0.00089421
  -0.00053974 -0.00049472         nan -0.00795761         nan         nan
          nan         nan]
 [-0.1225369   0.00975705         nan -0.00823834         nan  0.00476033
   0.00211201         nan         nan  0.01033947         nan         nan
          nan         nan  0.00014652         nan  0.00124729  0.00108893
   0.00137613 -0.0033138 ]
 [-0.10450904  0.00634635         nan -0.00451153         nan  0.00651624
          nan  0.00234482         nan  0.01166351         nan         nan
  -0.00062643 -0.00071615         nan -0.00549717         nan         nan
          nan -0.00920619]
 [        nan         nan         nan         nan         nan  0.01289061
   0.001938           nan  0.00181828         nan         nan         nan
          nan         nan  0.00018252         nan  0.00100129         nan
   0.00364589 -0.00831395]
 [        nan         nan  0.00473294         nan -0.00340257         nan
   0.00233642         nan  0.00177261  0.0275181          nan         nan
          nan         nan  0.00023187         nan         nan  0.00068812
   0.00086137 -0.00354704]
 [        nan         nan  0.00358176         nan -0.00259521         nan
   0.0020782          nan  0.001289    0.09735592         nan         nan
          nan         nan  0.00023931         nan  0.00433267  0.00070348
   0.00084257 -0.00379307]
 [-0.11029971  0.00729653         nan -0.00557191         nan  0.00522723
   0.00373106  0.00806349         nan  0.00939851         nan         nan
          nan         nan  0.0001644  -0.01713572  0.0028187   0.00082645
   0.00108213 -0.00295336]]
-c:8: RuntimeWarning: invalid value encountered in sqrt

In [15]:
n = 1
chisqlist = zeros(n)
maxchisqlist = zeros(n)
globalz = zeros(n)
from numpy.random import normal as N
def randN(scale = 0):
    if scale ==0:
        return 0
    else:
        return N(scale = scale)
def add_noise(spectrum, sigma, orthogonal_modes):
    return spectrum + dot(
                          orthogonal_modes, 
                          array([randN(scale = sigma[j]) for j in arange(spectrum.size)])
                          )
for ii in arange(n):
    cloud = fit.sim.gauss_approx(
                                 observation = [spt.observation, wmap.observation],
                                 covariance = [spt.covariance, wmap.covariance],
                                 windows = [spt.windows, wmap.windows],
                                 deltaCl = lcdm.dcldphi,
                                 ellmax = 5000
                                 )
    cloud.get_bestfit()
    #cloud.best_fit = spt_bestfit[:5001]
    #print cloud.best_fit.shape
    #plot(cloud.best_fit)
    #variance, ortho_modes = eigh(spt.covariance[:3000, :3000])
    #sigma = sqrt(variance)
    #noisydraws = array(map(lambda x:add_noise(x, sigma, orthogonal_modes), draws.tolist()))

In [16]:
numsamples = 1000

draws = array([cloud.sample() for i in arange(numsamples)])

In [17]:
from numpy.random import normal
### Make fake WMAP experiments, using our biased posterior estimate
fake_wmap = dot(draws, wmap.windows.T)
##Diagonalize the wmap covariance matrix to add noise to each bin
variances, vecs = eigh(wmap.covariance)
for i, var in enumerate(variances):
    for j in arange(numsamples):
        fake_wmap[j,:] += normal(loc=0, scale = sqrt(var)) * vecs[:,i]

In [18]:
### Make fake SPT experiments, using our biased posterior estimate
fake_spt = dot(draws, spt.windows.T)
##Diagonalize the covariance matrix to add noise to each bin
variances, vecs = eigh(spt.covariance)
for i, var in enumerate(variances):
    for j in arange(numsamples):
        fake_spt[j,:] += normal(loc=0, scale = sqrt(var)) * vecs[:,i]
        #print vecs[:,i].shape

In [19]:
plot((wmap.observation-dot(cloud.best_fit,wmap.windows.T))[:600], alpha = 1, color = 'black');
plot(fake_wmap[::100,:600].T, alpha = 0.05, color = 'green');
plot(draws[::10,:600].T, alpha = 0.01, color = 'blue');

xlim(0,600);



In [20]:
rc('text', usetex=True)
ax2 = gca()
plot(spt.observation - dot(cloud.best_fit,spt.windows.T), alpha = 1, color = 'black', linewidth = 2, label = 'True bandpowers' );
p1 = plot(fake_spt[1,:], alpha = 1, color = 'green', label = 'simmed bandpowers');
p2 = plot(dot(draws[1,:], spt.windows.T).T, alpha = 1, color = 'blue', label = 'simmed skies');
handles, labels = ax2.get_legend_handles_labels()
figure(figsize = (11,8.5), dpi = 400)
ax = gca()
plot(spt_ells, (spt.observation - dot(cloud.best_fit,spt.windows.T)), alpha = 1, color = 'black', linewidth = 4);
#plot(wmap.lslice[:650], (wmap.observation-dot(cloud.best_fit,wmap.windows.T))[:650], alpha = 1, color = 'black', linewidth = 1);
for i in arange(numsamples/10):
    plot(spt_ells, fake_spt[10*i,:], alpha = 0.02, color = 'green');
    plot(spt_ells, dot(draws[10*i,:], spt.windows.T), alpha = 0.02, color = 'blue');
    #plot(wmap.lslice[:650], fake_wmap[10*i,:650].T, alpha = 0.01, color = 'green');
    #plot(wmap.lslice[:650], dot(draws[10*i,:].T, wmap.windows.T)[:650], alpha = 0.01, color = 'blue');
legend(handles, labels);
xlim(650,3000)
ylim(-200, 300)
xlabel('Multipole $l$', fontsize = 24)
ylabel(r'$C_l - \langle C_l \rangle$[\mu {\rm K}]^2$', fontsize = 24)

savefig('figures/simmed_experiments.png')



In [21]:
labels


Out[21]:
['True bandpowers', 'simmed bandpowers', 'simmed skies']

In [22]:
plot(draws[::1000,:].T);



In [23]:
binned_truth = dot(cloud.best_fit, spt.windows.T)
#plot(dot(cloud.best_fit[:5001] - spt_bestfit[:5001], spt.windows.T), color = 'red', linewidth = 2)
plot(binned_truth - spt.observation, color = 'black', linewidth = 2)
plot(fake_spt[::50,:].T, alpha = .2);



In [24]:
### Concatenate the spt and wmap experiments and fake data:
observation = []
observation.append((spt.observation - dot(cloud.best_fit, spt.windows.T)).tolist())
observation.append((wmap.observation- dot(cloud.best_fit, wmap.windows.T)).tolist())
observation = [item for sublist in observation for item in sublist]

In [25]:
fake_observations = zeros([numsamples, len(observation)])
no_noise_observations = zeros([numsamples, len(observation)])
for i in arange(numsamples):
    obs = []
    obs.append(fake_spt[i,:])
    obs.append(fake_wmap[i,:])
    obs = [item for sublist in obs for item in sublist]
    fake_observations[i,:] = obs
    obs = []
    obs.append(dot(draws[i,:], spt.windows.T))
    obs.append(dot(draws[i,:], wmap.windows.T))
    obs = [item for sublist in obs for item in sublist] 
    no_noise_observations[i,:] = obs

In [26]:
measured_dof = dot(observation, real(lda.modes))
cloud_dof = dot(fake_observations, real(lda.modes))

lcdm_dof = dot(no_noise_observations, real(lda.modes))

In [27]:
#reload(fit)
#globalchi2, global_zscore = fit.test.global_statistic(cloud_dof, measured_dof)
#maxchi2, max_location, max_zscore = fit.test.max_statistic(cloud_dof, measured_dof)

In [28]:
def distance_modulus(cloud_amps, observed_amps):

	covariance = cov(cloud_amps.T)
	means = mean(cloud_amps, axis = 0)

	try:
		distance_modulus = dot((observed_amps - means).T , dot(inv(covariance), (observed_amps - means)))
	except:
		distance_modulus = (observed_amps - means)**2/covariance
	return distance_modulus

In [29]:
def global_statistic(cloud_amps, observed_amps):
    numsamples, numparams = cloud_amps.shape
    cloud_distances = array([distance_modulus(cloud_amps, cloud_amps[i,:]) for i in arange(numsamples)])
    observed_distance = distance_modulus(cloud_amps, observed_amps)
    expectation = mean(cloud_distances)
    sigma = std(cloud_distances)
	#chi2 = (observed_distance-expectation)**2/sigma**2
	#expected_chi2 = subtract(cloud_distances, expectation)**2/sigma**2
	#zscore = (chi2-mean(expected_chi2))/std(expected_chi2)
    zscore = (observed_distance - expectation)/sigma
    return observed_distance, zscore, expectation

In [30]:
def max_statistic(cloud_amps, observed_amps):
    zscore = -1.0e-30
    numsamples, numparams = cloud_amps.shape
    for i in arange(1,numparams):
        cloud_distances = array([distance_modulus(cloud_amps[:,:i], cloud_amps[j, :i]) for j in arange(numsamples)])
        observed_distance = distance_modulus(cloud_amps[:,:i], observed_amps[:i])
        #newchi2 = (observed_distance - expectation)**2/sigma**2
        expectation = mean(cloud_distances)
        sigma = std(cloud_distances)
		#expected_chi2 = subtract(cloud_distances , expectation)**2/sigma**2
        newscore = (observed_distance - expectation)/sigma
        if abs(newscore) > abs(zscore):
            chi2 = observed_distance
            max_location = i
            zscore = newscore
    return observed_distance, max_location, zscore

In [31]:
x = global_statistic(cloud_dof, measured_dof)
y = max_statistic(cloud_dof, measured_dof)
print x, y


(12.059333906867932, -1.2288446616879831, 19.980000000000004) (11.611156825461988, 19, -1.1808390723996331)

In [32]:
from numpy import std
numdof = 10
figure(figsize = (11,8.5), dpi = 400)
subplots_adjust(wspace = 0, hspace = 0)
for i in arange(numdof):
    for j in arange(i+1):
        if j == i:
            ax = subplot(numdof, numdof, i + j*numdof + 1)
            stdev = std(cloud_dof[:,i])
            expected = mean(cloud_dof[:,i])
            bins = linspace(-5 * stdev+expected, 5*stdev+expected, 50)
            ax.hist(cloud_dof[:,i], bins, color = 'k')
            ax.plot([measured_dof[i], measured_dof[i]], [0, sqrt(numsamples)], color = 'red', linewidth = 2)
            ax.autoscale_view('tight')
            setp( ax.get_yticklabels(), visible=False)
            setp( ax.get_xticklabels(), visible=False)
#            for tick in ax.xaxis.get_major_ticks():
#                tick.label.set_fontsize(12) 
#                tick.label.set_rotation('vertical')


        else:
            ax=subplot(numdof,numdof, i+j*numdof+1)
            ax.scatter(cloud_dof[:,i], cloud_dof[:,j], s = 1, alpha = .2, linewidths = 0, color = 'blue')
      
            ax.scatter(lcdm_dof[:,i], lcdm_dof[:,j], s = 1, alpha = .2, linewidths = 0, color = 'k')

            ax.scatter(measured_dof[i], measured_dof[j], s = 10, color = 'red')
            setp( ax.get_xticklabels(), visible=False)
            setp( ax.get_yticklabels(), visible=False)
            ax.autoscale_view('tight')
            
            
savefig('figures/triangle_plot.png')



In [33]:
plot(lda.modes[:47,[6,16]])
figure()
semilogx(lda.modes[47:,[6,16]])


Out[33]:
[<matplotlib.lines.Line2D at 0x12468cc50>,
 <matplotlib.lines.Line2D at 0x122a296d0>]

In [32]:
spt_bestfit = np.load('spt_bestfit.npy')

In [33]:
plot(cloud.best_fit[:3000]- spt_bestfit[:3000])


Out[33]:
[<matplotlib.lines.Line2D at 0x120826e10>]

In [34]:
n = 1
chisqlist = zeros(n)
maxchisqlist = zeros(n)
globalz = zeros(n)
from numpy.random import normal as N
def randN(scale = 0):
    if scale ==0:
        return 0
    else:
        return N(scale = scale)
def add_noise(spectrum, sigma, orthogonal_modes):
    return spectrum + dot(
                          orthogonal_modes, 
                          array([randN(scale = sigma[j]) for j in arange(spectrum.size)])
                          )
for ii in arange(n):
    cloud = fit.sim.gauss_approx(
                                 observation = [spt.observation, wmap.observation],
                                 covariance = [spt.covariance, wmap.covariance],
                                 windows = [spt.windows, wmap.windows],
                                 deltaCl = lcdm.dcldphi,
                                 ellmax = 5000
                                 )
    #cloud.get_bestfit()
    cloud.best_fit = spt_bestfit[:5001]
    #print cloud.best_fit.shape
    #plot(cloud.best_fit)
    #variance, ortho_modes = eigh(spt.covariance[:3000, :3000])
    #sigma = sqrt(variance)
    #noisydraws = array(map(lambda x:add_noise(x, sigma, orthogonal_modes), draws.tolist()))

In [35]:
draws = array([cloud.sample() for i in arange(10000)])

In [36]:
from numpy.random import normal
### Make fake WMAP experiments, using our biased posterior estimate
fake_wmap = dot(draws, wmap.windows.T)
##Diagonalize the wmap covariance matrix to add noise to each bin
variances, vecs = eigh(wmap.covariance)
for i, var in enumerate(variances):
    for j in arange(10000):
        fake_wmap[j,:] += normal(loc=0, scale = sqrt(var)) * vecs[:,i]

In [37]:
### Make fake SPT experiments, using our biased posterior estimate
fake_spt = dot(draws, spt.windows.T)
##Diagonalize the covariance matrix to add noise to each bin
variances, vecs = eigh(spt.covariance)
for i, var in enumerate(variances):
    for j in arange(10000):
        fake_spt[j,:] += normal(loc=0, scale = sqrt(var)) * vecs[:,i]

In [38]:
plot((wmap.observation-dot(cloud.best_fit,wmap.windows.T))[:600], alpha = 1, color = 'black');
plot(draws[::10,:600].T, alpha = 0.01, color = 'blue');
plot(fake_wmap[::100,:600].T, alpha = 0.05, color = 'green');
xlim(0,600);



In [39]:
plot(spt.observation-dot(cloud.best_fit, spt.windows.T), alpha = 1, color = 'black', linewidth = 2);
plot(dot(draws[::10,:], spt.windows.T).T, alpha = 0.01, color = 'blue');
plot(fake_spt[::100,:].T, alpha = 0.1, color = 'green');



In [40]:
plot(draws[::1000,:3000].T);



In [41]:
### Concatenate the spt and wmap experiments and fake data:
observation = []
observation.append(spt.observation.tolist() - dot(cloud.best_fit, spt.windows.T.tolist()))
observation.append(wmap.observation.tolist() - dot(cloud.best_fit, wmap.windows.T.tolist()))
observation = [item for sublist in observation for item in sublist]

In [51]:
fake_observations = zeros([10000, len(observation)])
theories = zeros([10000, len(observation)])
for i in arange(10000):
    obs = []
    obs.append(fake_spt[i,:])# - dot(cloud.best_fit, spt.windows.T.tolist()))
    obs.append(fake_wmap[i,:])# - dot(cloud.best_fit, wmap.windows.T.tolist()))
    obs = [item for sublist in obs for item in sublist]
    fake_observations[i,:] = obs
    obs = []
    obs.append(dot(draws[i,:], spt.windows.T))# - dot(cloud.best_fit, spt.windows.T.tolist()))
    obs.append(dot(draws[i,:], wmap.windows.T))# - dot(cloud.best_fit, wmap.windows.T.tolist()))
    obs = [item for sublist in obs for item in sublist]
    theories[i,:] = obs

In [ ]:
measured_dof = dot(observation, real(lda.modes))
cloud_dof = dot(fake_observations, real(lda.modes))
theory_dof = dot(theories, real(lda.modes))

In [60]:
#junk, global_zscore = fit.test.global_statistic(cloud_dof, measured_dof)
#junk, max_location, max_zscore = fit.test.max_statistic(cloud_dof, measured_dof)

In [61]:
#print max_zscore
#print global_zscore
#print max_location

In [64]:
from numpy import std
numdof = 10
figure(figsize = (11,8.5), dpi = 400)
subplots_adjust(wspace = 0, hspace = 0)
for i in arange(numdof):
    for j in arange(i+1):
        if j == i:
            ax = subplot(numdof, numdof, i + j*numdof + 1)
            stdev = std(cloud_dof[:,i])
            expected = mean(cloud_dof[:,i])
            bins = linspace(-5 * stdev+expected, 5*stdev+expected, 50)
            ax.hist(cloud_dof[:,i], bins, color = 'blue')
            ax.plot([measured_dof[i], measured_dof[i]], [0, 500], color = 'red', linewidth = 1)
            ax.autoscale_view('tight')
            setp( ax.get_yticklabels(), visible=False)
            setp( ax.get_xticklabels(), visible=False)
#            for tick in ax.xaxis.get_major_ticks():
#                tick.label.set_fontsize(12) 
#                tick.label.set_rotation('vertical')


        else:
            ax=subplot(numdof,numdof, i+j*numdof+1)
            ax.scatter(cloud_dof[:,i], cloud_dof[:,j], s = 1, alpha = .2, linewidths = 0, color = 'blue')
            ax.scatter(theory_dof[i], theory_dof[j], s = 1, alpha = 1, linewidths = 0, color = 'k')
            ax.scatter(measured_dof[i], measured_dof[j], s = 10, color = 'red')
            setp( ax.get_xticklabels(), visible=False)
            setp( ax.get_yticklabels(), visible=False)
            ax.autoscale_view('tight')



In [ ]:
nrun = np.load('nrun_response.npy')

In [ ]:
nrun.shape
spt.windows.shape
lda.modes.shape

In [ ]:
nrun_bandpowers = dot(nrun, spt.windows.T[:3001,:])
nrun_amps = dot(nrun_bandpowers, lda.modes[:47,:])

In [ ]:
nrun_amps

In [ ]:
bandpowers_reconstructed = dot(nrun_amps, lda.modes[:47,:].T)

In [ ]:
plot(nrun_bandpowers)
plot(bandpowers_reconstructed)

In [ ]:
plot(lda.modes[:47,:]);

In [ ]:
dot(lda.modes[:,1], lda.modes[:,1])

In [ ]:


In [ ]:


In [34]:
std(lcdm_dof, axis = 0 )


Out[34]:
array([ 17.99769579,   1.70574858,   2.99619573,   4.52474941,
         0.38940233,   2.5932056 ,   3.61693782,   0.72261698,
         0.71149628,   3.93798463,   1.13231042,   0.2334967 ,
         0.24023705,   1.50022449,   0.48529011,   1.71144492,
         2.57069129,   0.56739173,   0.33251156,   1.22434713])

In [37]:
std(cloud_dof, axis = 0)
print dot(wmap.windows, lcdm.fiducial_cl).shape


(1199,)

In [38]:
np.savetxt('data/experiments/wmap/covariance.txt', wmap.covariance)
np.savetxt('data/experiments/wmap/bandpowers.txt', wmap.observation)
np.savetxt('data/experiments/wmap/windows.txt', wmap.windows)
np.savetxt('data/experiments/spt/windows.txt', spt.windows)

In [39]:
cd  data/experiments/wmap/


/Users/follin/projects/gitrepos/cmbfittest/data/experiments/wmap

In [40]:
ls


bandpowers.txt    data/             windows.txt
covariance.txt    make_wmap_cov.py

In [ ]: