2016-04-11 5 views
3

Dies könnte sehr einfach sein, aber ich habe ziemlich viel Zeit damit verbracht, es ohne Glück, um herauszufinden, vielleicht kann mir jemand helfen.Grundstück Residuen in spatstat ohne Übereinanderstellen

Ich habe ein Punktmustermodell durch die ppm() -Funktion in spstatstat (reproduzierbarer Code unten) und wenn ich die Residuen plotte, zeichnet es automatisch die Punkte über das Residuenbild, was es sehr schwierig macht, etwas zu sehen. Weiß jemand, wie man es vermeidet?

Code:

library(spatstat) 
pattern <- rpoispp(300) 
cov <- rnoise(rgen = rnorm, dimyx=32, mean=2, sd=1, w = pattern$window) 
fit <- ppm(pattern ~ cov) 
res <- residuals.ppm(fit, type = "raw") 
plot(res, how = "imagecontour") 

Antwort

2

die Datenpunkte sind nicht „over-aufgetragen“ auf der Oberseite der Residuen wobei: der Rest Maßnahme umfasst ein ‚Atom‘ die Masse an jedem Datenpunkt, zusammen mit einer glatten Dichte, so dass die Handlung ist richtig.

Wenn das Problem darin besteht, dass Sie die Details nicht sehen können, weil die Symbole für die Atome zu groß sind, können Sie die Skalierung dieser Symbole mit einem der Argumente markscale oder maxsize reduzieren plot.ppp.

Dann wieder, wenn es eine Menge von Datenpunkten sind, könnten Sie besser sein, nur um die Restmaß zu glätten. Wenn res das Restmaß ist, das Sie berechnet haben, versuchen Sie es mit plot(Smooth(res)). Weitere Informationen finden Sie in der Hilfe für Smooth.msr.

Wenn Sie wirklich die glatte Dichte Komponente des Restmaßes extrahieren müssen, können Sie dem Ratschlag von Ege folgen oder alternativ with.msr verwenden. Zum Beispiel

with(res, Smooth(qlocations %mark% density)) 

gibt ein Bild, das die kontinuierliche Komponente der Rest Maßnahme darstellt.

Diese Kommentare gelten nur für die rohen Residuen, bei denen alle Atome die gleiche Masse haben 1. Bei anderen Residuumstypen haben die Atome ungleiche Massen, und es wird wichtiger, sie anzuzeigen.

+0

Nun, ich hatte die Handlung sicherlich missverstanden. Ihre und Eges Kommentare haben mir sehr geholfen, vielen Dank! –

1

Well der Rest für einen Punkt Prozessmodell ist wirklich ein signiertes Maßnahme, die sowohl einen diskreten Teil (an den Stellen beobachtet konzentriert), und einen durchgehenden Teil. Wenn Sie nur den fortlaufenden Teil zeichnen, zeichnen Sie nicht wirklich den Rest ...

Natürlich ist es ein gültiger Punkt, dass Sie nur den kontinuierlichen Teil zeichnen möchten, und eine einfache Möglichkeit, dies zu erreichen, ist type = "n" zu übergeben plot.msr sendet es an plot.ppp. Dies ergibt jedoch immer noch eine seltsame Symbolkarte auf der linken Seite.

Alternativ können Sie die interne spatstat Funktion augment.msr verwendet werden, die ein Pixelbild auf das Rest Objekt hinzufügt, und dann das Bild verwenden, zum Plotten (Vorsicht, dass eine interne Funktion wird in zukünftigen Versionen von spatstat arbeiten garantiert):

library(spatstat) 
pattern <- rpoispp(300) 
cov <- rnoise(rgen = rnorm, dimyx=32, mean=2, sd=1, w = pattern$window) 
fit <- ppm(pattern ~ cov) 
res <- residuals.ppm(fit, type = "raw") 
plot(res, how = "imagecontour") 
res <- augment.msr(res) 
den <- attr(res, "smoothdensity") 
plot(den)