Thống kê cho khoa học dữ liệu | Bài 9: Ước lượng giá trị trung bình của quần thể

by Ra là thế

Giải thích về ước lượng khoảng trong thống kê cho khoa học dữ liệu

Ước lượng khoảng giá trị trung bình của quần thể rất hay được sử dụng trong cuộc sống.

Chẳng hạn như thống kê chiều cao trung bình của nam giới cả nước. Hay đánh giá độ bền của sản phẩm sản xuất được của một nhà máy. Hay vật giá trung bình hiện nay…

Phân bố của mẫu chính là chìa khóa

Nếu biết được phân bố mẫu trông như thế nào thì ta sẽ dễ dàng thiết lập khoảng tin cậy (CI) và tính toán giá trị.

Từ đó sử dụng giá trị trung bình để tính toán khoảng trung bình của dữ liệu cha hay quần thể.

Các bước thực hiện ước lượng khoảng giá trị trung bình

Bước 1: tạo dữ liệu mẫu

Ta sẽ tạo mẫu dữ liệu bằng cách trích xuất ngẫu nhiên từ quần thể. Gọi giá trị trung bình của quần thể là [math]\mu[/math], độ lớn của dữ liệu mẫu là [math]n[/math].

>>>> Xem thêm: tại sao người trẻ thường không hạnh phúc?

Bước 2: Tính công thức ước lượng từ dữ liệu mẫu.

Ta đã biết trong bài 3.2 giá trị trung bình của dữ liệu mẫu là công thức ước lượng bất thiên của giá trị trung bình [math]\mu[/math] của quần thể.

Ta gọi giá trị trung bình của dữ liệu mẫu là [math]\bar{x}[/math]

Bước 3: Xác định khoảng tin cậy.

Thông thường ta có thể xác định khoảng tin cậy là 95%. Tùy từng trường hợp mà ta sẽ xác định khoảng tin cậy cho phù hợp.

>>>> Xem thêm: những khái niệm cơ bản của thống kê suy diễn

Bước 4: Xem xét phân bố mẫu.

Đây là một việc quan trọng trong thống kê cho khoa học dữ liệu.

Giá trị trung bình của dữ liệu mẫu sẽ có phân bố như thế nào?

Trong bài trước, ta đã biết trung bình của phân bố mẫu của giá trị trung bình mẫu [math]\bar{x}[/math] sẽ trùng khớp với giá trị trung bình của quần thể [math]\mu[/math].

Với [math]\sigma[/math] là độ lệch chuẩn của quần thể, thì phân tán của phân bố mẫu của giá trị trung bình mẫu [math]\bar{x}[/math] sẽ là:

[math]\frac{\sigma^2}{n}[/math].

Và độ lệch chuẩn sẽ là căn của phân tán:

[math]\frac{\sigma}{\sqrt{n}}[/math].

Nếu quần thể có phân bố chuẩn, thì tất nhiên mẫu dữ liệu của chúng ta cũng sẽ có phân bố chuẩn. Nhưng nếu quần thể không có phân bố chuẩn thì sao?

Lúc này ta cần lấy mẫu sao cho độ lớn của [math]n[/math] là đủ lớn. Khi đó, phân bố mẫu của [math]\bar{x}[/math] sẽ gần giống hay xấp xỉ với phân bố chuẩn. Đây chính là định lý giới hạn trung tâm mà chúng ta đã bàn tới ở bài 3.2 trong series thống kê cho khoa học dữ liệu này.

Nói nãy giờ, chúng ta cần nắm được 2 ý sau:

  • Nếu quần thể có phân bố chuẩn thì không cần quan tâm đến độ lớn [math]n[/math] của mẫu, phân bố mẫu của [math]\bar{x}[/math] chắc chắn sẽ là phân bố chuẩn.
  • Nếu quần thể không có phân bố chuẩn nhưng chỉ cần [math]n[/math] đủ lớn thì phân bố mẫu của [math]\bar{x}[/math] sẽ gần giống với phân bố chuẩn.

Nếu quần thể không có phân bố chuẩn nhưng chỉ cần [math]n[/math] đủ lớn thì phân bố mẫu của [math]\bar{x}[/math] sẽ gần giống với phân bố chuẩn.

Ở đây, hãy xem [math]n[/math] là đủ lớn để phân bố mẫu của [math]\bar{x}[/math] là phân bố chuẩn với giá trị trung bình là [math]\mu[/math] và phương sai là [math]\frac{\sigma^2}{n}[/math]. Độ tin cậy được lấy ở đây là 95%. Khi đó khoảng giá trị của điểm [math]z[/math] sẽ là -1/96 ~ 1.96. Điểm [math]z[/math] lúc này sẽ được chuẩn hóa theo công thức:

[math]z=\frac{\bar{x}-\mu}{\frac{\sigma}{\sqrt{n}}}[/math]

Bước 5: Tính toán giá trị của [math]\mu[/math] trong khoảng 95%.

Trong khoảng 95% thì [math]z[/math] sẽ nằm trong khoảng [math]-1.96 < z < 1.96[/math]. Hay:

[math]-1.96 < \frac{\bar{x}-\mu}{\frac{\sigma}{\sqrt{n}}} < 1.96[/math]

Từ đây ta có thể ước lượng được [math]\mu[/math] của quần thể với độ tin cậy là 95%.

Tuy nhiên, vì không biết độ độ lệch chuẩn [math]\sigma[/math] của quần thể, nên thông thường [math]\sigma[/math] sẽ được ước lượng bằng độ lệch chuẩn bất biến thiên (là căn bậc hai của phân tán bất biến thiên) của dữ liệu mẫu. Vì khi [math]n[/math] đủ lớn thì phân bố của mẫu sẽ gần phân bố chuẩn. Công thức lúc này sẽ là:

[math]-1.96 < \frac{\bar{x}-\mu}{\frac{s’}{\sqrt{n}}} < 1.96[/math]

hay:

[math]\bar{x}-1.96\frac{s’}{\sqrt{n}} < \mu < \bar{x}+1.96\frac{s’}{\sqrt{n}}[/math]

với:

[math]s’^2=\frac{1}{n-1}\displaystyle\sum_{i=1}^{n}(x_i-\bar{x})^2[/math]

Ví dụ về ước lượng giá trị trung bình – ước lượng khoảng

Bài này chúng ta sẽ dùng dữ liệu thực tế để lấy ví dụ. Các bạn có thể tìm thấy những kiểu dữ liệu này rất nhiều trên kaggle.com. Trong bài thống kê cho khoa học dữ liệu lần này, dataset (dữ liệu) mà chúng ta sẽ sử dụng là dữ liệu về thu nhập trung bình ở Mỹ.

Dataset sẽ sử dụng cho ước lượng giá trị trung bình này

Các bạn có thể dataset này tại đây: US Household income statistic.

Chúng ta sẽ dùng python để thực hiện ví dụ này:

import pandas as pd
import seaborn as sb
%matplotlib inline

df = pd.read_csv("./data/kaggle_income.csv", encoding="ISO-8859-1")

df.head()

Nếu không dùng encoding thì sẽ có lỗi như sau:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf1 in position 20530: invalid continuation byte

Lỗi này phát sinh có thể do dataset có ký tự mà utf-8 không thể đọc được. Do đó, để có thể đọc được toàn bộ dữ liệu, chúng ta cần thêm encoding. Ở đây, encoding bằng ISO-8859-1 có thể giúp ta đọc được toàn bộ dữ liệu.

Lúc này dataset của chúng ta sẽ hiện ra như sau:

thống kê cho khoa học dữ liệu bài 9 - dataset ví dụ
thống kê cho khoa học dữ liệu bài 9 – dataset ví dụ

mỗi một record (dòng) sẽ đại diện cho 1 bang và thu nhập trung bình của hộ gia đình trong bang đó được biểu hiện qua cột Mean.

>>>> Xem thêm: Tương quan trong thống kê cho khoa học dữ liệu

Bây giờ, bằng seaborn, chúng ta sẽ xem phân bố của cột mean là như thế nào.

sb.displot(df["Mean"])
thống kê cho khoa học dữ liệu bài 9 - phân bố của quần thể
thống kê cho khoa học dữ liệu bài 9 – phân bố của quần thể

Chúng ta sẽ xem đây là phân bố của quần thể. Nhìn vào phân bố ta có thể thấy ngay đây không phải là phân bố chuẩn. Bây giờ chúng ta sẽ tính giá trị trung bình [math]\mu[/math] của quần thể này.

Chú ý 1: Thông thường ta sẽ không thể nào biết được [math]\mu[/math] của một quần thể.

Chú ý 2: Đây không phải là thu nhập trung bình của 1 hộ gia đình của nước Mỹ vì ta tính dựa trên thu nhập trung bình của mỗi tiểu bang chứ không phải thu nhập thực tế của 1 hộ gia đình.

Khi tính như thế ta cần tính đến trọng số của từng tiểu bang. Tuy nhiên, để đơn giản thì bài này ta sẽ xem đây là thu nhập trung bình của 1 hộ gia đình của Mỹ.

import numpy as np

np.mean(df["Mean"])

### Kết quả ###
66703.98604193568

Ta thu được $66703 tức là khoảng gần 67 ngàn đô la một năm.

Bây giờ chúng ta sẽ thử ước lượng khoảng giá trị này theo từng bước ở trên.

>>>> Xem thêm: cá vàng có thể thông minh hơn bạn, bạn có tin không?

Ước lượng khoảng cho dataset này

Bước 1: Tạo mẫu dữ liệu (sample) bằng cách trích xuất ngẫu nhiên từ quần thể trên.

thống kê cho khoa học dữ liệu bài 9 - dữ liệu mẫu được trích xuất
thống kê cho khoa học dữ liệu bài 9 – dữ liệu mẫu được trích xuất

Từ mô tả trên ta thấy mẫu dữ liệu của quần thể có tổng cộng 32526 record. Từ đây, ta sẽ trích xuất ngẫu nhiên 1000 record để tạo mẫu dữ liệu.

sample_df = df.sample(n=1000)

Tiếp theo chúng ta thử xem phân bố của mẫu là như thế nào.

sb.displot(sample_df["Mean"])
thống kê cho khoa học dữ liệu bài 9 - phân bố của mẫu số liệu
thống kê cho khoa học dữ liệu bài 9 – phân bố của mẫu số liệu

nó khá giống với phân bố của quần thể.

Bước 2: Tính công thức ước lượng mẫu

Vì ta đang ước lượng khoảng giá trị trung bình của quần thể. Nên công thức tính sẽ là giá trị trung bình của mẫu.

np.mean(sample_df["Mean"])

Kết quả ra được 67968.913 đô la.

Bước 3: Xác định khoảng tinh cậy

Ở đây chúng ta sẽ lấy khoảng tin cậy là 95%.

Bước 4: xem xét phân bố mẫu của công thức ước lượng

Như ta đã nói ở trên, nếu quần thể có phân bố chuẩn, thì tất nhiên mẫu dữ liệu của chúng ta cũng sẽ có phân bố chuẩn. Nếu quần thể không có phân bố chuẩn thì ta sẽ cố gắng lấy mẫu sao cho [math]n[/math] là đủ lớn.

[math]n = 1000[/math] là có đủ lớn? Câu trả lời là . Chi tiết sẽ được giải thích ở bài sau nhé!

Bước 5: Tính toán ước lượng khoảng giá trị cho [math]\mu[/math]

Bây giờ ta sẽ ước lượng dựa vào công thức đã có ở phần trên:

from scipy import stats
n=1000
sample_mean = np.mean(sample_df["Mean"]) # Trung bình của mẫu dữ liệu
sample_var=stats.tvar(sample_df["Mean"]) # phân tán bất biến thiên của mẫu dữ liệu
stats.norm.interval(confidence=0.95,loc=sample_mean,scale=np.sqrt(sample_var/n)) # khoảng trung bình của quần thể

Ta sẽ được kết quả: (66091.43789174319, 69846.38810825681). Nghĩa là ở độ tin cậy 95% (confidence = 0.95), thì [math]\mu[/math] của quần thể sẽ rơi vào khoảng $66,091~$69,846.

Ở trên, chúng ta đã tính được giá trị thực tế (!?) [math]\mu[/math] là $66,703. Do đó, ước lượng trên là chính xác.

Tổng kết

Ở bài này, chúng ta đã cùng nhau thực hiện việc ước lượng khoảng cho giá trị trung bình của một quần thể.

  • Để ước lượng giá trị trung bình của quần thể, ta sử dụng giá trị trung bình dữ liệu mẫu làm công thức ước lượng.
  • Khi [math]n[/math] đủ lớn, cho dù quần thể không có phân bố chuẩn thì mẫu dữ liệu cũng sẽ có phấn bố gần phân bố chuẩn.

Ước lượng khoảng cho giá trị trung bình có ba ý chính mà bạn cần nhớ:

  • Phân bố của quần thể có phải là phân bố chuẩn hay không?
  • Phân tán của quần thể đã biết hay chưa?
  • Dữ liệu mẫu có độ lớn là bao nhiêu?

>>>> Khi nào là lúc bạn hối hận nhất?

>>>> Có phải ánh sáng xanh là thủ phạm làm bạn mất ngủ?

You may also like

Leave a Comment

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00