Làm thế nào để sử dụng chức năng kiểm tra Levene trong R?


14

Tôi là người mới tham gia thống kê và R và tôi gặp rắc rối với việc sử dụng hàm Levene (tôi muốn kiểm tra sự bằng nhau của phương sai của hai mẫu). Các tài liệu nói rằng tôi nên chạy:

levene.test (y, nhóm)

Nhưng tôi không biết tôi nên đặt cái gì là y và nhóm? Tôi có hai mẫu khác nhau mà tôi muốn kiểm tra sự bằng nhau của phương sai. Tôi có nên đặt một trong các giá trị của mẫu là y và thứ hai là tham số nhóm không?

Có gợi ý nào không?

Câu trả lời:


17

Giả sử, trong R, mẫu thứ 1 của bạn được lưu trữ trong một vectơ có tên sample1và mẫu thứ 2 của bạn được lưu trữ trong một vectơ có tên sample2.

Trước tiên, bạn phải kết hợp hai mẫu của mình trong một vectơ duy nhất và để tạo một vectơ khác xác định hai nhóm:

y <- c(sample1, sample2)

group <- as.factor(c(rep(1, length(sample1)), rep(2, length(sample2))))

Bây giờ, bạn có thể gọi

library(car)
levene.test(y, group)

BIÊN TẬP

Khi thử điều này trong R, tôi nhận được cảnh báo sau:

'levene.test' has now been removed. Use 'leveneTest' instead...

Theo đó, bạn nên xem leveneTestlại ...


Cảm ơn! Nhưng bạn sẽ rất tử tế và giải thích lý do tại sao nó nên đi theo cách này? Tôi rất muốn hiểu điều đó để lần sau tôi không phải đặt câu hỏi và có thể giúp đỡ người khác.
Jakub

@Jakub: Vâng, nó đi theo cách này bởi vì nó đã được thực hiện bằng cách sử dụng cấu trúc đó. Trợ giúp nói rằng đối số thứ nhất phải là biến trả lời trong khi đối số thứ hai phải là biến nhóm.
ocram

Trong nhiều trường hợp, R dường như thích loại định dạng dữ liệu này, thường được gọi là "dài". Gói định hình lại cung cấp các hàm gọi là tan và đúc có thể được sử dụng để định hình lại dữ liệu của bạn, nhưng chúng phức tạp hơn những gì bạn cần cho trường hợp hai biến đơn giản.
russellpierce

Chỉ cần xác nhận, điều này sẽ không kiểm tra phổ tần số của mẫu 1 và mẫu 2, đúng không? Vì vậy, ví dụ, giả sử mẫu 1 là: 1,0,2,1,0 và mẫu 2 là: 1,1,3,0,0. Sẽ không bin 1 và 0 của mẫu 1 để tạo phân phối của mẫu 1, đúng không? Tôi hy vọng rằng câu hỏi tiếp theo của tôi có ý nghĩa?
Atticus29

14

Câu trả lời của Ocram có tất cả các phần quan trọng. Tuy nhiên, bạn không cần tải tất cả Rcmdr nếu bạn không muốn. Thư viện có liên quan là "xe hơi". Nhưng như ocram chỉ ra, levene.test không được dùng nữa. Lưu ý rằng sự phản đối không phải là sự thay đổi về chức năng hoặc mã (tại thời điểm này, 18/9/2011). Nó chỉ đơn giản là một sự thay đổi trong tên chức năng. Vì vậy, levene.test và leveneTest sẽ hoạt động như nhau. Đối với hồ sơ, tôi nghĩ rằng tôi sẽ cung cấp một ví dụ bằng cách sử dụng mã định hình lại leveneTest và có thể sử dụng lại cho trường hợp đơn giản này:

#Creating example code
sample1 <- rnorm(20)
sample2 <- rnorm(20)

#General code to reshape two vectors into a long data.frame
twoVarWideToLong <- function(sample1,sample2) {
    res <- data.frame(
        GroupID=as.factor(c(rep(1, length(sample1)), rep(2, length(sample2)))),
        DV=c(sample1, sample2)
    )   
}   

#Reshaping the example data
long.data <- twoVarWideToLong(sample1,sample2)

#There are many different calls here that will work... but here is an example
leveneTest(DV~GroupID,long.data)

4

Cách dễ nhất (theo ý kiến ​​của tôi) để chuẩn bị dữ liệu là sử dụng gói reshape2:

#Load packages
library(reshape2)
library(car)

#Creating example data
sample1 <- rnorm(20)
sample2 <- rnorm(20)

#Combine data
sample <- as.data.frame(cbind(sample1, sample2))

#Melt data
dataset <- melt(sample)

#Compute test
leveneTest(value ~ variable, dataset)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.