Xin chào người đọc! Hôm nay chúng tôi sẽ tập trung vào một bài kiểm tra thống kê quan trọng trong khoa học dữ liệu - thử nghiệm ANOVA trong chương trình Python, một cách chi tiết.ANOVA test in Python programming, in detail. Vì vậy, hãy để chúng tôi bắt đầu !! Trong lĩnh vực khoa học dữ liệu và học máy, dữ liệu cần được hiểu và xử lý trước khi mô hình hóa. Đó là, chúng ta cần phân tích mọi biến của bộ dữ liệu và độ tin cậy của nó về sự đóng góp của nó cho giá trị mục tiêu. Thông thường có hai loại biến Dưới đây là các thử nghiệm thống kê được sử dụng chủ yếu để phân tích các biến số: Thử nghiệm ANOVA là một thử nghiệm thống kê phân loại, tức là nó hoạt động trên các biến phân loại để phân tích chúng. Thử nghiệm ANOVA là một thử nghiệm thống kê để phân tích và làm việc với sự hiểu biết về các biến dữ liệu phân loại. Nó ước tính mức độ mà một biến phụ thuộc bị ảnh hưởng bởi một hoặc nhiều yếu tố dữ liệu phân loại độc lập. is a statistical test to analyze and work with the understanding of the
categorical data variables. It estimates the extent to which a dependent variable is affected by one or more independent categorical data elements.Sự xuất hiện của bài kiểm tra ANOVA
Bài kiểm tra ANOVA là gì?
Với thử nghiệm ANOVA, chúng tôi ước tính và phân tích sự khác biệt về giá trị trung bình thống kê của mỗi nhóm của biến phân loại độc lập.
Giả thuyết về thử nghiệm ANOVA
Cũng như tất cả đều biết, các tuyên bố giả thuyết được thể hiện bằng hai loại: giả thuyết null và giả thuyết thay thế, tương ứng.
- Trong trường hợp thử nghiệm ANOVA, giả thuyết null của chúng tôi sẽ tuyên bố như sau: Giá trị trung bình của tất cả các nhóm/loại của các biến là như nhau.Null hypothesis would claim the following: “The statistical mean of all the groups/categories of the variables is the same.”
- Mặt khác, giả thuyết thay thế sẽ tuyên bố như sau: Giá trị thống kê của tất cả các nhóm/loại của các biến không giống nhau.Alternate Hypothesis would claim as follows: “The statistical mean of all the groups/categories of the variables is not the same.”
Đã nói điều này, bây giờ chúng ta hãy tập trung vào các giả định hoặc cân nhắc cho thử nghiệm ANOVA.
Giả định của thử nghiệm ANOVA
- Các yếu tố dữ liệu của các cột tuân theo phân phối bình thường.
- Các biến chia sẻ một phương sai chung.
Thử nghiệm ANOVA trong Python - Cách tiếp cận thực tế đơn giản!
Trong ví dụ này, chúng tôi sẽ sử dụng bộ dữ liệu dự đoán số lượng cho thuê xe đạp trong đó chúng tôi được yêu cầu dự đoán số lượng khách hàng sẽ chọn một chiếc xe đạp thuê dựa trên các điều kiện khác nhau được cung cấp.
Bạn có thể tìm thấy bộ dữ liệu ở đây!
Vì vậy, ban đầu, chúng tôi tải tập dữ liệu vào môi trường Python bằng hàm read_csv[]
. Hơn nữa, chúng tôi thay đổi kiểu dữ liệu của các biến trên [EDA] thành kiểu dữ liệu được xác định. Chúng tôi cũng sử dụng mô -đun HĐH và thư viện PANDAS để hoạt động với các biến hệ thống và dữ liệu phân tích CSV tương ứng
import os import pandas #Changing the current working directory os.chdir["D:/Ediwsor_Project - Bike_Rental_Count"] BIKE = pandas.read_csv["day.csv"] BIKE['holiday']=BIKE['holiday'].astype[str] BIKE['weekday']=BIKE['weekday'].astype[str] BIKE['workingday']=BIKE['workingday'].astype[str] BIKE['weathersit']=BIKE['weathersit'].astype[str] BIKE['dteday']=pandas.to_datetime[BIKE['dteday']] BIKE['season']=BIKE['season'].astype[str] BIKE['yr']=BIKE['yr'].astype[str] BIKE['mnth']=BIKE['mnth'].astype[str] print[BIKE.dtypes]
Output:
instant int64 dteday datetime64[ns] season object yr object mnth object holiday object weekday object workingday object weathersit object temp float64 atemp float64 hum float64 windspeed float64 casual int64 registered int64 cnt int64 dtype: object
Bây giờ, là thời gian để áp dụng thử nghiệm ANOVA. Python cung cấp cho chúng tôi chức năng anova_lm[]
từ thư viện statsmodels
để thực hiện tương tự.
Ban đầu, chúng tôi thực hiện thử nghiệm bình phương tối thiểu thông thường trên dữ liệu, hơn nữa mà thử nghiệm ANOVA được áp dụng trên kết quả trên.Ordinary Least Square test on the data, further to which the ANOVA test is applied on the above resultant.
import statsmodels.api as sm from statsmodels.formula.api import ols for x in categorical_col: model = ols['cnt' + '~' + x, data = BIKE].fit[] #Oridnary least square method result_anova = sm.stats.anova_lm[model] # ANOVA Test print[result_anova]
Output:
df sum_sq mean_sq F PR[>F] season 3.0 9.218466e+08 3.072822e+08 124.840203 5.433284e-65 Residual 713.0 1.754981e+09 2.461404e+06 NaN NaN df sum_sq mean_sq F PR[>F] yr 1.0 8.813271e+08 8.813271e+08 350.959951 5.148657e-64 Residual 715.0 1.795501e+09 2.511190e+06 NaN NaN df sum_sq mean_sq F PR[>F] mnth 11.0 1.042307e+09 9.475520e+07 40.869727 2.557743e-68 Residual 705.0 1.634521e+09 2.318469e+06 NaN NaN df sum_sq mean_sq F PR[>F] holiday 1.0 1.377098e+07 1.377098e+07 3.69735 0.054896 Residual 715.0 2.663057e+09 3.724555e+06 NaN NaN df sum_sq mean_sq F PR[>F] weekday 6.0 1.757122e+07 2.928537e+06 0.781896 0.584261 Residual 710.0 2.659257e+09 3.745432e+06 NaN NaN df sum_sq mean_sq F PR[>F] workingday 1.0 8.494340e+06 8.494340e+06 2.276122 0.131822 Residual 715.0 2.668333e+09 3.731935e+06 NaN NaN df sum_sq mean_sq F PR[>F] weathersit 2.0 2.679982e+08 1.339991e+08 39.718604 4.408358e-17 Residual 714.0 2.408830e+09 3.373711e+06 NaN NaN
Xem xét giá trị ý nghĩa là 0,05. Chúng tôi nói rằng nếu giá trị P nhỏ hơn 0,05, chúng tôi giả định và tuyên bố rằng có sự khác biệt đáng kể về giá trị trung bình của các nhóm được hình thành bởi từng cấp độ của dữ liệu phân loại. Đó là, chúng tôi từ chối giả thuyết null.
Sự kết luận
Bằng cách này, chúng tôi đã đạt đến cuối chủ đề này. Hãy bình luận bên dưới, trong trường hợp bạn bắt gặp bất kỳ câu hỏi.
Đề xuất đọc: Bài kiểm tra chi bình phương trong Python
Chúc mừng phân tích !! 🙂