Hilfe bei Aufgabenstellung

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Anni93

Hilfe bei Aufgabenstellung

Beitrag von Anni93 »

Hallo ihr Lieben,

ich muss im Rahmen einer Hausarbeit unter anderem folgende Aufgabe in R abbilden:

Bild
http://www.bilder-upload.eu/show.php?fi ... 187164.png

Leider weiß ich überhaupt nicht wie ich da vorgehen soll. Streng genommen ist es doch auch schon ein Loop, wenn ich die Zufallsvariablen mittels folgendem befehl auf einen Vektor speichere oder? Ich habe leider echt genrell Probleme mit R. Ich erwarte hier wirklich keine vollständige Lösung auch wenn das natürlich schön wäre, aber falls ihr wisst wie es geht und mir (konkrete) Denkanstöße geben könntet wäre das wirklich super lieb!

LG Anni

#Edit1:
könnte man sowas bereits als nutzung eines Loops auslegen?

rnd.samples <- function(n) {
R <- 10000
Z <- rep(NA, R)
for (r in 1:R) {
X <- runif(n, -1,1)
Z[r] <- sum(X)
}
Zuletzt geändert von Anni93 am So Apr 08, 2018 2:10 pm, insgesamt 1-mal geändert.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Hilfe bei Aufgabenstellung

Beitrag von bigben »

Anni93 hat geschrieben: So Apr 08, 2018 1:42 pmBild
http://www.bilder-upload.eu/show.php?fi ... 187164.png
Sorry, so funktioniert der Link nicht.
könnte man sowas bereits als nutzung eines Loops auslegen?

rnd.samples <- function(n) {
R <- 10000
Z <- rep(NA, R)
for (r in 1:R) {
X <- runif(n, -1,1)
Das wird sicher eine Schleife, wenn Du die eckige Klammern auch nochmal zu machst.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Anni93

Re: Hilfe bei Aufgabenstellung

Beitrag von Anni93 »

Habe gerade meinen Beitrag gelöscht, weil ich ihn erst doppelt gepostet hatte aufgrund einer Änderung.. jetzt sind beide wieder weg. Also nochmal neu:

Hallo Bernhard, vielen Dank für deine Anmerkung! Der Link sollte jetzt funktionieren.

Ich habe leider momentan immer wieder etwas Panik und das behindert mich leider extrem in meinem fortkommen.. Mit richtig gesetzten Klammern müsste es dann so aussehen oder?


rnd.samples <- function(n) {
R <- 10000
Z <- rep(NA, R)
for (r in 1:R) {
X <- runif(n, 0,1)
Z[r] <- sum(X)
}
}

Edit: Ich habe Probleme mir vorzustellen, wie ich die Variablen sonst erstellen sollte.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Hilfe bei Aufgabenstellung

Beitrag von jogo »

Hallo Anni,

willkommen im Forum!
Ich bin erstmal soweit mit der Aufgabe:

Code: Alles auswählen

n <- 100
R <- 1000
X <- matrix(runif(R*n), R, n)

Mn <- apply(X, 1, max)
Mn.quer <- (Mn - 1)/n
(Bitte beachte auch, wie schön der Code in entsprechende Tags gesetzt ist. Das kannst Du zukünftig auch; bitte lies: viewtopic.php?f=20&t=29 )

Gruß, Jörg
Anni93

Re: Hilfe bei Aufgabenstellung

Beitrag von Anni93 »

Hallo Jörg,

vielen Dank für den Ansatz! Eine wirklich schlaue Idee mit der Matrix. Im nachhinein wirkt alles immer so einfach.


"Show the convergence by means of an appropriate plot" Also erstmal muss ich bemerken, dass ich das Englisch hier komisch finde und es verstehe als: "Show the convergence of means by an appropriate plot",
also die Annährung der Durschnitte von Mn.quer in n. Je höher n, desto weniger die Abweichung zu n-1.

Wäre es eine gute Idee sich auf diese Differenzen zu konzentrieren?

Code: Alles auswählen

Abweichung.Mn.quer <- Mn.quer[n] - Mn.quer[n-1]
plot(Abweichung.Mn.quer)
oder soll man hier die beiden Verteilungen irgendwie direkt gegeneinander plotten?
bitte entschuldigt diese blöden Fragen von mir.. Ich glaube das ist schon sehr anstrengend mit so einer Anfängerin, wie mir zu reden.. dafür vorab schon eine Entschuldigung. Aber alleine dieser Ansatz führt zu mehr Seelenheil :) *grins*

Edit: wo wir bei anstrengend sind. Ich merke gerade, dass mein Code ohne for-Schleife natürlich blödsinn ist, ich sie aber auch nicht benutzen darf...
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Hilfe bei Aufgabenstellung

Beitrag von bigben »

Hallo,
Anni93 hat geschrieben: So Apr 08, 2018 3:22 pm"Show the convergence by means of an appropriate plot" Also erstmal muss ich bemerken, dass ich das Englisch hier komisch finde und es verstehe als: "Show the convergence of means by an appropriate plot",
also die Annährung der Durschnitte von Mn.quer in n. Je höher n, desto weniger die Abweichung zu n-1.
Das dürfte eher ein Sprachproblem auf Deiner Seite sein. "Means" ist nicht nur der Plural von Mittelwert, sondern bedeutet auch "Hilfsmittel" oder "Werkzeug". "By means of" heißt "anhand von" oder "mittels". Du sollst also die Konvergenz der Verteilung (nicht der Mittelwerte) mittels eines angemessenen Plots zeigen. Stellt sich für uns die Frage, welche geeigneten Plots Du kennst. Sagt Dir qqplot() oder der Quantile-Quantile-Plot was?
https://de.wikipedia.org/wiki/Quantil-Quantil-Diagramm

Sonst könnte man Histogramme vergleichen oder ähnliches. Es gibt viele mögliche Antworten - welche hast Du gelernt?

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Anni93

Re: Hilfe bei Aufgabenstellung

Beitrag von Anni93 »

Das dürfte eher ein Sprachproblem auf Deiner Seite sein. "Means" ist nicht nur der Plural von Mittelwert, sondern bedeutet auch "Hilfsmittel" oder "Werkzeug". "By means of" heißt "anhand von" oder "mittels". Du sollst also die Konvergenz der Verteilung (nicht der Mittelwerte) mittels eines angemessenen Plots zeigen.
Ja da hast du recht.. ich war zu sehr auf statistische Wörter fixiert.
Stellt sich für uns die Frage, welche geeigneten Plots Du kennst. Sagt Dir qqplot() oder der Quantile-Quantile-Plot was?
qqplots hatten wir nicht in der Vorlesung. Aber ich wir hatten ein Histogramm, dass mit einer Line einer anderen Verteilung kombiniert wurde. wir haben meistens jedoch nur die "truehist()" Histogramme benutzt. Aber ich habe mir deinen Artikel auf Wikipedia gerade angeschaut. Ich denke der Professor möchte, dass wir dinge anwenden, die über die Vorlesung hinaus gehen (die nicht besonders umfangreich war). Das heißt ich versuche jetzt die Weibul-Verteilung bei R zu erstellen mit der Dichte exp(x) und plotte es dann gegen meine Mn.quer Verteilung mittels qqplot?

Code: Alles auswählen

weibull.distribution <- rweibull(1000, 1,-1)

qqplot(Mn.quer, weibull.distribution)
f(x) = (a/b) (x/b)^(a-1) exp(- (x/b)^a) da dies die Dichtefunktion der Weibullfunktion ist und in der Aufgabe die Dichte exp(x) sein soll, muss a=1 und b=-1 sein oder verstehe ich wieder etwas falsch? Leider produziere nur NANs wenn b -1 ist..

Aber ohne minus 1 scheinen die Verteilungen auch gespiegelt zu sein.

Code: Alles auswählen

n <- 100
R <- 1000
X <- matrix(runif(R*n, 0,1), n, R)

Mn <- apply(X, 2, max)
Mn.quer <- (Mn - 1)/n

weibull.distribution <- rweibull(1000, 1, 1) 

hist(weibull.distribution)
hist(Mn.quer)

qqplot(Mn.quer, weibull.distribution)
Zuletzt geändert von Anni93 am So Apr 08, 2018 5:29 pm, insgesamt 1-mal geändert.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Hilfe bei Aufgabenstellung

Beitrag von bigben »

Hi!
Anni93 hat geschrieben: So Apr 08, 2018 4:50 pmAber ich wir hatten ein Histogramm, dass mit einer Line einer anderen Verteilung kombiniert wurde. wir haben meistens jedoch nur die "truehist()" Histogramme benutzt.


truehist kenne ich nicht. Beispiele für Verteilungsvergleiche mit Histogrammen und Kerndichteschätzern findet man hier: http://www.cookbook-r.com/Graphs/Plotti ... ple-groups

Eine Reihe anderer Möglichkeiten hier: https://stats.stackexchange.com/questio ... tributions
Ich denke der Professor möchte, dass wir dinge anwenden, die über die Vorlesung hinaus gehen (die nicht besonders umfangreich war).


Das kannst Du nur selbst entscheiden. Ich drücke Dir dafür die Daumen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten