Exploratory Data Analysis: Các nguyên tắc trình bày biểu đồ

7 Kinds of Data Stories
7 Kinds of Data Stories

Mục tiêu của trình bày biểu đồ là để giao tiếp thông tin rõ ràng, toàn vẹn, và hiệu quả hơn. Một biểu đồ được trình bày tốt sẽ khuyến khích sự tham gia của nhiều thành viên trong nhóm, cũng như giúp mọi người tập trung vào bài báo cáo hơn. Với tập dữ liệu đồ sộ, ta cần một cách hiệu quả để có thể hiểu được tính chất của tập dữ liệu đó. Hệ thống thị giác của con người là kênh đón nhận thông tin nhanh chóng và hiệu quả nhất nên việc nắm bắt các nguyên tắc khi trình bày là một kiến thức hữu ích.

Continue reading “Exploratory Data Analysis: Các nguyên tắc trình bày biểu đồ”

Statistical Inference: P Values

P Values

Trong bài viết này ta sẽ nói về p-values, không phải là một phương thức để kiểm định mà là một độ đo về tầm quan trọng của thống kê (nghĩa là xác suất của dữ kiện D xảy ra nếu (nhấn mạnh: “nếu”) giả thuyết đảo H_a là sự thật.). Tuy nhiên, bởi vì chúng phổ biến và chúng được sử dụng rất nhiều, và thường bị hiểu lầm hay diễn giải sai. Trong phần này, ta sẽ tập trung vào làm thế nào để phát sinh và diễn giải giá trị này một cách đúng đắn.

Notebooks: p_value.

Statistical Inference: Kiểm định giả thuyết thống kê (Hypothesis Testing)

Power

Việc xác định qui luật xác suất của các biến (variable) có mặt trong tổng thể (population) là một điều cần thiết trong xử lí số liệu. Bài toán ước lượng tham số (parameter estimation) mới chỉ giải quyết việc ước lượng tham số có mặt trong phân phối xác suất của tổng thể (probability distribution of population). Trong baì viết này, ta sẽ xây dựng các qui tắc đánh giá giả thuyết (evaluate hypothesis) về các tham số. Qua các qui tắc kiểm định, ta có thể biết được cách xây dựng các giả thuyết (NULL hypothesis) và đối thuyết (alternative hypothesis) trong từng trường hợp cụ thể. Bài toán kiểm định giả thuyết thống kê (hypothesis testing) là một bài toán lớn và quan trọng của thống kê toán học.

Notebooks: hypothesis_testing.

Statistical Inference: Tiệm cận (Asymptotics)

Coin plot 10000

Trong bài viết này ta sẽ thảo luận về tiệm cận (asymptotics), làm thế nào để miêu tả dáng điệu của thống kê khi kích thước mẫu ngày càng tiến đến vô cùng. Giả định kích thước mẫu và kích thước quần thể là vô cùng, điều này hữu ích cho việc suy diễn thống kê và xấp xĩ.

Notebooks: LoLN and CTL.

Continue reading “Statistical Inference: Tiệm cận (Asymptotics)”

Statistical Inference: Xác suất (Probability)

distribution
distribution

Trong bài viết này, ta sẽ khảo sát các khái niệm về xác suất (probability), là một số thực diễn tả khả năng xảy ra của một biến cố (event, outcome). Continue reading “Statistical Inference: Xác suất (Probability)”

Exploratory Data Analysis: Các hệ thống Plotting

xyplot plotting 2x2
Trong bài viết này, ta sẽ khảo sát tổng quan ba hệ thống plotting trong R. Mỗi hệ thống có điểm mạnh và điểm yếu riêng. Chúng ta sẽ tìm hiểu sơ về ý tưởng tổng quát của các hệ thống này. Ở các bài viết sau, ta sẽ đi vào chi tiết hơn.

Notebooks: explore_plot_sys.

Exploratory Data Analysis: K Means Clustering

 

K Means Clustering
K Means Clustering

Trong bài viết này, ta sẽ khảo sát về k-means clustering, một cách đơn giản khác để quan sát tập dữ liệu đa chiều (multi-dimensional data). Tương tự như hierarchical clustering, kĩ thuật này hữu ích khi bước đầu phân tích dữ liệu (quan sát mối quan hệ giữa các điểm dữ liệu, thuộc tính).

Notebooks: explore_kmeans_clustering.

Exploratory Data Analysis: Hierarchical Clustering

 

Hierarchical Clustering
Hierarchical Clustering

Hôm nay, chúng ta sẽ tìm hiểu về hierarchical clustering. Đây là kĩ thuật hữu ích trong giai đoạn đầu phân tích dữ liệu, nó giúp chúng ta hiểu rõ hơn về tập dữ liệu đang khảo sát (nhận dạng mẫu, mối quan hệ giữa các thuộc tính). Hierarchical clustering có nghĩa là tạo ra cây phân cấp các nhóm dữ liệu.

Notebooks: explore_hierarchical_clustering.

Exploratory Data Analysis: Các biểu đồ cơ bản

boxplot
boxplot

Trong bài viết này, ta sẽ thảo luận về exploratory graphs (các biểu đồ cơ bản). Đây là một công cụ quan trọng và đóng một vai trò đặc biệt trong qúa trình phân tích dữ liệu.

Notebooks: explore_basic_chart.

Lấy và làm sạch dữ liệu với R: Gom nhóm và kĩ thuật Chaining với dplyr

Ở bài viết trước, chúng ta đã học về năm thao tác chính trong dplyr: select(), filter(), arrange(), mutate(), và summarize(). Hàm summarize() rất mạnh mẽ trong việc áp dụng dữ liệu đã gom nhóm. Chúng ta tiếp tục làm việc với tập dữ liệu 225,000 packages của R. Ở đây, ta dùng file log July 8, 2014 (http://cran-logs.rstudio.com/).

Notebooks: r_group_by.

Lập trình với R: Ngày và Thời gian

Date and time
Date and time

R có một phương thức đặc biệt để biểu diễn ngày và thời gian. Đây là kiểu dữ liệu hữu dụng khi bạn làm việc với dữ liệu mà đòi hỏi giá trị thay đổi theo thời gian (time-series data) hay những dữ liệu chứa các thông tin như ngày sinh chẳng hạn.

Ngày được biểu diễn bởi lớp ‘Date’ và Thời gian được biểu diễn bởi lớp ‘POSIXct’ và ‘POSIXlt’. Bên trong nó, Ngày được lưu dưới dạng số ngày kể từ 1970-01-01 và Thời gian được lưu dưới dạng số giây kể từ 1970-01-01 (POSIXct) hoặc danh sách giây, phút, giờ (POSIXlt).

Notebooks: r_datetime.

Lập trình với R: vapply và tapply

tapply
tapply

Ở bài viết trước, chúng ta đã học về hai hàm thành viên quan trọng trong R đó là lapply() và sapply(). Cả hai đều nhận đầu vào là list, apply một hàm tương ứng với các phần tử trong list, sau đó kết hợp và trả về kết quả cuối cùng. lapply() luôn trả về một list, trong khi sapply() cố gắng tinh giản kết quả trả về.

Trong bài viết này, ta sẽ học về cách sử dụng vapply() và tapply(), mỗi hàm đóng một vai trò nhất định vào chiến lược Split-Apply-Combine. Chúng ta sẽ sử dụng cùng tập dữ liệu ở bài viết ‘lapply và sapply’.

Tập dữ liệu Flags lấy từ UCI Machine Learning Repository chứa thông tin chi tiết về quốc kỳ của các quốc gia. Để biết thêm thông tin các bạn có thể truy cập tại trang web sau: http://archive.ics.uci.edu/ml/datasets/Flags.

Notebooks: vapply_and_tapply.

Lập trình với R: lapply and sapply

lapply and sapply
lapply and sapply

Trong bài viết này, ta sẽ học cách sử dụng hàm lapply() và sapply(), hai trong số những hàm quan trọng trong R. Chúng được gọi là loop function trong nhóm hàm *apply(). Những hàm mạnh mẽ này, cùng với các hàm gần kề chúng (vapply() và tapply()) cung cấp các công cụ chính xác và tiện lợi trong chiến lược phân tích dữ liệu Split-Apply-Combine (tách-áp dụng-kết hợp). Những hàm *apply này sẽ TÁCH (SPLIT) dữ liệu ban đầu ra thành những thành phần nhỏ hơn, ÁP DỤNG (APPLY) một tác vụ nào đó lên các thành phần này, và KẾT HỢP (COMBINE) các kết quả này lại. Để tìm hiểu chi tiết hơn về chiến lược này ta có thể tham khảo trong bài báo của Hadley Wickham’s Journal of Statistical Software có tiêu đề là “The Split-Apply-Combine Strategy for Data Analysis”.

Trong suốt bài viết này, ta sẽ sử dụng tập dữ liệu Flags (quốc kỳ) từ UCI Machine Learning Repository. Tập dữ liệu này chứa thông tin chi tiết về quốc kỳ của các quốc gia. Để biết thêm thông tin hãy truy cập vào link này: http://archive.ics.uci.edu/ml/datasets/Flags.

Notebooks: lapply_and_sapply.

Lập trình với R: Functions

Function
Function

Functions là một trong những thành phần cơ bản của ngôn ngữ R. Chúng là những mẫu code nhỏ có thể sử dụng lại nhiều lần và được xem như các đối tượng khác trong R. Ở các bài viết trước, chắc hẳn chúng ta cũng đã sử dụng qua nhiều hàm dựng sẵn (built-in function). Một function bao gồm tên hàm và đi kèm theo là các đối số (parameters).

Notebooks: how_to_func.

Lập trình với R: Biểu đồ cơ bản

histogram
histogram

Một trong những điểm mạnh nhất của R, khi so với các ngôn ngữ lập trình khác, đó là ta có thể dễ dàng tạo ra các biểu đồ chất lượng cao một cách dễ dàng. Trong bài viết này, chúng ta sẽ học về các biểu đồ cơ bản trong R. Chúng ta còn có các thư viện đồ thị nâng cao khác nhưng sẽ không được đề cập đến ở đây đó là lattice, ggplot2, và ggvis. Ta có thể tham khảo bài viết theo hướng tiếp cận khác với ggplot2. Xem thêm ở link sau: http://varianceexplained.org/r/teach_ggplot2_to_beginners/

Notebooks: basic_charts.

Lập trình với R: Matrices và Data Frames

Matrices and Data Frames
Matrices and Data Frames

Trong bài viết này, chúng ta sẽ khảo sát về matrices và data frames. Cả hai đều biểu diễn cấu trúc dữ liệu dạng bảng (rectangular), nghĩa là chúng được sử dụng để lưu trữ dữ liệu gồm các dòng và cột. Sự khác biệt duy nhất giữa matrices và data frames đó là matrices chỉ có thể chứa duy nhất một kiểu dữ liệu, trong khi data frames có thể chứa nhiều kiểu dữ liệu khác nhau.

Notebooks: matrix_and_dataframe.

Lập trình với R: Truy xuất vector

Vector
Vector

Trong bài viết này, ta sẽ học cách truy xuất các thành phần trong vector dựa trên những điều kiện chúng ta chỉ đinh. Ví dụ, chúng ta chỉ quan tâm đến 20 phần tử đầu tiên trong vector, hay truy xuất các phần tử không mang giá trị NA, hay chỉ truy xuất các phần tử dương. Kết thúc bài viết này, chúng ta sẽ biết cách xử lý từng tình huống trên.

Notebooks: accessing_vectors.

Lập trình với R: Dữ liệu bị thiếu

Missing data
Missing data

Dữ liệu bị thiếu (missing values) đóng một vai trò quan trọng trong thống kê và phân tích dữ liệu. Thông thường, missing values không nên bị bỏ qua mà cần được nghiên cứu cẩn thận để xem xét xem điều gì khiến cho các missing values này bị thiếu. Trong R, NA được sử dụng để thể hiện các giá trị không tồn tại (not available) hay bị thiếu (missing) theo nghĩa thống kê. Trong bài viết này, ta sẽ tìm hiểu kỹ hơn về các giá trị này.

Notebooks: handling_missing_data.

Lập trình với R: Vectors

Vector
Vector

Hôm nay, chúng ta sẽ tìm hiểu về vector, một trong những kiểu dữ liệu đơn giản và thông dụng nhất trong R. Vectors có hai định dạng: atomic vectors (vector đơn cấu trúc) và list (vector đa cấu trúc). Atomic vector chỉ chứa duy nhất một kiểu dữ liệu. Trong khi đó, list có thể chứa nhiều kiểu dữ liệu khác nhau. Chúng ta sẽ tìm hiểu về atomic vector trước rồi sau đó đến list.

Notebooks: vector_in_r.