| ||
Home
Buch beim Verlag
Anwendungs- boxen Folien zum Buch R-Skripte Impressum / Kontakt
Besucher seit 02.04.2014:
ganze Website: 1793 diese Seite: 639 |
R-Skripte
Auf dieser Seite finden Sie R-Skripte zum Buch "Wahrscheinlichkeit und Regression", die die Inhalte verdeutlichen.
ÜbersichtÜber RSkripte
Was ist R?
Wo bekomme ich R?Download unter http://www.r-project.org.Wo bekomme ich mehr Informationen zu R?Projekt-Seite: http://www.r-project.org (Dort kann man sich englischsprachige Dokumentationen herunterladen.Deutschsprachiges Wikibook: http://de.wikibooks.org/wiki/GNU_R Zudem sind mit Suchmaschinen viele Einführungen im WWW zu finden. Allgemein: R data frame in SPSS importieren## dataframe2spss ## Sven Hartenstein, 2005 ## This script reads a R data.frame from a file and produces a SPSS ## syntax file that imports the data (and variable names) into SPSS. ## Caution: No definition of variable type, number of decimals or so ## are made! You may want to set this by hand either in the produced ## syntax file or after importing the data into SPSS. ## ============================== ## CONFIGURATION ## ============================== ## To load data frame from file: (otherwise just assign an existing ## data frame the name dataframe) dataframe <- read.table("daten.dat") ## filename of SPSS syntax file to be created outfile <- "daten.sps" ## ============================== ## END OF CONFIGURATION ## ============================== cat(paste("data list free / ",paste(variable.names(dataframe), collapse=" "),"."), file=outfile, sep="\n", append=FALSE) cat("begin data", file=outfile, sep="\n", append=TRUE) for (i in 1:length(dataframe[,1])) { cat(gsub("\\.", ",", paste(as.matrix(dataframe[i,]), collapse=" ")), file=outfile, sep="\n", append=TRUE) } cat("end data.", file=outfile, sep="\n", append=TRUE) Kapitel 10: Daten einer Regression mit zwei dichotomen Regressoren erzeugen## Skript zu Kapitel 10: zwei dichotome Regressoren ## ## Dieses Skript erzeugt einen Datensatz mit einem normalverteilten, ## numerischen Regressanden Y und zwei dichotomen Regressoren X und Z ## (Kodierung: 0 versus 1). ## ## Frei konfigurierbar sind: ## - die Anzahl der Fälle für jede der 4 "Zellen" ## - die bedingten Erwartungswerte E(Y | X = x, Z = z) für jede der 4 ## "Zellen" ## - die Standardabweichungen von Y für jede der 4 "Zellen" ## ============================== ## KONFIGURATION ## ============================== ## Die Anzahl der Fälle n.x0z0 <- 250 # Anzahl der Fälle für X = 0, Z = 0 n.x0z1 <- 250 # Anzahl der Fälle für X = 0, Z = 1 n.x1z0 <- 250 # Anzahl der Fälle für X = 1, Z = 0 n.x1z1 <- 250 # Anzahl der Fälle für X = 1, Z = 1 ## Erwartungswerte e.y.x0z0 <- 55 # E(Y | X = 0, Z = 0) e.y.x0z1 <- 70 # E(Y | X = 0, Z = 1) e.y.x1z0 <- 60 # E(Y | X = 1, Z = 0) e.y.x1z1 <- 90 # E(Y | X = 1, Z = 1) ## Standardabweichungen sd.y.x0z0 <- 6 # Std() für X = 0, Z = 0 sd.y.x0z1 <- 5 # Std() für X = 0, Z = 1 sd.y.x1z0 <- 5 # Std() für X = 1, Z = 0 sd.y.x1z1 <- 4 # Std() für X = 1, Z = 1 ## Dateiname filename <- "reg-daten.dat" ## ============================== ## ENDE DER KONFIGURATION ## ============================== ## Die Variable X: dichotom x <- c(rep(0, times=n.x0z0), rep(0, times=n.x0z1), rep(1, times=n.x1z0), rep(1, times=n.x1z1)) ## Die Variable Z: dichotom z <- c(rep(0, times=n.x0z0), rep(1, times=n.x0z1), rep(0, times=n.x1z0), rep(1, times=n.x1z1)) ## Die Variable Y: normalverteilt y <- c(rnorm(n.x0z0, e.y.x0z0, sd.y.x0z0), rnorm(n.x0z1, e.y.x0z1, sd.y.x0z1), rnorm(n.x1z0, e.y.x1z0, sd.y.x1z0), rnorm(n.x1z1, e.y.x1z1, sd.y.x1z1)) ## Ergebnisse speichern daten <- data.frame(x, z, y) write.table(daten, file=paste(filename, sep=""), append=FALSE) Kapitel 15: Daten zum Simpson-Paradoxon erzeugen## Skript zu Kapitel 15: Simpson-Paradoxon ## ## Beispiel aus Kapitel 15: Männer vs. Frauen, Behandlung vs. keine ## Behandlung, Erfolg vs. kein Erfolg. ## ============================== ## KONFIGURATION ## ============================== ## Alle Zahlen entnommen aus Tabelle 2, Seite 243. ## Sie können natürlich verändert werden. ## Anzahl der Frauen und Männer n.w0 <- 1000 # Anzahl der Frauen (W = 0) n.w1 <- 1000 # Anzahl der Männer (W = 1) ## Wahrscheinlichkeit, dass Person Behandlung bekommt p.x.w0 <- 250/1000 # P(X = 1 | W = 0) p.x.w1 <- 750/1000 # P(X = 1 | W = 1) ## Wahrscheinlichkeit, dass Erfolg p.y.x0w0 <- .7 # P(Y = 1 | X = 0, W = 0) p.y.x0w1 <- .3 # P(Y = 1 | X = 0, W = 1) p.y.x1w0 <- .8 # P(Y = 1 | X = 1, W = 0) p.y.x1w1 <- .4 # P(Y = 1 | X = 1, W = 1) ## Dateiname filename.dat <- "simpson_daten.dat" # Daten speichern filename.out <- "simpson_output.txt" # Einfache Auswertung als Text speichern ## ============================== ## ENDE DER KONFIGURATION ## ============================== ## Geschlecht: Mann (W = 1) oder Frau (W = 0) w <- c(rep(0, times=n.w0), rep(1, times=n.w1)) ## Behandlung: ja (X = 1) oder nein (X = 0) x <- c(sample(0:1, n.w0, replace=TRUE, prob=c(1-p.x.w0,p.x.w0)), sample(0:1, n.w1, replace=TRUE, prob=c(1-p.x.w1,p.x.w1,))) ## Erfolg: ja (Y = 1) oder nein (Y = 0) y <- NULL y[x == 0 & w == 0] <- sample(0:1, length(x[x == 0 & w == 0]), replace=TRUE, prob=c(1-p.y.x0w0, p.y.x0w0)) y[x == 0 & w == 1] <- sample(0:1, length(x[x == 0 & w == 1]), replace=TRUE, prob=c(1-p.y.x0w1, p.y.x0w1)) y[x == 1 & w == 0] <- sample(0:1, length(x[x == 1 & w == 0]), replace=TRUE, prob=c(1-p.y.x1w0, p.y.x1w0)) y[x == 1 & w == 1] <- sample(0:1, length(x[x == 1 & w == 1]), replace=TRUE, prob=c(1-p.y.x1w1, p.y.x1w1)) ## Ergebnisse speichern daten <- data.frame(x, w, y) write.table(daten, file=paste(filename.dat, sep=""), append=FALSE) ## Ausgabe der Häufigkeiten: cat("Evaluation einer Behandlung (vgl. Buch, S. 242, Tabelle 1):\n", file=filename.out, append=FALSE, sep="\n") cat("Behandlung ja (X = 1):", file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg ja (Y = 1): ", length(y[y == 1 & x == 1])), file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg nein (Y = 0): ", length(y[y == 0 & x == 1])), file=filename.out, append=TRUE, sep="\n") cat("Behandlung nein (X = 0):", file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg ja (Y = 1): ", length(y[y == 1 & x == 0])), file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg nein (Y = 0): ", length(y[y == 0 & x == 0])), file=filename.out, append=TRUE, sep="\n") cat("\n\nEvaluation einer Behandlung getrennt nach Geschlecht (vgl. Buch, S. 243, Tabelle 2):\n", file=filename.out, append=TRUE, sep="\n") cat("Maenner (W = 1):", file=filename.out, append=TRUE, sep="\n") cat(" Behandlung ja (X = 1):", file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg ja (Y = 1): ", length(y[y == 1 & x == 1 & w == 1])), file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg nein (Y = 0): ", length(y[y == 0 & x == 1 & w == 1])), file=filename.out, append=TRUE, sep="\n") cat(" Behandlung nein (X = 0):", file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg ja (Y = 1): ", length(y[y == 1 & x == 0 & w == 1])), file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg nein (Y = 0): ", length(y[y == 0 & x == 0 & w == 1])), file=filename.out, append=TRUE, sep="\n") cat("Frauen (W = 0):", file=filename.out, append=TRUE, sep="\n") cat(" Behandlung ja (X = 1):", file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg ja (Y = 1): ", length(y[y == 1 & x == 1 & w == 0])), file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg nein (Y = 0): ", length(y[y == 0 & x == 1 & w == 0])), file=filename.out, append=TRUE, sep="\n") cat(" Behandlung nein (X = 0):", file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg ja (Y = 1): ", length(y[y == 1 & x == 0 & w == 0])), file=filename.out, append=TRUE, sep="\n") cat(paste(" Erfolg nein (Y = 0): ", length(y[y == 0 & x == 0 & w == 0])), file=filename.out, append=TRUE, sep="\n") |