Độ lệch trung bình python pandas

Statistics [thống kê] là một nhánh của toán học, thực hiện thu thập, phân tích, trí tuệ và biểu diễn một lượng lớn dữ liệu

Là cựu sinh viện Toán Ứng Dụng và Tin Học của đại học Bách Khoa Hà Nội, nhưng sau 4 năm không động tới, tôi thậm chí còn chả nhớ nổi một khái niệm đã học ở trường, không phân biệt nổi phương sai và . Sau quãng thời gian đi làm, tôi nhận ra thống kê là một bộ môn thực thi [chứ không phải lý thuyết] đầy thú vị. Ta lấy một ngăn dữ liệu, soi mói theo các góc cạnh khác nhau để tìm ra những “bí ẩn” trong ngăn dữ liệu đó. Đây cũng chính là nền tảng của ngành “khoa học dữ liệu" đang được xem là ngành hot nhất hiện nay

Tôi tự nghiên cứu thống kê vì muốn có khả năng quan sát dữ liệu, sử dụng các công cụ lập trình để hiểu rõ ràng mọi khái niệm cần thiết, chứ không học bừa như sinh viên để lấy điểm, cắm đầu vào tính toán phân tích

Loạt bài này để tìm hiểu các khái niệm trong thống kê, tìm hiểu các khái niệm đó
Bằng tiếng Anh, sử dụng Python để thiết lập các hàm toán học sử dụng trong tính toán thống kê . Hạn chế tối đa việc sử dụng các khái niệm toán học, các công thức tự xuất hiện.

Thống kê là một nhánh của toán học, có tên tiếng Anh là Statistics /stəˈtɪstɪks/. Ở trường học hay đưa ra khái niệm rõ ràng kèm theo bảng kê, nhưng ở đây tôi thấy không [chưa] cần thiết phải đưa ra kết quả rõ ràng

Dữ liệu /ˈdeɪtə/ — số nhiều của dữ liệu /ˈdeɪtəm/. Data.
Ta sẽ sử dụng danh sách Python để chứa dữ liệu.

data = [0.0, 0.25, 0.25, 1.25, 1.5, 1.75, 2.75, 3.25, 100]

Dữ liệu có thể là một tập hợp đầy đủ các giá trị cần xem xét [dân số /pɒpjʊˈleɪʃ[ə]n/ tập hợp], hoặc chỉ bao gồm một phần nhỏ trong bộ dữ liệu [mẫu /ˈsɑːmp[ə]l/ mẫu]

Khi sử dụng các hàm thống kê, ta sẽ thực hiện chúng trên 1 mẫu hoặc 1 quần thể

có nghĩa là /miːn/

mean hay full là trung bình số học, là tổng số của tất cả các số trong dữ liệu, chia cho điểm dữ liệu [điểm dữ liệu]. Có nghĩa là được ký hiệu bằng ký tự Latinh “muy”. μ

Specify the Vietnamese call here is trung bình. Trong tiếng Anh, mean hay được gọi là trung bình [trung bình], mặc dù đây chỉ là một trong nhiều cách tính trung bình toán học khác

Mean là một giá trị được sử dụng để biểu diễn điểm trung tâm [vị trí trung tâm] của dữ liệu. Tính trên Python

def mean[data]:
return sum[data]/len[data]
mu = mean[data] # mu - đọc là muy, là tên tiếng Anh của chữ latin: μ
print[mu]
# 12.333333333333334

có nghĩa là rất dễ bị “lệch” khi dữ liệu có những giá trị rất khác biệt so với các giá trị còn lại, ví dụ số 100 trong dữ liệu ở trên là một giá trị rất khác. By the, if only used mean to give up “cảm nhận" về điểm trung tâm của bộ dữ liệu sẽ không được xác thực. Người ta đưa ra khái niệm bổ sung về trung tâm để tính điểm trung tâm theo một cách khác, mà giá trị thu được sẽ biểu thị điểm trung tâm một cách “tốt hơn”

trung vị /ˈmiːdɪən/

median — giá trị ở giữa [giá trị trung bình]

Xác suất thống kê tiếng Việt gọi đây là trung vị.
Ta sắp xếp dữ liệu theo chiều tăng dần, sau đó xác định giá trị ở giữa. Khi xác định giá trị ở giữa, xảy ra 2 trường hợp.
- data point is even. lấy 2 điểm ở giữa và lấy giá trị trung bình [cách làm này gọi là tính “trung bình của hai điểm ở giữa”].
- number data point is single. lấy điểm luôn ở giữa.

def median[data]:
data = sorted[data]
n = len[data]
if n % 2 == 1:
return data[n//2]
else:
i = n//2
return [data[i - 1] + data[i]]/2
median[data]
# 1.5

Rõ ràng rõ ràng, trung vị [1. 5] phản ánh điểm giữa của tệp dữ liệu chính xác hơn so với mean [12. 333333333333334]

trung bình thấp và trung bình cao

trung vị có thể là một giá trị không trùng với 1 điểm dữ liệu cụ thể [trường hợp có điểm dữ liệu ngày], mà có lúc người ta muốn lấy lại một điểm dữ liệu để làm điểm trung tâm của bộ dữ liệu. Trung bình thấp là điểm dữ liệu nhỏ hơn trong 2 điểm ở giữa, trung bình cao là điểm dữ liệu lớn hơn trong 2 điểm ở giữa

def median_low[data]:
data = sorted[data]
n = len[data]
if n % 2 == 1:
return data[n//2]
else:
return data[n//2-1]
def median_high[data]:
data = sorted[data]
n = len[data]
return data[n//2]

nghĩa là có vẻ “toán học” hơn, trung bình có vẻ trực quan hơn. Mỗi giá trị sẽ được sử dụng trong từng trường hợp với yêu cầu cụ thể

chế độ /məʊd/

Trong định nghĩa tiếng Việt gọi là “mốt” 😂
Giá trị xuất hiện nhiều lần nhất trong tệp dữ liệu.

def mode[data]:
dmax = data[0]
for d in data:
if data.count[d] > data.count[dmax]:
dmax = d
return dmax
mode[data]
# 0.25

With mode, ta could handle both data file not number [nominal /ˈnɒmɪn[ə]l/]

def mean[data]:
return sum[data]/len[data]
0

Vì vậy nếu một tập tin có nhiều giá trị cùng xuất hiện nhiều lần [số lần bằng nhau] thì chế độ sẽ là giá trị nào?

Độ lệch /diːvɪˈeɪʃ[ə]n/

Nếu chỉ đại diện cho 1 tập dữ liệu bằng giá trị trung bình hoặc trung bình, thì 2 tập tin sau đó được coi là giống nhau

def mean[data]:
return sum[data]/len[data]
1

Rõ ràng ta cần thêm một thước đo để có thể thực hiện tập trung hay phân tán của các giá trị so với điểm ở giữa. Suy nghĩ đơn giản, có thể tính giá trị trung bình của độ lệch của mỗi điểm dữ liệu so với mean

def mean[data]:
return sum[data]/len[data]
2____13
def mean[data]:
return sum[data]/len[data]
4

Nhưng bởi có nghĩa là giá trị trung bình, nên tổng các “độ chênh lệch” này sẽ luôn bằng

mu = mean[data] # mu - đọc là muy, là tên tiếng Anh của chữ latin: μ
print[mu]
3. Cách tính tự suy nghĩ này không ổn định, ta thử một cách khác, sử dụng trung bình các giá trị tuyệt đối của các bậc thang. [1]

def mean[data]:
return sum[data]/len[data]
5
def mean[data]:
return sum[data]/len[data]
6

With value 2. 6666666666666665, có thể hiểu rằng các điểm trong tập dữ liệu được phân bố cách điểm trung tâm [ở ví dụ này là có nghĩa là] một khoảng trung bình là ~2. 6

Công thức tự nghĩ này, thực chất có một tên chính hệ thống trong khoa học là. Độ lệch tuyệt đối trung bình — trung bình độ lệch tuyệt đối, viết tắt là MAD. Độ lệch ở đây có thể hiểu là độ lệch so với giá trị trung tâm, tính bằng nghĩa là HOẶC trung vị [tuỳ trường hợp cụ thể sẽ nêu rõ]. Giá trị MAD được chọn là “tốt” để mô tả mức độ phân tán của bộ dữ liệu, ít bị ảnh hưởng bởi giá trị “lệch”

Khi độ lệch càng lớn thì dữ liệu càng nằm phân tán, độ lệch nhỏ tức là dữ liệu xung quanh điểm trung tâm

Phương pháp sai và độ lệch [tiêu] chuẩn

phương sai /ˈvɛːrɪəns/ và độ lệch chuẩn /diːvɪˈeɪʃ[ə]n/

Đây là hai khái niệm phổ biến trong mọi cuốn sách viết về thống kê.
Dưới góc độ của một người mới bắt đầu học, tôi không hiểu lý do đánh lừa tại sao họ được sử dụng. Hầu hết, các cuốn sách sẽ chỉ giới thiệu tên, ký hiệu và công thức mà không giải thích được tại sao. Có thể bởi vì đây là các khái niệm đã có từ lâu, được phổ biến rộng rãi.
Khái niệm phương sai [phương sai, thường viết tắt là var], theo tôi hiểu là “bình phương của sai lệch [trình độ]”, được giới thiệu là một công thức tính. giá trị trung bình của tổng các độ lệch bình phương

def mean[data]:
return sum[data]/len[data]
7____18

Khái niệm lệch chuẩn [độ lệch CHUẨN, thường viết tắt là STD hay SD], không hiểu từ đâu ra mà được cho là “tiêu chuẩn” [tiêu chuẩn]. Khái niệm này được định nghĩa bằng công thức tính. căn bậc 2 của phương sai

def mean[data]:
return sum[data]/len[data]
9
mu = mean[data] # mu - đọc là muy, là tên tiếng Anh của chữ latin: μ
print[mu]
0
mu = mean[data] # mu - đọc là muy, là tên tiếng Anh của chữ latin: μ
print[mu]
1
mu = mean[data] # mu - đọc là muy, là tên tiếng Anh của chữ latin: μ
print[mu]
2

STD là một cách tính độ lệch theo kiểu khác [so với MAD]. Nhưng ý nghĩa thì tương tự MAD, giá trị của nó biểu thị mức độ phân tán của dữ liệu xung quanh điểm trung tâm. STD has an learning symbol. sigma σ. Và phương sai, sẽ được ký hiệu là sigma bình phương σ²

Ta biết ý nghĩa của giá trị STD lớn hay nhỏ phản ánh dữ liệu phân bố tập tin xung quanh điểm trung tâm hay rời xa nó [ở đây có nghĩa là]. Nhưng giá trị phương sai bằng 10 khác gì so với nó bằng 16? . Thì phương sai có đơn vị là cm² — rõ ràng đơn vị đo diện tích này không có ý nghĩa gì về mặt thống kê khi đang xử lý chiều cao của cây mạ. Phương sai là một giá trị có thể hữu ích khi đưa vào các công thức tính toán, nhưng không mang nhiều ý nghĩa về mặt thống kê.
Giả sử tập dữ liệu [1,5,9] là giá trị chiều cao [cm] của các [3] cây mạ sau 5 ngày. Thì variance có đơn vị là cm² — rõ ràng đơn vị đo diện tích này không có ý nghĩa gì về mặt thống kê khi đang xử lý chiều cao của cây mạ. Variance là một giá trị có thể hữu ích khi đưa vào các công thức tính toán, nhưng không mang nhiều ý nghĩa về mặt thống kê.
STD với cách tính trên, có thể hiển thị các điểm được phân bố ở đâu mà cách điểm có nghĩa là một khoảng trung bình là ±3. 2 cm.

Giá trị MAD được cho là “tốt” hơn để mô tả mức độ phân tán của bộ dữ liệu, ít bị ảnh hưởng bởi các giá trị khác, còn STD thích hợp khi tính toán các công thức toán học và được sử dụng nhiều trong lý do . Giá trị phương sai để làm gì, có thể phải tiếp tục khám phá thêm mới được biết

Với giá trị trung bình/trung vị và độ lệch, ta đã có một hình dung chính xác hơn về tệp dữ liệu, có điểm trung tâm ở đâu, dữ liệu phân bố thưa hay xung quanh điểm trung tâm. Thế nhưng với những giá trị đó, ta không thể cấu hình dữ liệu nằm tập trung về phía trái điểm trung tâm hay rải đều về 2 phía. By vậy cần thêm khái niệm “phân phối” để định hình bộ dữ liệu có “hình dáng” thế nào, các điểm dữ liệu được phân bố ở đâu.
Chi tiết về các “phân phối” sẽ được khám phá ở bài sau.

Bài viết tham khảo phần lớn từ tài liệu của thư viện mới trong Python 3. 4. thống kê https. // tài liệu. con trăn. org/3/library/statistics. html

Mã dựa trên mã của thư viện Python [nhưng đã làm đơn giản hơn nhiều]. https. //github. com/trăn/cpython/cây/3. 6/Lib/thống kê. py

Còn tiếp…
HVN tại http. //www. gia đình. tổ chức/và http. // pymi. vn

Đăng ký học #Python tại #HàNội , lớp khai giảng giữa tháng 4, 2017. https. // pymi. vn/

Nhập email vào http. //mời. pymi. vn/ để nhận thư mời tham gia diễn đàn hỏi đáp Python, Django, Golang, Linux …

Chủ Đề