rm(list=ls(all=T)) # Daten einlesen data1 <- read.table("C:/Lehre/Wirtschaftsstatistik 2012/Blatt4/data1.txt", header = TRUE) data2 <- read.table("C:/Lehre/Wirtschaftsstatistik 2012/Blatt4/data2.txt", header = TRUE) data3 <- read.table("C:/Lehre/Wirtschaftsstatistik 2012/Blatt4/data3.txt", header = TRUE) #Berechnet den Rang eines Vektors rankFkt <- function(x) { s<-sort(x) res<-rep(0,length(x)) for(i in 1:length(x)){ for(j in 1:length(x)){ if(x[i] == s[j]){ res[i] <- j } } } return(res) } # empirische Kovarianz empCov <- function(x, y) { s <- sum((x - mean(x)) * (y - mean(y))) s <- s / (length(x) - 1) return(s) } # empirischer Korrelationskoeffizient empCorr <- function(x, y) { r <- empCov(x, y) / sqrt(empCov(x, x) * empCov(y, y)) return(r) } # Rang-Korrelationskoeffizient rankCorr <- function(x, y) { r <- 1 - 6 * sum((rank(x) - rank(y))^2) / ((length(x)^2 - 1) * length(x)) return(r) } # Alternative Rang-Korrelationskoeffizient rankCorr2 <- function(x, y) { r <- 1 - 6 * sum((rankFkt(x) - rankFkt(y))^2) / ((length(x)^2 - 1) * length(x)) return(r) } # 1. Datensatz plot(data1) empCorr(data1$X, data1$Y) rankCorr(data1$X, data1$Y) rankCorr2(data1$X, data1$Y) # 2. Datensatz plot(data2) empCorr(data2$X, data2$Y) rankCorr(data2$X, data2$Y) # 3. Datensatz plot(data3) empCorr(data3$X, data3$Y) rankCorr(data3$X, data3$Y)