Ich simuliere die Verteilung der Mittel von 40 i.i.d. Exponentiale und I zeichnen die Verteilung der Stichprobenmittel zusammen mit dem Mittel der Verteilung der Stichprobenmittel (A) und dem theoretischen Mittel des Exponentials mit Lambda = 0,2 (B) auf. Die beiden Mittelwerte A und B sollten als vertikale Linien erscheinen, die unterschiedlich gefärbt sind, und ihre Farbcodes sollten in einer Legende erläutert werden. Mein Code erzeugt jedoch nur eine vertikale Linie und ignoriert das Farbschema, das ich in meinem Code definiere.Vertikale Linien erscheinen nicht wie beabsichtigt in ggplot
Der Code ist der folgende:
n <- 40
lambda <- 0.2
simulation = data.table(sample_mean = numeric())
for (i in (1 : 1000)){
simulation <- rbind(simulation, data.table(sample_mean = mean(rexp(n, lambda))))
}
#==============================================================================================
# Show the sample mean and compare it to the theoretical mean of the distribution.
#==============================================================================================
sample_mean <- mean(simulation$sample_mean)
4.981267
theoretical_mean <- 1/lambda
5
#------------------------------------------------------------------------------------------
# Plot of the Empirical and Theoretical Distributions and their respective means
#------------------------------------------------------------------------------------------
ggplot(simulation, aes(x = sample_mean)) +
geom_histogram(aes(y=..density..), position="identity",alpha = 0.4, fill = "red", bins=100) +
geom_density(colour = "red" , size = 2, alpha = 0.5) +
geom_vline(xintercept = sample_mean, aes(colour = "Empirical"), size = 1.5, alpha =0.3) +
geom_vline(xintercept = lambda, aes(colour = "Theoretical"), size = 1.5, alpha =0.3) +
theme_economist() + ggtitle("Distribution of Sample Means. Mean of the Empirical Distribution
and Mean of the Theoretical Exponential (1,000 simulations) ") +
scale_colour_manual("Distributions", values = c("blue", "red")) +
scale_y_continuous(name = "Density") +
scale_x_continuous(name = "Sample Means", breaks = seq(2, 8, .5), limits=c(2, 8))
Das Grundstück ist folgende:
Ihr Rat geschätzt wird.
==================================
EDIT
@mkt: Danke für Ihren Beitrag. Dennoch muss ich in der Zeichnung die vertikalen Linien annotieren, und deshalb habe ich die Farbe innerhalb der aes() mit Zeichenketten verwendet, die später in meinem Code den Farben zugeordnet wurden. Also muss ich noch eine Lösung finden, wie das geht.
Gerade FYI, Änderungen an Ihren eigenen Beitrag nicht Alarme auslösen; Sie müssen meine Antwort kommentieren, damit ich sie sehe, es sei denn, ich überprüfe diese Seite erneut. – mkt
Also zur Klarstellung: zusätzlich zu der Lösung unten, wollen Sie nur ein Etikett am unteren Rand jeder der Linien? – mkt