Ich bin ein Anfänger in R und begann mit Grafiken vor kurzem.Glatte Kurve durch Punkte und beinhalten den Ursprung in R
Ich habe eine Arbeits empirische kumulative Verteilungsfunktion programmieren verwaltet (Benutzer-generierte, nicht den Standard ECDF() -Funktion) und einen Plot zu erzeugen. Allerdings ist die Handlung nicht so, wie es sein sollte, es gibt zwei Probleme damit und ich bin mir nicht sicher, wie ich sie lösen soll (ich habe meine "Forschung" gemacht, aber ich habe keine Lösung gefunden).
Dies ist mein Code:
set.seed(1)
n = 50
x = rpois(n, 2.2)
cdf = function(x,n)
{
v=c()
for(z in 1:max(x))
{
a = length(x[x<=z])/n
v = c(v, a)
}
plot(v,type="l", main="empirical cumulative distribution function", xlab="x", ylab="cumulative probability", xlim=c(0,6), ylim=c(0,1.0))
}
cdf(x, n)
Es gibt zwei Probleme mit diesem Grundstück:
Die Linien sind gerade, aber es sollte eine glatte Kurve durch alle Punkte sein.
Der Ursprung ist nicht enthalten (jetzt beginnt die Kurve bei x = 1).
Wie können diese Probleme elegant gelöst werden?
Vielleicht 'ecdf' sehen? – Axeman
Nein, ich möchte nicht die integrierte Standardfunktion ecdf() verwenden. Vorschläge zu meiner Funktion (vorzugsweise Ergänzungen zur Funktion plot()) sind willkommen. – Anna
Ersetzen Sie 'v = c()' durch 'v = 0', und ändern Sie Ihren Plotaufruf in' plot (0: max (x), v, type = "l", .......) '. Für so reibungslose Linie müssen Sie etwas mehr Arbeit leisten. Schauen Sie sich zum Beispiel 'Löss' an. – Axeman