Hướng dẫn dùng histogram pandas python

Bài tập 4.   Dùng biến
>>> import thinkstats2
>>> hist = thinkstats2.Hist[[1, 2, 2, 3, 5]]
>>> hist
Hist[{1: 1, 2: 2, 3: 1, 5: 1}]
1, hãy xét xem liệu trẻ đầu lòng có nhẹ hơn hay nặng hơn trẻ sinh sau. Tính trị số d của Cohen để định lượng sự khác biệt giữa các nhóm. Khác biệt này so với khác biệt về thai kì như thế nào?

A histogram is a representation of the distribution of data. This function groups the values of all given Series in the DataFrame into bins and draws all bins in one matplotlib.axes.Axes. This is useful when the DataFrame’s Series are in a similar scale.

Parametersbystr or sequence, optional

Column in the DataFrame to group by.

Changed in version 1.4.0: Previously, by is silently ignore and makes no groupings

binsint, default 10

Number of histogram bins to be used.

**kwargs

Additional keyword arguments are documented in DataFrame.plot[].

Returnsclass:matplotlib.AxesSubplot

Return a histogram plot.

See also

DataFrame.hist

Draw histograms per DataFrame’s Series.

Series.hist

Draw a histogram with Series’ data.

Examples

When we roll a die 6000 times, we expect to get each value around 1000 times. But when we roll two dice and sum the result, the distribution is going to be quite different. A histogram illustrates those distributions.

>>> df = pd.DataFrame[
...     np.random.randint[1, 7, 6000],
...     columns = ['one']]
>>> df['two'] = df['one'] + np.random.randint[1, 7, 6000]
>>> ax = df.plot.hist[bins=12, alpha=0.5]

A grouped histogram can be generated by providing the parameter by [which can be a column name, or a list of column names]:

Khi làm việc với dữ liệu dạng bảng, bạn cần đào sâu vào dữ liệu để tìm kiếm những điều ẩn giấu. Để có thể hiểu được những đặc điểm của dữ liệu, phương pháp hiệu quả nhất là minh họa chúng dưới dạng đồ thị. Phần phụ lục này sẽ giới thiệu các loại đồ thị thường được sử dụng khi làm việc với dữ liệu dạng bảng.

Chúng ta sẽ sử dụng bộ dữ liệu California Housing để minh họa.

Box plot

Box plot thường được sử dụng để kiểm chứng xem dữ liệu có lệch không và hiển thị các điểm dữ liệu ngoại lệ. Xin bắt đầu mục này bằng hình dưới đây.

[Nguồn Understanding Boxplots]

Box plot là một biểu đố khác thường được dùng để biểu diễn phân bố dữ liệu và các điểm ngoại lệ. Trong hình vẽ trên, các điểm được định nghĩa như sau:

  • Trung vị [Median, đường màu vàng] là điểm phân chia các giá trị thành hai nửa, mỗi nửa có số lượng điểm bằng nhau.

  • Tứ phân vị thứ nhất [Q1] là trung vị của nửa bên trái trung vị. Nói cách khác, có đúng 25% số điểm dữ liệu nhỏ hơn Q1.

  • Tứ phân vị thứ ba [Q3] là trung vị của nửa bên phải trung vị. Nói cách khác, có đúng 25% số điểm dữ liệu lớn hơn Q3.

  • IQR là khoảng cách từ Q1 đến Q3. Khoảng này chứa đúng một nửa số điểm dữ liệu.

  • Điểm cực tiểu [Minimum] được định nghĩa là Q1 - 1.5*IQR là điểm nằm về phía trái của Q1 một khoảng gấp rưỡi IQR. Chú ý: điểm này không phải là giá trị nhỏ nhất của trường dữ liệu đang xét.

  • Điểm cực đại [Maximum] được định nghĩa tương tự, bằng Q3 + 1.5*IQR là điểm nằm về phía phải của Q3 một khoảng gấp rưỡi IQR. Điểm này cũng không phải là giá trị lớn nhất của trường dữ liệu đang xét.

  • Các điểm màu xanh nằm ngoài đoạn [cực tiểu, cực đại] được coi là các điểm ngoại lệ [outliers].

Khi sử dụng Box plot, một giả thiết được đặt ra là các điểm dữ liệu thông thường nên nằm trong khoảng [cực tiểu, cực đại]. Những điểm nằm ngoài khoảng này được coi là ở vị trí quá xa so với phần còn lại của dữ liệu.

Để hiểu tại sao lại lấy khoảng 1.5*IQR, hãy xem so sánh giữa boxplot và phân phối chuẩn như hình dưới đây

[Nguồn Understanding Boxplots]

Nếu các điểm dữ liệu tuân theo phân phối chuẩn, trung vị chính là trung bình. 50% số điểm cũng nằm rất gần với trung bình và chỉ có 0.7% số điểm nằm ngoài khoảng [cực tiểu, cực đại]. Các điểm cực đại, cực tiểu này cũng gần với vị trí \[3\sigma\]. Quy tắc \[3\simga\] nói rằng 99.7% các điểm trong phân phối chuẩn nằm trong khoảng \[\pm 3 \sigma\] của điểm trung bình. Có thể nói, boxplot là ước lượng gần đúng của quy tắc \[3 \sigma\] được khái quát lên với dữ liệu tuân theo phân phối bất kỳ.

Các giá trị cực tiểu và cực đại thường được dùng để làm điểm cắt của dữ liệu. Tức là những điểm nhỏ hơn cực tiểu sẽ bị cắt về cực tiểu, những điểm lớn hơn cực đại sẽ được cắt về cực đại. Xem thêm Dữ liệu số.

Đoạn code dưới đây thể hiện cách minh họa box plot cho cột housing_median_age. Mặc định, box plot được vẽ ở dạng thẳng đứng.

points = df[["housing_median_age"]].boxplot[figsize=[6,6], fontsize=18]

Trong hình này:

  • Đoạn thẳng màu xanh lục ở gần 30 là trung vị.

  • Cạnh dưới của box là Q1, cạnh trên là Q3.

  • Các điểm cực đại và cực tiểu không được minh họa trên hình. Điểm thấp nhất gần 0 là điểm dữ liệu có giá trị nhỏ nhất lớn hơn điểm cực tiểu. Lưu ý rằng điểm cực tiểu trong box plot không nhất thiết phải là một điểm dữ liệu. Tương tự, điểm cao nhất ở mức trên 50 là giá trị cao nhất của dữ liệu.

  • Với cột housing_median_age này, dữ liệu tương đối tập trung nên không có điểm ngoại lệ.

Xét sang cột median_house_value:

points = df[["median_house_value"]].boxplot[figsize=[6,6], fontsize=18]

Ở box plot này, ta thấy rằng có một vài điểm đen nằm trên mốc cực đại gần 500000. Một điểm nữa có thể nhận thấy rằng phần lớn các điểm dữ liệu [75%] có giá trị thấp hơn khoảng 270000. Box plot cũng giúp ta thấy dữ liệu bị lệch về phía nào.

Chủ Đề