Zum Inhalt springen

Datei:Gaussianprocess.gif

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Zur Beschreibungsseite auf Commons
aus Wikipedia, der freien Enzyklopädie

Gaussianprocess.gif (667 × 292 Pixel, Dateigröße: 961 KB, MIME-Typ: image/gif, Endlosschleife, 49 Bilder, 4,9 s)

Diese Datei und die Informationen unter dem roten Trennstrich werden aus dem zentralen Medienarchiv Wikimedia Commons eingebunden.

Zur Beschreibungsseite auf Commons


Beschreibung

Beschreibung
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.
Datum
Quelle https://twitter.com/j_bertolotti/status/1249341481057468417
Urheber Jacopo Bertolotti
Genehmigung
(Weiternutzung dieser Datei)
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}]] ]

Lizenz

Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
Creative Commons CC-Zero Diese Datei wird unter der Creative-Commons-Lizenz CC0 1.0 Verzicht auf das Copyright zur Verfügung gestellt.
Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.

Kurzbeschreibungen

Ergänze eine einzeilige Erklärung, was diese Datei darstellt.
Gaussian Process Regression as the envelope of random walks.

Einige Werte ohne einen Wikidata-Eintrag

image/gif

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell12:12, 13. Apr. 2020Vorschaubild der Version vom 12:12, 13. Apr. 2020667 × 292 (961 KB)BertoUploaded own work with UploadWizard

Keine Seiten verwenden diese Datei.

Globale Dateiverwendung

Die nachfolgenden anderen Wikis verwenden diese Datei:

Metadaten