Café du jeudi: exemple 7

132 days ago by thierry.chappuis

Sage peut interagir avec R pour faire des statistiques

Chaque copie de sage possède une copie de R, un logiciel de traitements statistiques open-source puissant et reconnu par la communauté mathématique. Il est possible d'utiliser R directement dans une cellule du Notebook: 

%r x <- c(1,3,5,6,4,9,9,1,1,6,7,8,4,5,5) 
       

Bon, je ne suis pas un statisticien et ne fait pas de la statistique de haut vol ici. On calcule la moyenne, la varience, etc, directement en utilisant R:

%r mean(x) 
       
[1] 4.933333
[1] 4.933333
%r var(x) 
       
[1] 7.209524
[1] 7.209524
%r summary(x) 
       
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   3.500   5.000   4.933   6.500   9.000 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   3.500   5.000   4.933   6.500   9.000 

On fait ci-dessous un test-T disant que la moyenne de la population est de 5: 

%r results = t.test(x, mu=5) results 
       
	One Sample t-test

data:  x 
t = -0.0962, df = 14, p-value = 0.9248
alternative hypothesis: true mean is not equal to 5 
95 percent confidence interval:
 3.446399 6.420268 
sample estimates:
mean of x 
 4.933333 
	One Sample t-test

data:  x 
t = -0.0962, df = 14, p-value = 0.9248
alternative hypothesis: true mean is not equal to 5 
95 percent confidence interval:
 3.446399 6.420268 
sample estimates:
mean of x 
 4.933333 
%r results['statistic'] 
       
$statistic
          t 
-0.09616147 
$statistic
          t 
-0.09616147 
%r results['p.value'] 
       
$p.value
[1] 0.9247553
$p.value
[1] 0.9247553

Intégrer R et Sage

Nous avons vu ci-dessus qu'il était possible d'utiliser l'interpréteur de R directement depuis une cellule de Sage. Il est également possible de faire interagir plus étroitement R et Sage:

x = r([1,3,5,6,4,9,9,1,1,6,7,8,4,5,5]) 
       
r.mean(x) 
       
[1] 4.933333
[1] 4.933333
x.var() 
       
[1] 7.209524
[1] 7.209524
r.summary(x) 
       
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   3.500   5.000   4.933   6.500   9.000 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   3.500   5.000   4.933   6.500   9.000 

On fait ci-dessous un test-T disant que la moyenne de la population est de 5: 

results = r.t_test(x, mu=5) results 
       
	One Sample t-test

data:  sage25 
t = -0.0962, df = 14, p-value = 0.9248
alternative hypothesis: true mean is not equal to 5 
95 percent confidence interval:
 3.446399 6.420268 
sample estimates:
mean of x 
 4.933333 
	One Sample t-test

data:  sage25 
t = -0.0962, df = 14, p-value = 0.9248
alternative hypothesis: true mean is not equal to 5 
95 percent confidence interval:
 3.446399 6.420268 
sample estimates:
mean of x 
 4.933333 

On peut convertir le résultat du test en une structure de données Python (un dictionnaire) pour en explorer l'infornation de manière plus flexible:

la variable testresult est maintenant un dictionnaire Python qu'il est possible d'utiliser comme n'importe quelle structure de donnée de ce langage.

testresult = results._sage_() testresult 
       
{'_r_class': 'htest', '_Names': ['statistic', 'parameter', 'p.value',
'conf.int', 'estimate', 'null.value', 'alternative', 'method',
'data.name'], 'DATA': {'p_value': 0.92475529872458795, 'alternative':
'two.sided', 'data_name': 'sage25', 'null_value': {'_Names': 'mean',
'DATA': 5}, 'conf_int': {'conf_level': 0.94999999999999996, 'DATA':
[3.4463990798025899, 6.4202675868640702]}, 'statistic': {'_Names': 't',
'DATA': -0.096161467028551301}, 'estimate': {'_Names': 'mean of x',
'DATA': 4.93333333333333}, 'parameter': {'_Names': 'df', 'DATA': 14},
'method': 'One Sample t-test'}}
{'_r_class': 'htest', '_Names': ['statistic', 'parameter', 'p.value', 'conf.int', 'estimate', 'null.value', 'alternative', 'method', 'data.name'], 'DATA': {'p_value': 0.92475529872458795, 'alternative': 'two.sided', 'data_name': 'sage25', 'null_value': {'_Names': 'mean', 'DATA': 5}, 'conf_int': {'conf_level': 0.94999999999999996, 'DATA': [3.4463990798025899, 6.4202675868640702]}, 'statistic': {'_Names': 't', 'DATA': -0.096161467028551301}, 'estimate': {'_Names': 'mean of x', 'DATA': 4.93333333333333}, 'parameter': {'_Names': 'df', 'DATA': 14}, 'method': 'One Sample t-test'}}
print 'p-value is: ', testresult['DATA']['p_value'] print 'Statistic: %s = %s' % (testresult['DATA']['statistic']['_Names'], testresult['DATA']['statistic']['DATA']) print '%s%% C.I.: %s' % (round(100*testresult['DATA']['conf_int']['conf_level']),testresult['DATA']['conf_int']['DATA']) 
       
p-value is:  0.924755298725
Statistic:   t = -0.0961614670286
95.0% C.I.:  [3.4463990798025899, 6.4202675868640702]
p-value is:  0.924755298725
Statistic:   t = -0.0961614670286
95.0% C.I.:  [3.4463990798025899, 6.4202675868640702]

Il est possible d'utiliser R pour la simulation et Python pour reste:

En R, rnorm(200, 5, 2) retourne un vecteur de 200 valeurs tirées d'une distribution gaussienne de moyenne 5 et d'écart-type 2.

r_norm = r.rnorm(200, 5, 2) r_norm 
       
  [1]  2.932860130850042  7.019686630221097 -1.255683824281048 
1.284682617292919  4.687406533398461
  [6]  4.332701977430219  6.751191342748030  7.121697101716489 
5.926438605074823  6.334666794362983
 [11]  4.635204545604861  4.776158262740585  9.773172896202670 
6.206230354875271  5.524138794796816
 [16]  1.993938158183552  4.484702257245935  7.071366381243096 
3.619284759614675  8.077753304874742
 [21]  6.218972984020207  5.247320252027164  2.516019119684823 
4.033597052001843  4.958893571987001
 [26]  3.403126682206814  5.655490158917621  7.271838898286782 
3.765106457817799  5.451735091594872
 [31]  4.176481608503499  7.877050770942954  2.307803569500903 
7.569826944999753 10.223064206614417
 [36]  4.901327685507820  1.935225870705978  3.283511904922625 
8.360971478418904  3.976855878787579
 [41]  5.521794389631239  4.581571444603891  4.467008550497113 
4.778494557810026  7.692700581136485
 [46]  5.594038459986956  4.519053718942827  5.832301491611340 
5.731401564383916  4.967714648649425
 [51]  1.811666211753191  7.904763247132804  5.693298633222565 
2.768379816491648  8.478469517126006
 [56]  8.072145718690999  7.630006618541160  4.429098915431492 
6.163584011128266  5.380622971635888
 [61]  7.100721326806628  4.966086824247173  8.130760593831180 
4.815648504831355  1.416877381503559
 [66]  1.513040533976527  6.125241602775927  5.612790766660552 
3.558414126656045  9.511485767492793
 [71]  5.851324157742610  5.548342694056521  5.134226798241416 
5.266050559599313  4.777542568985157
 [76]  6.022256387936848  7.154804013798771  4.140771445791568 
4.067403256376745  4.328932794482435
 [81]  1.823695047721291  8.064729826025323  4.055429211775283 
5.236005540210176  3.471364825012341
 [86]  6.457393789264209  5.494824775152410  5.381001231764175 
5.130996327173515  7.639242191276614
 [91] 10.468845614687545  2.375220080031704  4.673200549235761 
8.753786085379827  5.087739130539235
 [96]  6.062131594853822  5.080768895902694  1.974211096686897 
3.756011504462642  3.493085036373910
[101]  4.743451506993039  5.706417100711520  7.387707487817293 
6.839882171968608  6.362991001974821
[106]  4.090167877166839  5.692063290995042  6.639155776705820 
4.767580327585668  1.662674019718402
[111]  5.068210944505697  7.521537181860581  1.915789731760151 
2.831255966622024  6.586507291395144
[116]  3.604936102650397  4.640749546432859  7.029542313314467 
5.580951812457584  7.364958194718141
[121]  4.612703264794814  5.411059149403209  2.181587108537966 
4.002556772307646  3.071879648808284
[126]  8.058382122859093  5.606853605478570  5.699699081021991 
4.887637035308696  7.031255412229200
[131]  5.428258790807652  5.858763520186419  4.250640895750221 
0.648944394495954  5.159199420369405
[136]  3.447743920927558  7.677861778304395  7.101381926107556 
1.820231162733710  5.430085092929261
[141]  3.341601603761124  5.429044915448719  9.281791436631117 
6.352536931571318  5.342454436616697
[146]  2.739368600097829  3.559195797131109  2.256956048268007 
1.527824244197628  5.782138357492101
[151]  8.736381337621978  3.968425946949193  3.917634206736804 
6.117988411933440  4.286253894093873
[156]  5.204720547740065  3.064516806581130  4.748036574912142 
6.934419375508805  6.966185036662761
[161]  5.946017440217970  4.976883109005738  5.783788335010193 
5.706222430681183  3.513150539961214
[166]  7.343510303916510  2.689026331281138  6.823415881985600 
4.267755832702060  8.376560923943423
[171]  7.948308133473203  3.004540163354743  2.933666812774234 
7.543954036235458  4.955392781847880
[176]  4.307077576940843  5.507427923278904  4.804893580967775 
5.779556518636309  6.465924338187170
[181]  7.910016166193128  8.749501642241245  9.126545434210815 
3.237828819836731  3.572230427006931
[186]  5.663311542622086  5.186940952932177  5.583700151939425 
7.188544347397083  3.580407511612389
[191]  3.629980964356285  3.034240838345398  4.680429657849403 
3.303505437948030  6.591872452393569
[196]  7.500828912379446  7.046754679519861  6.350760130949962 
3.762547820866622  5.413958248299800
  [1]  2.932860130850042  7.019686630221097 -1.255683824281048  1.284682617292919  4.687406533398461
  [6]  4.332701977430219  6.751191342748030  7.121697101716489  5.926438605074823  6.334666794362983
 [11]  4.635204545604861  4.776158262740585  9.773172896202670  6.206230354875271  5.524138794796816
 [16]  1.993938158183552  4.484702257245935  7.071366381243096  3.619284759614675  8.077753304874742
 [21]  6.218972984020207  5.247320252027164  2.516019119684823  4.033597052001843  4.958893571987001
 [26]  3.403126682206814  5.655490158917621  7.271838898286782  3.765106457817799  5.451735091594872
 [31]  4.176481608503499  7.877050770942954  2.307803569500903  7.569826944999753 10.223064206614417
 [36]  4.901327685507820  1.935225870705978  3.283511904922625  8.360971478418904  3.976855878787579
 [41]  5.521794389631239  4.581571444603891  4.467008550497113  4.778494557810026  7.692700581136485
 [46]  5.594038459986956  4.519053718942827  5.832301491611340  5.731401564383916  4.967714648649425
 [51]  1.811666211753191  7.904763247132804  5.693298633222565  2.768379816491648  8.478469517126006
 [56]  8.072145718690999  7.630006618541160  4.429098915431492  6.163584011128266  5.380622971635888
 [61]  7.100721326806628  4.966086824247173  8.130760593831180  4.815648504831355  1.416877381503559
 [66]  1.513040533976527  6.125241602775927  5.612790766660552  3.558414126656045  9.511485767492793
 [71]  5.851324157742610  5.548342694056521  5.134226798241416  5.266050559599313  4.777542568985157
 [76]  6.022256387936848  7.154804013798771  4.140771445791568  4.067403256376745  4.328932794482435
 [81]  1.823695047721291  8.064729826025323  4.055429211775283  5.236005540210176  3.471364825012341
 [86]  6.457393789264209  5.494824775152410  5.381001231764175  5.130996327173515  7.639242191276614
 [91] 10.468845614687545  2.375220080031704  4.673200549235761  8.753786085379827  5.087739130539235
 [96]  6.062131594853822  5.080768895902694  1.974211096686897  3.756011504462642  3.493085036373910
[101]  4.743451506993039  5.706417100711520  7.387707487817293  6.839882171968608  6.362991001974821
[106]  4.090167877166839  5.692063290995042  6.639155776705820  4.767580327585668  1.662674019718402
[111]  5.068210944505697  7.521537181860581  1.915789731760151  2.831255966622024  6.586507291395144
[116]  3.604936102650397  4.640749546432859  7.029542313314467  5.580951812457584  7.364958194718141
[121]  4.612703264794814  5.411059149403209  2.181587108537966  4.002556772307646  3.071879648808284
[126]  8.058382122859093  5.606853605478570  5.699699081021991  4.887637035308696  7.031255412229200
[131]  5.428258790807652  5.858763520186419  4.250640895750221  0.648944394495954  5.159199420369405
[136]  3.447743920927558  7.677861778304395  7.101381926107556  1.820231162733710  5.430085092929261
[141]  3.341601603761124  5.429044915448719  9.281791436631117  6.352536931571318  5.342454436616697
[146]  2.739368600097829  3.559195797131109  2.256956048268007  1.527824244197628  5.782138357492101
[151]  8.736381337621978  3.968425946949193  3.917634206736804  6.117988411933440  4.286253894093873
[156]  5.204720547740065  3.064516806581130  4.748036574912142  6.934419375508805  6.966185036662761
[161]  5.946017440217970  4.976883109005738  5.783788335010193  5.706222430681183  3.513150539961214
[166]  7.343510303916510  2.689026331281138  6.823415881985600  4.267755832702060  8.376560923943423
[171]  7.948308133473203  3.004540163354743  2.933666812774234  7.543954036235458  4.955392781847880
[176]  4.307077576940843  5.507427923278904  4.804893580967775  5.779556518636309  6.465924338187170
[181]  7.910016166193128  8.749501642241245  9.126545434210815  3.237828819836731  3.572230427006931
[186]  5.663311542622086  5.186940952932177  5.583700151939425  7.188544347397083  3.580407511612389
[191]  3.629980964356285  3.034240838345398  4.680429657849403  3.303505437948030  6.591872452393569
[196]  7.500828912379446  7.046754679519861  6.350760130949962  3.762547820866622  5.413958248299800
r_norm.summary() 
       
          Min.        1st Qu.         Median           Mean        3rd
Qu.           Max. 
-1.25568382428  3.97474839583  5.25668540581  5.24372022367 
6.58784858164 10.46884561470 
          Min.        1st Qu.         Median           Mean        3rd Qu.           Max. 
-1.25568382428  3.97474839583  5.25668540581  5.24372022367  6.58784858164 10.46884561470 

Il est possible de récupérer les nombres aléatoires générés dans une structure de données python et, par exemple, de les trier avec les outils python prévus pour trier une liste

sage_norm = sorted(r_norm._sage_()) sage_norm 
       
[-1.25568382428105, 0.64894439449595398, 1.28468261729292,
1.41687738150356, 1.51304053397653, 1.52782424419763, 1.6626740197184,
1.8116662117531901, 1.82023116273371, 1.8236950477212901,
1.91578973176015, 1.93522587070598, 1.9742110966869, 1.99393815818355,
2.1815871085379701, 2.2569560482680102, 2.3078035695009,
2.3752200800317, 2.5160191196848198, 2.68902633128114,
2.7393686000978299, 2.7683798164916502, 2.8312559666220198,
2.9328601308500399, 2.9336668127742298, 3.0045401633547399,
3.0342408383453998, 3.0645168065811301, 3.07187964880828,
3.23782881983673, 3.2835119049226198, 3.3035054379480302,
3.34160160376112, 3.40312668220681, 3.44774392092756,
3.4713648250123401, 3.4930850363739099, 3.51315053996121,
3.5584141266560398, 3.5591957971311099, 3.5722304270069301,
3.5804075116123899, 3.6049361026504001, 3.6192847596146702,
3.6299809643562901, 3.7560115044626401, 3.7625478208666201,
3.7651064578178, 3.9176342067368002, 3.96842594694919,
3.9768558787875801, 4.0025567723076501, 4.0335970520018396,
4.0554292117752802, 4.0674032563767497, 4.0901678771668397,
4.1407714457915699, 4.1764816085034999, 4.2506408957502204,
4.2677558327020604, 4.2862538940938704, 4.3070775769408396,
4.3289327944824301, 4.3327019774302196, 4.4290989154314904,
4.46700855049711, 4.4847022572459396, 4.5190537189428301,
4.58157144460389, 4.6127032647948099, 4.6352045456048598,
4.6407495464328603, 4.6732005492357596, 4.6804296578494,
4.6874065333984598, 4.7434515069930399, 4.74803657491214,
4.7675803275856703, 4.7761582627405801, 4.7775425689851598,
4.7784945578100304, 4.8048935809677804, 4.8156485048313504,
4.8876370353086998, 4.9013276855078196, 4.9553927818478796,
4.9588935719869998, 4.9660868242471699, 4.9677146486494204,
4.9768831090057404, 5.0682109445057, 5.0807688959026898,
5.0877391305392301, 5.1309963271735102, 5.1342267982414196,
5.1591994203693998, 5.1869409529321802, 5.2047205477400604,
5.2360055402101802, 5.2473202520271602, 5.2660505595993099,
5.3424544366167002, 5.3806229716358898, 5.3810012317641798,
5.4110591494032096, 5.4139582482998003, 5.4282587908076501,
5.4290449154487197, 5.4300850929292599, 5.4517350915948697,
5.4948247751524102, 5.5074279232789003, 5.52179438963124,
5.5241387947968201, 5.5483426940565197, 5.5809518124575801,
5.5837001519394196, 5.5940384599869599, 5.6068536054785696,
5.6127907666605497, 5.6554901589176199, 5.6633115426220897,
5.6920632909950397, 5.6932986332225699, 5.6996990810219899,
5.70622243068118, 5.7064171007115201, 5.73140156438392,
5.7795565186363103, 5.7821383574920997, 5.7837883350102004,
5.8323014916113403, 5.8513241577426101, 5.8587635201864199,
5.9264386050748197, 5.94601744021797, 6.0222563879368503,
6.0621315948538204, 6.1179884119334398, 6.1252416027759304,
6.16358401112827, 6.2062303548752702, 6.2189729840202101,
6.3346667943629802, 6.3507601309499604, 6.3525369315713203,
6.3629910019748204, 6.4573937892642101, 6.4659243381871701,
6.5865072913951401, 6.5918724523935701, 6.6391557767058202,
6.7511913427480303, 6.8234158819855999, 6.8398821719686103,
6.9344193755088002, 6.9661850366627602, 7.0196866302211003,
7.0295423133144697, 7.0312554122291999, 7.0467546795198599,
7.0713663812430996, 7.1007213268066298, 7.1013819261075604,
7.1216971017164896, 7.1548040137987696, 7.1885443473970803,
7.2718388982867799, 7.3435103039165099, 7.3649581947181399,
7.3877074878173001, 7.5008289123794496, 7.5215371818605803,
7.5439540362354602, 7.5698269449997504, 7.6300066185411604,
7.63924219127661, 7.6778617783043996, 7.6927005811364904,
7.87705077094295, 7.9047632471328004, 7.9100161661931301,
7.9483081334732004, 8.0583821228591006, 8.0647298260253208,
8.0721457186910008, 8.0777533048747401, 8.1307605938311802,
8.3609714784189002, 8.3765609239434191, 8.4784695171259994,
8.7363813376219799, 8.7495016422412508, 8.7537860853798293,
9.1265454342108097, 9.2817914366311207, 9.5114857674928004,
9.77317289620267, 10.223064206614399, 10.468845614687501]
[-1.25568382428105, 0.64894439449595398, 1.28468261729292, 1.41687738150356, 1.51304053397653, 1.52782424419763, 1.6626740197184, 1.8116662117531901, 1.82023116273371, 1.8236950477212901, 1.91578973176015, 1.93522587070598, 1.9742110966869, 1.99393815818355, 2.1815871085379701, 2.2569560482680102, 2.3078035695009, 2.3752200800317, 2.5160191196848198, 2.68902633128114, 2.7393686000978299, 2.7683798164916502, 2.8312559666220198, 2.9328601308500399, 2.9336668127742298, 3.0045401633547399, 3.0342408383453998, 3.0645168065811301, 3.07187964880828, 3.23782881983673, 3.2835119049226198, 3.3035054379480302, 3.34160160376112, 3.40312668220681, 3.44774392092756, 3.4713648250123401, 3.4930850363739099, 3.51315053996121, 3.5584141266560398, 3.5591957971311099, 3.5722304270069301, 3.5804075116123899, 3.6049361026504001, 3.6192847596146702, 3.6299809643562901, 3.7560115044626401, 3.7625478208666201, 3.7651064578178, 3.9176342067368002, 3.96842594694919, 3.9768558787875801, 4.0025567723076501, 4.0335970520018396, 4.0554292117752802, 4.0674032563767497, 4.0901678771668397, 4.1407714457915699, 4.1764816085034999, 4.2506408957502204, 4.2677558327020604, 4.2862538940938704, 4.3070775769408396, 4.3289327944824301, 4.3327019774302196, 4.4290989154314904, 4.46700855049711, 4.4847022572459396, 4.5190537189428301, 4.58157144460389, 4.6127032647948099, 4.6352045456048598, 4.6407495464328603, 4.6732005492357596, 4.6804296578494, 4.6874065333984598, 4.7434515069930399, 4.74803657491214, 4.7675803275856703, 4.7761582627405801, 4.7775425689851598, 4.7784945578100304, 4.8048935809677804, 4.8156485048313504, 4.8876370353086998, 4.9013276855078196, 4.9553927818478796, 4.9588935719869998, 4.9660868242471699, 4.9677146486494204, 4.9768831090057404, 5.0682109445057, 5.0807688959026898, 5.0877391305392301, 5.1309963271735102, 5.1342267982414196, 5.1591994203693998, 5.1869409529321802, 5.2047205477400604, 5.2360055402101802, 5.2473202520271602, 5.2660505595993099, 5.3424544366167002, 5.3806229716358898, 5.3810012317641798, 5.4110591494032096, 5.4139582482998003, 5.4282587908076501, 5.4290449154487197, 5.4300850929292599, 5.4517350915948697, 5.4948247751524102, 5.5074279232789003, 5.52179438963124, 5.5241387947968201, 5.5483426940565197, 5.5809518124575801, 5.5837001519394196, 5.5940384599869599, 5.6068536054785696, 5.6127907666605497, 5.6554901589176199, 5.6633115426220897, 5.6920632909950397, 5.6932986332225699, 5.6996990810219899, 5.70622243068118, 5.7064171007115201, 5.73140156438392, 5.7795565186363103, 5.7821383574920997, 5.7837883350102004, 5.8323014916113403, 5.8513241577426101, 5.8587635201864199, 5.9264386050748197, 5.94601744021797, 6.0222563879368503, 6.0621315948538204, 6.1179884119334398, 6.1252416027759304, 6.16358401112827, 6.2062303548752702, 6.2189729840202101, 6.3346667943629802, 6.3507601309499604, 6.3525369315713203, 6.3629910019748204, 6.4573937892642101, 6.4659243381871701, 6.5865072913951401, 6.5918724523935701, 6.6391557767058202, 6.7511913427480303, 6.8234158819855999, 6.8398821719686103, 6.9344193755088002, 6.9661850366627602, 7.0196866302211003, 7.0295423133144697, 7.0312554122291999, 7.0467546795198599, 7.0713663812430996, 7.1007213268066298, 7.1013819261075604, 7.1216971017164896, 7.1548040137987696, 7.1885443473970803, 7.2718388982867799, 7.3435103039165099, 7.3649581947181399, 7.3877074878173001, 7.5008289123794496, 7.5215371818605803, 7.5439540362354602, 7.5698269449997504, 7.6300066185411604, 7.63924219127661, 7.6778617783043996, 7.6927005811364904, 7.87705077094295, 7.9047632471328004, 7.9100161661931301, 7.9483081334732004, 8.0583821228591006, 8.0647298260253208, 8.0721457186910008, 8.0777533048747401, 8.1307605938311802, 8.3609714784189002, 8.3765609239434191, 8.4784695171259994, 8.7363813376219799, 8.7495016422412508, 8.7537860853798293, 9.1265454342108097, 9.2817914366311207, 9.5114857674928004, 9.77317289620267, 10.223064206614399, 10.468845614687501]

On peut ensuite utiliser les possibilités de visualisation de Sage:

list_plot(sage_norm, xmin=-2)