2017-03-10 6 views
1

Ich möchte einen Trend aus einer Liste in Netlogo berechnen. Bevor Sie nach einer integralen Berechnung suchen. Gibt es einen kniffligen Weg, das zu tun? Wenn nicht, wie in der Netlogo mailing list erwähnt, habe ich mir Netlogo-R-extention und RNetlogo angesehen, aber ich möchte sicher sein. Alle Ideen und Vorschläge sind willkommen. :-)Trend Berechnung in Netlogo

Zum Beispiel: jeder meiner Agenten hat einen Speicher von einem Indikator als eine Liste von n Elementen. Ich möchte mit einem numerischen indictor wenn diese Liste Zunahme oder Abnahme wissen ...

Speicher ist verwalten als

to manage-memory ;; hunter procedure 
    let _lgh-mem length mem-hunted-wolves 
    ifelse _lgh-mem < mem-size [ 
    set mem-hunted-wolves lput tick-hunted-wolves mem-hunted-wolves 
    set mem-hunted-sheep lput tick-hunted-sheep mem-hunted-sheep 
    ][ 
    ;; Wolves 
    set mem-hunted-wolves lput tick-hunted-wolves mem-hunted-wolves 
    set mem-hunted-wolves remove-item 0 mem-hunted-wolves 
    set slope-mem-wolves calcul-mem-slope mem-hunted-wolves ;; calcul slope from killed wolves list 

    ;; sheep 
    set mem-hunted-sheep lput tick-hunted-sheep mem-hunted-sheep 
    set mem-hunted-sheep remove-item 0 mem-hunted-sheep 
    set slope-mem-sheep calcul-mem-slope mem-hunted-sheep ;; calcul slope from killed wolves list 
    ] 
end 

Wo mem-size in der GUI ist.

Mein Ziel wäre, Liste A als [5 8 6 7 4 5] zu Liste B als [5 5 5 5 5 5] zu diskriminieren.

Je mehr ich darüber nachdachte, desto integraler scheinen die Lösungen zu sein. Aber ich würde nicht "großes R" für ein einzelnes integrales verwenden ...

+0

Wie soll die Antwort aussehen? Was ist der Algorithmus, den Sie verwenden möchten? – Alan

+0

Ich habe versucht zu klären. – delaye

+0

Es ist immer noch nicht klar. Wie würde beispielsweise das Subtrahieren des ersten Listenelements von dem letzten fehlschlagen, um den gewünschten Indikator zu erzeugen. – Alan

Antwort

2

Eine Weise, einen "Trend" herzustellen, würde sein, die Steigung einer einfachen Regressionslinie durch die Punkte zu betrachten. Die Steigung der Linie würde anzeigen, ob der Trend positiv oder negativ war, und vielleicht zusätzliche nützliche Informationen über die Größe des Trends liefern. Die Erweiterung matrix hat ein einfaches Trend-Primitiv und funktioniert sowohl in NetLogo v6.0 als auch in 5.3. Die Erweiterung stats erlaubt komplexere Regressionen, funktioniert aber (momentan) nur mit 5.3.

Charles

+0

Können Sie angeben, an welches Primitiv Sie denken? – delaye

+0

Das Primitiv in der Matrixerweiterung ist "Matrix: Forecast-Linear-Growth". Ein Beispiel finden Sie in der Dokumentation zur Matrixerweiterung unter http://ccl.northwestern.edu/netlogo/docs/. Es gibt auch Primitive für exponentielles und zusammengesetztes Wachstum, aber es klingt wie ein einfacher linearer Trend ist alles was Sie brauchen. – Charles

+0

Ich habe 'Matrix: Prognose-linear-Wachstum' verwendet. Es funktioniert gut für lineares Wachstum, aber jeder Vorschlag, wenn meine Liste abnimmt? Tatsächlich funktioniert "Matrix: Forecast-linear-growth" in diesem Fall nicht? A – delaye