Tôi muốn so sánh các hệ số tương quan bivariate (Pearson's và Spearman's ) với những gì sẽ được mong đợi từ dữ liệu ngẫu nhiên.
Giả sử rằng chúng ta đo, giả sử, 36 trường hợp trên rất nhiều biến số (1000). (Tôi biết điều này là kỳ quặc, nó được gọi là phương pháp Q. Giả sử thêm rằng mỗi biến số (thường) được phân phối bình thường trong các trường hợp . (Một lần nữa, rất kỳ lạ, nhưng đúng bởi vì mọi người như các trường hợp xếp hạng thứ tự biến người theo trường hợp phân phối bình thường.)
Vì vậy, nếu mọi người sắp xếp ngẫu nhiên , chúng ta sẽ nhận được:
m <- sapply(X = 1:1000, FUN = function(x) rnorm(36))
Bây giờ - vì đây là phương pháp Q - chúng tôi tương quan tất cả các biến người :
cors <- cor(x = m, method = "pearson")
Sau đó, chúng tôi cố gắng vẽ biểu đồ đó và áp dụng phân phối hệ số tương quan của Pearson trong dữ liệu ngẫu nhiên, thực sự khá gần với các mối tương quan quan sát được trong dữ liệu giả mạo của chúng tôi:
library(ggplot2)
cor.data <- cors[upper.tri(cors, diag = FALSE)] # we're only interested in one of the off-diagonals, otherwise there'd be duplicates
cor.data <- as.data.frame(cor.data) # that's how ggplot likes it
colnames(cor.data) <- "pearson"
g <- ggplot(data = cor.data, mapping = aes(x = pearson))
g <- g + xlim(-1,1) # actual limits of pearsons r
g <- g + geom_histogram(mapping = aes(y = ..density..))
g <- g + stat_function(fun = dt, colour = "red", args = list(df = 36-1))
g
Điều này mang lại:
Đường cong chồng lên rõ ràng là sai. (Cũng lưu ý rằng trong khi lẻ, mật độ trục y thực sự chính xác : bởi vì các giá trị x rất nhỏ, đây là cách diện tích tổng hợp thành một).
Tôi nhớ (mơ hồ) rằng phân phối t có liên quan trong bối cảnh này, nhưng tôi không thể quấn đầu xung quanh làm thế nào để bán nó đúng cách. Cụ thể, mức độ tự do được đưa ra bởi số lượng tương quan (1000 ^ 2 / 2-500), hoặc số lượng quan sát mà các mối tương quan này dựa trên (36)?
Dù bằng cách nào, đường cong chồng lên ở trên rõ ràng là sai.
Tôi cũng bối rối bởi vì, phân phối xác suất của Pearson sẽ cần phải bị giới hạn ( không có giá trị nào vượt quá (-) 1) - nhưng phân phối t không bị giới hạn.
Phân phối nào mô tả của Pearson trong trường hợp này?
Tặng kem:
Dữ liệu trên thực sự được lý tưởng hóa: trong nghiên cứu Q thực tế của tôi, các biến người thực sự có rất ít cột theo phân phối bình thường để sắp xếp các trường hợp mục của họ vào, như vậy:
Trong thực tế, các biến người thực sự là các trường hợp mục thứ tự xếp hạng, vì vậy Pearson không được áp dụng. Thay vào đó, là một bản sửa lỗi thô và bẩn , thay vào đó tôi đã chọn cho Spearman . Phân phối xác suất có giống với Spearman's không?
Cập nhật : Nếu bất cứ ai quan tâm, đây là mã R để thực hiện phản hồi tuyệt vời của @ amoeba bên dưới:
library(ggplot2)
cor.data <- cors[upper.tri(cors, diag = FALSE)] # we're only interested in one of the off-diagonals, otherwise there'd be duplicates
cor.data <- as.data.frame(cor.data) # that's how ggplot likes it
summary(cor.data)
colnames(cor.data) <- "pearson"
pearson.p <- function(r, n) {
pofr <- ((1-r^2)^((n-4)/2))/beta(a = 1/2, b = (n-2)/2)
return(pofr)
}
g <- NULL
g <- ggplot(data = cor.data, mapping = aes(x = pearson))
g <- g + xlim(-1,1) # actual limits of pearsons r
g <- g + geom_histogram(mapping = aes(y = ..density..))
g <- g + stat_function(fun = pearson.p, colour = "red", args = list(n = nrow(m)))
g
Quan trọng là pearson.p
chức năng và bổ sung ggplot2 cuối cùng.
Đây là kết quả; phù hợp hoàn hảo, như người ta mong đợi: