Rate this post

Trong thời đại ngày nay, ngày càng có nhiều lập trình viên khao khát trở thành Nhà khoa học dữ liệu. Và, bạn phải biết rằng lập trình R là một yếu tố cần thiết để thành thạo Khoa học dữ liệu. Vì vậy, chúng ta hãy chuyển sang một trong những chủ đề quan trọng nhất của R; Mô hình ANOVA trong R.

Các bài viết liên quan:

Trong hướng dẫn này, chúng ta sẽ hiểu mô hình hoàn chỉnh của ANOVA trong R. Ngoài ra, chúng ta sẽ thảo luận về ANOVA một chiều và hai chiều trong R cùng với cú pháp của nó. Sau đó, hãy tìm hiểu về bảng ANOVA và ANOVA cổ điển trong R.

Hãy bắt đầu hướng dẫn.

ANOVA là gì?

Mô hình ANOVA là viết tắt của Phân tích phương sai được sử dụng để đo lường sự khác biệt thống kê giữa các giá trị trung bình. Với mô hình ANOVA, chúng tôi đánh giá xem các nhóm khác nhau có chung một điểm trung bình hay không. Kết quả là, chúng tôi nhận thấy rằng nó được sử dụng để điều tra dữ liệu bằng cách so sánh phương tiện của các tập hợp con dữ liệu.

Nói chung, đó là một phân tích về độ lệch cho phù hợp với mô hình tuyến tính tổng quát.

Do đó, cần phải tính toán phân tích bảng độ lệch cho một hoặc nhiều mô hình tuyến tính tổng quát phù hợp.

Từ khóa:

Mô hình, hồi quy

anova(object, …, dispersion = NULL, test = NULL)

Tranh luận:

1. object,…

Về cơ bản, đó là kết quả của một lệnh gọi tới glm hoặc một danh sách các đối tượng cho phương thức “near”.

2. dispersion

Độ phân tán được định nghĩa là tham số cho họ phù hợp.

3. test

Đó là một chuỗi ký tự. Do đó, nó phải khớp với một trong các “Chisq”, “LRT”, “Rao”, “F” hoặc “Cp”.

Triển khai ANOVA trong R

Có hai cách triển khai ANOVA trong R:

  • ANOVA một chiều
  • ANOVA hai chiều

ANOVA một chiều trong R

Hãy lấy một ví dụ về việc sử dụng thuốc xịt côn trùng là một loại tập dữ liệu. Chúng tôi sẽ thử nghiệm 6 loại thuốc xịt côn trùng khác nhau. Do đó, chúng ta cần xem liệu có sự khác biệt về số lượng côn trùng được tìm thấy trên đồng ruộng sau mỗi lần phun thuốc hay không.

> attach(InsectSprays)
> data(InsectSprays)
> str(InsectSprays)

Đầu ra:

Thống kê mô tả

  1. Với sự trợ giúp của thống kê mô tả, chúng tôi tính toán giá trị trung bình, phương sai và số lượng phần tử trong mỗi ô.
  2. Trực quan hóa dữ liệu – boxplot; nhìn vào sự phân phối cho các giá trị ngoại lai.

Chúng tôi sẽ sử dụng tapply () ở đây :

Hàm tapply () là một phím tắt rất hữu ích trong việc xử lý dữ liệu. Ngoài ra, chúng tôi sử dụng nó như một chức năng. Nó phải được áp dụng cho từng tập con của biến phản hồi được xác định bởi từng cấp của yếu tố.

Chạy ANOVA 1 chiều

Oneway.test ()

Sử dụng, ví dụ :

> oneway.test(count~spray)

Đầu ra:

Mặc định là các phương sai bằng nhau không được giả định rằng hiệu chỉnh của Welch được áp dụng và điều này giải thích tại sao denom df (là k * {n-1}) không phải là một số nguyên trong đầu ra O.

Để thay đổi điều này, chúng tôi đặt tùy chọn “var.equal =” thành TRUE.

Oneway.test () sửa lỗi không đồng nhất nhưng không cung cấp nhiều thông tin.

Chạy ANOVA bằng aov ()

Chúng tôi sử dụng hàm aov () để lưu trữ kết quả đầu ra và sử dụng các hàm trích xuất để lấy những gì được yêu cầu.

> AOV_Output <- aov(count ~ spray, data=InsectSprays)
> summary(AOV_Output)

Đầu ra:

ANOVA hai chiều trong R

Phân tích phương sai hai chiều

Chúng tôi sử dụng nó để so sánh các phương tiện của các quần thể được phân loại theo hai cách khác nhau. Bên cạnh đó, chúng ta có thể sử dụng lm () để phù hợp với mô hình ANOVA hai chiều trong R.

Ví dụ , lệnh :

> lm(Response ~ FactorA + FactorB)

phù hợp với mô hình ANOVA hai chiều mà không có tương tác. Ngược lại, lệnh:

> lm(Response ~ FactorA + FactorB + FactorA * FactorB )

bao gồm một thuật ngữ tương tác. Ở đây, cả FactorA và FactorB đều là các biến phân loại, trong khi Phản hồi là định lượng.

ANOVA cổ điển trong R

Nói chung, chúng tôi bắt đầu với một mô hình hiệu ứng cố định phụ gia đơn giản. Trong mô hình này, chúng tôi sử dụng hàm tích hợp sẵn aov:

aov ( Y ~ A + B, data = d )

Bây giờ, để vượt qua các yếu tố này hoặc hơn thế nữa để tương tác với hai biến, chúng tôi sử dụng một trong hai biến:

aov(Y ~ A * B, data=d)
aov(Y ~ A + B + A:B, data=d)

Càng xa càng tốt. Hơn nữa, chúng tôi đưa ra giả định rằng B được lồng trong A:

aov(Y ~ A/B, data=d)
aov(Y ~ A + B %in% A, data=d)
aov(Y ~ A + A:B, data=d)

Do đó, trong lồng ghép, chúng tôi thêm cả hai – hiệu ứng chính và sự tương tác.

Hiệu ứng ngẫu nhiên trong ANOVA Cổ điển

aov cũng có thể đối phó với các hiệu ứng ngẫu nhiên cung cấp mọi thứ đang được cân bằng. Giả sử A là hiệu ứng ngẫu nhiên đơn lẻ, ví dụ: một chỉ số chủ đề.

aov ( Y ~ Error ( A ) , data = d )

Chúng ta giả định rằng A là ngẫu nhiên, B là cố định cũng như được lồng trong A. 

aov(Y ~ B + Error(A/B), data=d)

hoặc B và X được giao nhau (tương tác) trong các mức A ngẫu nhiên.

aov ( Y ~ ( B * X ) + Error ( A / ( B * X )) , data = d )

Hoặc B và X trong A ngẫu nhiên được phân loại theo (không lồng nhau) G và H:

aov ( Y ~ ( B * X * G * H ) + Error ( A / ( B * X )) + ( G * H ) , data = d )

Do đó, công việc kinh doanh Lỗi này có thể trở nên khó hiểu và các yêu cầu về số dư, hơi mệt mỏi. Do đó, đối với các mô hình hiệu ứng ngẫu nhiên, việc chuyển sang lme4 thường dễ dàng hơn.

Bảng ANOVA trong R

Giả sử, chúng tôi đã thu thập dữ liệu và các giá trị X của chúng tôi đã được nhập vào R dưới dạng một mảng được gọi là dữ liệu. Giá trị X và Y là dữ liệu.Y.

Bây giờ, chúng ta sẽ tìm các giá trị ANOVA cho dữ liệu. Sau đó, hãy làm theo các bước sau:

  • Đầu tiên, chúng tôi sẽ đưa dữ liệu của mình vào một mô hình. > data.lm = lm (data.Y ~ data.X).
  • Tiếp theo, chúng ta sẽ nhận R để tạo ra một bảng ANOVA bằng cách gõ:> anova (data.lm).
  • Kết quả là chúng ta sẽ có một bảng ANOVA!

Giá trị được trang bị

Loại:

> data.fit = fitted(data.lm)

để có được các giá trị phù hợp của mô hình.

Kết quả là, nó cung cấp cho chúng ta một mảng có tên là “data.fit” chứa các giá trị phù hợp của data.lm.

Phần dư

Chúng tôi sử dụng điều này để lấy phần dư của mô hình.

> data.res = resid(data.lm)

Kết quả là bây giờ, chúng ta có một mảng các phần dư.

Kiểm tra giả thuyết

  • Trong trường hợp nếu chúng tôi đã tìm thấy bảng ANOVA cho dữ liệu của mình, thì chúng tôi có thể tính toán thống kê thử nghiệm của mình từ những con số đã cho.
  • Nếu chúng ta muốn tìm F – lượng tử được cho bởi F (0,95; 3,24)

Tìm cái này bằng cách gõ:

> qf(.97, 5, 23)
  • Nếu chúng ta muốn tìm lượng tử t được cho bởi t ( 0,975, 1,2, 20 )

Loại:

> qt(0.975, 1.2, 20)      #Calculating the t-quantile 

Đầu ra:

P – giá trị

Trong trường hợp nếu chúng ta muốn nhận giá trị p cho F – quantile, chẳng hạn, 2,84, với bậc tự do 3 và 24, chúng ta sẽ nhập

>pf(3.75, 2, 26) 

Normal Q-Q plot

Nói chung, chúng tôi sử dụng “data.lm để lấy xác suất bình thường cho phần dư tiêu chuẩn của dữ liệu của chúng tôi.

Mặc dù, chúng tôi đã phù hợp dữ liệu của mình với một mô hình, nhưng bây giờ chúng tôi sẽ cần phần dư được sinh viên hóa:

> data.stdres = rstandard(data.lm)

Ngoài ra, hãy nhập cái này để tạo cốt truyện:

> qqnorm ( data. stdres )

Sau đó, để xem dòng, hãy nhập:

> qqline ( data. stdres )

Bản tóm tắt

Chúng tôi đã nghiên cứu ANOVA trong R với các loại và tính chất khác nhau của chúng. Nó rất hữu ích trong việc điều tra dữ liệu bằng cách so sánh phương tiện của các tập con dữ liệu. Tuy nhiên, nếu bạn có bất kỳ sự nhầm lẫn nào về ANOVA trong R, hãy hỏi trong phần bình luận.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now