| ||
| Home
Buch beim Verlag
Anwendungs- boxen Folien zum Buch R-Skripte Impressum / Kontakt
Besucher seit 02.04.2014:
ganze Website: 2114 diese Seite: 725 |
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")
| |