GA Vibes Part 2

 As a final exercise for the change point Genetic Algorithm (GA), I'll apply it to global temperature anomaly data from climate.gov.


I applied the GA to this data.


$ python src/ga_cp_bic.py /mnt/c/Users/bbth/OneDrive/analytic_garden/GA/data/Temperature_1880_2024.csv -R 5 -m 7

Num Breakpoints: 0
Restart: 1 MSE: 0.10286155700349382 BIC: -319.83037125244255
Restart: 2 MSE: 0.10780974084485254 BIC: -313.01768583106514
Restart: 3 MSE: 0.08734095963729796 BIC: -343.5472153386782
Restart: 4 MSE: 0.10132137776725991 BIC: -322.0179216010041
Restart: 5 MSE: 0.10279682698913807 BIC: -319.9216473989269

Train MSE: 0.08734095963729796
Random number seed: 1757604284
Breaks: []
Slopes: [0.00282703]
Initial slope: -5.444485953515934
BIC: -343.5472153386782

Num Breakpoints: 1
Restart: 1 MSE: 0.017966374806006904 BIC: -562.8847985227927
Restart: 2 MSE: 0.02173895666295018 BIC: -535.2472265839913
Restart: 3 MSE: 0.019616340777016433 BIC: -550.1449553421734
Restart: 4 MSE: 0.019261114065503186 BIC: -552.7947844964565
Restart: 5 MSE: 0.01750368343862006 BIC: -566.6679360394593

Train MSE: 0.01750368343862006
Random number seed: 1757604284
Breaks: [1964.67750704]
Slopes: [0.00082202 0.01918589]
Initial slope: -1.757743468295864
BIC: -566.6679360394593

Num Breakpoints: 2
Restart: 1 MSE: 0.012558768692663756 BIC: -604.853340277318
Restart: 2 MSE: 0.01243195194604011 BIC: -606.3249733982208
Restart: 3 MSE: 0.012256993676719138 BIC: -608.3800934600993
Restart: 4 MSE: 0.012404091892174283 BIC: -606.6502836232555
Restart: 5 MSE: 0.012360294729070118 BIC: -607.1631649126923

Train MSE: 0.012256993676719138
Random number seed: 1757604284
Breaks: [1910.99769156 1978.23065214]
Slopes: [-0.00083913  0.00547718  0.02034855]
Initial slope: 1.3201818192165882
BIC: -608.3800934600993

Num Breakpoints: 3
Restart: 1 MSE: 0.012045151521528737 BIC: -600.9546242498568
Restart: 2 MSE: 0.012163941059597838 BIC: -599.531636485958
Restart: 3 MSE: 0.011603136914732033 BIC: -606.3757001535032
Restart: 4 MSE: 0.01190177761619636 BIC: -602.6909190843479
Restart: 5 MSE: 0.011670814364981009 BIC: -605.5324176504653

Train MSE: 0.011603136914732033
Random number seed: 1757604284
Breaks: [1911.64976897 1975.72513814 2011.81844148]
Slopes: [-0.00048812  0.00554298  0.01736572  0.03586234]
Initial slope: 0.6524353229392093
BIC: -606.3757001535032

Num Breakpoints: 4
Restart: 1 MSE: 0.011243692142443392 BIC: -600.985123450339
Restart: 2 MSE: 0.010865804227730874 BIC: -605.9421865319424
Restart: 3 MSE: 0.012045515153927539 BIC: -590.996779410205
Restart: 4 MSE: 0.010284096448293435 BIC: -613.9203711913805
Restart: 5 MSE: 0.010369721033699245 BIC: -612.7181105416433

Train MSE: 0.010284096448293435
Random number seed: 1757604284
Breaks: [1919.53490314 1938.10421616 1972.5892532  2021.97580519]
Slopes: [1.30486670e-05 1.31599883e-02 9.79989807e-04 1.94837933e-02
 1.52292353e-01]
Initial slope: -0.31905209887440406
BIC: -613.9203711913805

Num Breakpoints: 5
Restart: 1 MSE: 0.010563575952060386 BIC: -600.0789918903789
Restart: 2 MSE: 0.01090483758234514 BIC: -595.4687672208581
Restart: 3 MSE: 0.012853939170602405 BIC: -571.6244149255311
Restart: 4 MSE: 0.011618067543810444 BIC: -586.2823027185707
Restart: 5 MSE: 0.013196558413601666 BIC: -567.8100804868834

Train MSE: 0.010563575952060386
Random number seed: 1757604284
Breaks: [1898.04502854 1909.02150721 1911.94399846 1939.8396544  1976.88305957]
Slopes: [-0.00011573 -0.00953683  0.00783257  0.00878155  0.00372577  0.02041029]
Initial slope: -0.027933942052242734
BIC: -600.0789918903789

Num Breakpoints: 6
Restart: 1 MSE: 0.019633770680921862 BIC: -500.2488368195941
Restart: 2 MSE: 0.011184138493904447 BIC: -581.8482406068417
Restart: 3 MSE: 0.010112379981382221 BIC: -596.454983032689
Restart: 4 MSE: 0.012608653893720186 BIC: -564.4646507590862
Restart: 5 MSE: 0.011814209204126873 BIC: -573.9013114106497

Train MSE: 0.010112379981382221
Random number seed: 1757604284
Breaks: [1917.28923842 1926.43721336 1941.79939384 1950.4680748  1972.97878809
 2020.78135042]
Slopes: [-0.00037242  0.0045773   0.02257268 -0.0176755   0.00322486  0.02033635
  0.07903338]
Initial slope: 0.38934946340024545
BIC: -596.454983032689

Num Breakpoints: 7
Restart: 1 MSE: 0.018475132314107433 BIC: -499.11505942658897
Restart: 2 MSE: 0.010834309939876826 BIC: -576.5026735630659
Restart: 3 MSE: 0.013694116102149087 BIC: -542.5366680207851
Restart: 4 MSE: 0.009965352036705595 BIC: -588.6252049219258
Restart: 5 MSE: 0.011517972724760742 BIC: -567.630019724583

Train MSE: 0.009965352036705595
Random number seed: 1757604284
Breaks: [1898.87137158 1911.03762661 1936.98854563 1942.96865935 1966.4471147
 1986.32893246 2018.65593223]
Slopes: [-4.00679079e-04 -1.34579498e-02  1.21892843e-02  1.03684266e-02
  4.70006514e-05  8.84254578e-03  2.27507740e-02  4.16041057e-02]
Initial slope: 0.5241383104699019
BIC: -588.6252049219258

====================================
Best Model
Train MSE: 0.010284096448293435
Random number seed: 1757604284
Breaks: [1919.53490314 1938.10421616 1972.5892532  2021.97580519]
Slopes: [1.30486670e-05 1.31599883e-02 9.79989807e-04 1.94837933e-02
 1.52292353e-01]
Initial slope: -0.31905209887440406
BIC: -613.9203711913805
$

The predicted change points match the changes in the global temperature anomaly reasonably well.


The code and data for the GA can be found on GitHub.

Comments

Popular posts from this blog

Julia and the Blockchain

Filter Reads in Bam Files

School Shootings Are Political Violence