Gaussianprocess.gif(667 × 292 píxels, mida del fitxer: 961 Ko, tipus MIME: image/gif, en bucle, 49 fotogrames, 4,9 s)

Descripció a Commons

Resum

Descripció
English: If you have some data and instead of fitting a model you want to estimate the reasonable shapes any smooth enough function compatible with them can take, you can look at the envelope of the random walks passing through the data.
Data
Font https://twitter.com/j_bertolotti/status/1249341481057468417
Autor Jacopo Bertolotti
Permís
(Com reutilitzar aquest fitxer)
https://twitter.com/j_bertolotti/status/1030470604418428929

Mathematica 12.0 code

data = {0 -> 0, 50 -> 3, 100 -> 10, 150 -> 5};
p = Predict[data, Method -> {"GaussianProcess", "CovarianceType" -> "SquaredExponential"}];
rw = Accumulate /@ 
   RandomVariate[NormalDistribution[0, 0.5], {1000, 50}];
pos1 = Flatten[Position[rw[[All, -2]], # ] & /@ Select[rw[[All, -2]], Abs[# - 3] < 1 &] ];
pos2 = Flatten[Position[rw[[All, -2]], # ] & /@ Select[rw[[All, -2]], Abs[# - 7] < 1 &] ];
pos3 = Flatten[Position[rw[[All, -2]], # ] & /@ Select[rw[[All, -2]], Abs[# + 5] < 1 &] ];
n = Dimensions[pos2][[1]]
p0 = Table[
   Legended[Show[ListPlot[rw[[pos1]][[1 ;; n, 1 ;; Max[3, t] ]], Joined -> True, PlotStyle -> Directive[Black, Opacity[0.2]], DataRange -> {0.9, Max[3, t]} ]
     ,
     ListPlot[List @@@ data, PlotStyle -> Directive[Purple, PointSize[0.03]] ]
     , PlotRange -> {{0, 160}, {-10, 20}}
     ]
    , Column[{LineLegend[{Purple}, {"Prediction"}], LineLegend[{Orange}, {"Credible Interval"}], PointLegend[{Purple}, {"Data"}]}]
    ]
   , {t, 0, 50, 5}];
p1 = Table[
   Legended[Show[ListPlot[rw[[pos1]][[1 ;; n ]], Joined -> True, PlotStyle -> Directive[Black, Opacity[0.2]], DataRange -> {0.9, 50} ]
     ,
     ListPlot[rw[[pos2]][[All, 1 ;; Max[3, t]]] + 3, Joined -> True, PlotStyle -> Directive[Black, Opacity[0.2]], DataRange -> {51, 51 + Max[3, t]} ]
     ,
     ListPlot[List @@@ data, PlotStyle -> Directive[Purple, PointSize[0.03]] ], PlotRange -> {{0, 160}, {-10, 20}}
     ]
    , Column[{LineLegend[{Purple}, {"Prediction"}], LineLegend[{Orange}, {"Credible Interval"}], PointLegend[{Purple}, {"Data"}]}]
    ]
   , {t, 0, 50, 5}];
p2 = Table[
   Legended[Show[
     ListPlot[rw[[pos1]][[1 ;; n ]], Joined -> True, PlotStyle -> Directive[Black, Opacity[0.2]], DataRange -> {0.9, 50} ]
     ,
     ListPlot[rw[[pos2]] + 3, Joined -> True, PlotStyle -> Directive[Black, Opacity[0.2]], DataRange -> {51, 100} ]
     ,
     ListPlot[rw[[pos3]][[1 ;; n, 1 ;; Max[3, t]]] + 10, Joined -> True, PlotStyle -> Directive[Black, Opacity[0.2]], DataRange -> {101, 101 + Max[3, t]} ]
     ,
     ListPlot[List @@@ data, PlotStyle -> Directive[Purple, PointSize[0.03]] ], PlotRange -> {{0, 160}, {-10, 20}}
     ]
    , Column[{LineLegend[{Purple}, {"Prediction"}], LineLegend[{Orange}, {"Credible Interval"}], PointLegend[{Purple}, {"Data"}]}]
    ]
   , {t, 0, 50, 5}];
p3 = Table[
   Legended[Show[
     ListPlot[rw[[pos1]][[1 ;; 35 ]], Joined -> True, PlotStyle -> Directive[Black, Opacity[0.2]], DataRange -> {0.9, 50} ]
     ,
     ListPlot[rw[[pos2]] + 3, Joined -> True, PlotStyle -> Directive[Black, Opacity[0.2]], DataRange -> {51, 100} ]
     ,
     ListPlot[rw[[pos3]][[1 ;; 35]] + 10, Joined -> True, PlotStyle -> Directive[Black, Opacity[0.2]], DataRange -> {101, 150} ]
     ,
     Plot[{p[x], p[x] + StandardDeviation[p[x, "Distribution"]], p[x] - StandardDeviation[p[x, "Distribution"]]}, {x, -1, 150}, PlotStyle -> {Directive[Purple, Opacity[t]], Directive[Orange, Opacity[t]], Directive[Orange, Opacity[t]]}, Filling -> {2 -> {3}}, FillingStyle -> Opacity[t/3], Exclusions -> False, PerformanceGoal -> "Speed"]
     ,
     ListPlot[List @@@ data, PlotStyle -> Directive[Purple, PointSize[0.03]] ], PlotRange -> {{0, 160}, {-10, 20}}
     ]
    , Column[{LineLegend[{Purple}, {"Prediction"}], LineLegend[{Orange}, {"Credible Interval"}], PointLegend[{Purple}, {"Data"}]}]
    ]
   , {t, 0, 1, 0.2}];
ListAnimate[p3]
ListAnimate[Join[p0, p1, p2, p3, Table[p3[[-1]], {10}]] ]

Llicència

Jo, el titular dels drets d'autor d'aquest treball, el public sota la següent llicència:
Creative Commons CC-Zero L'ús d'aquest fitxer és regulat sota les condicions de Creative Commons de CC0 1.0 lliurament al domini públic universal.
La persona que ha associat un treball amb aquest document ha dedicat l'obra domini públic, renunciant en tot el món a tots els seus drets de d'autor i a tots els drets legals relacionats que tenia en l'obra, en la mesura permesa per la llei. Podeu copiar, modificar, distribuir i modificar l'obra, fins i tot amb fins comercials, tot sense demanar permís.

Llegendes

Afegeix una explicació d'una línia del que representa aquest fitxer
Gaussian Process Regression as the envelope of random walks.

Historial del fitxer

Cliqueu una data/hora per veure el fitxer tal com era aleshores.

Data/horaMiniaturaDimensionsUsuari/aComentari
actual12:12, 13 abr 2020Miniatura per a la versió del 12:12, 13 abr 2020667 × 292 (961 Ko)BertoUploaded own work with UploadWizard

La pàgina següent utilitza aquest fitxer:

Ús global del fitxer

Utilització d'aquest fitxer en altres wikis:

Metadades