July 26, 2016

Hôm nay, đang ngồi xử lý số liệu thì gặp trường hợp số liệu trống không (missing value). Để thuận tiện cho các phân tích tiếp theo, thì loại bỏ “số liệu trống không” trong data.frame là rất cần thiết. Vì R không tính toán được các phân tích tiếp theo.

Loại bỏ số liệu trống không

Trong nghiên cứu, vì nhiều lý do, số liệu không thể thu thập được cho tất cả các đối tượng, hay không thể đo lường tất cả các biến số cho một đối tượng, đặc biệt các nghiên cứu theo thời gian (số liệu theo thời gian). Trong phạm vi bài viết, số liệu về sinh trưởng cây Keo lá liềm được thử nghiệm trên vùng cát ven biển (3 huyện của 3 tỉnh vùng BTB), với 4 công thức thí nghiệm (CTTN) khác nhau, theo dõi qua các độ tuổi khác nhau. Trong trường hợp đó, số liệu trống được xem là “missing value”, có thể gọi là số liệu trống không. Trong R xem các số liệu trống không là NA (xem hình dưới đây, ví dụ các đối tượng (id) từ 171 đến 177).


Có một số kiểm định thống kê đòi hỏi phải loại các số liệu trống không ra (vì không tính toán được) trước khi phân tích. Số liệu trống không trong ví dụ, là các biến của cây Keo lá liềm bị chết, nên không có số liệu. Vậy câu hỏi đặt ra, tại sao không loại bỏ trước khi nhập số liệu? Như trên mình có nói, trường hợp nghiên cứu là đánh giá các biến (các chỉ tiêu sinh trưởng) của cây Keo lá liềm ở các CTTN theo thời gian (qua các năm, các độ tuổi khác nhau). Trong quá trình theo dõi việc đối tượng bị mất, hay bị chết, đặc biệt trong công tác trồng vùng đất cát ven biển là điều khó tránh khỏi. Vấn đề được đặt ra tiếp theo, loại bỏ các số liệu trống không ra khỏi data để phân tích tiếp theo? Thông thường, mình hay vào file gốc xóa bỏ các dòng (đối tượng) trống không. Như vậy rất mất thời gian (thủ công), dễ sai sót. Tuy nhiên, trong R có một lệnh rất có ích cho việc này: na.omit. Cách sử dụng như sau:

> LeThuy_Age1.3=na.omit(LT_Age1.3)
Trong lệnh trên, chúng ta yêu cầu R loại bỏ các số liệu trống không trong data.frame (LT_Age1.3) và data.frame (LeThuy_Age1.3) mới đã được loại bỏ các số liệu trống không. Kết quả thể hiện trong hình dưới đây (để ý cột id và cột mới row.names).


Kết quả hình trên cho thấy (để ý dòng cuối cùng), cột id có số thứ tự cuối cùng là 227 và cột row.names có số thứ tự 243. Tức là, có 16 đối tượng có số liệu trống không đã được loại bỏ.

Từ đây (data.frame đã loại bỏ số liệu trống không – LeThuy_Age1.3) có thể xử lý thống kê thông thường.
Trong phạm vi bài viết, mục tiêu là phân tích một số thông số thống kê thông thường như: mean, sd (độ lệch chuẩn), se (sai số chuẩn), median, bách phân vị 75%, bách phân vị 25%, max, min...
 Kết quả tính thông số thống kê: mean, sd, se như sau:
#attach(LeThuy_Age1.3)
#head(LeThuy_Age1.3)
> library(psych)
> describeBy(LeThuy_Age1.3, group=CTTN, skew=F, range=F)
#result

group: CT 1
                       vars  n  mean   sd   se
Local*                    1 67  2.00 0.00 0.00
Age                       2 67  2.30 0.00 0.00
CTTN*                     3 67  1.00 0.00 0.00
stump_diameter            4 67  3.52 1.37 0.17
tree_height               5 67  1.47 0.45 0.05
canopy_diameter           6 67  1.99 0.48 0.06
main_trunk                7 67  2.00 0.78 0.10
bough_50_cm               8 67 13.73 5.24 0.64
phan_than                 9 67  0.67 0.47 0.06
song_chet                10 67  1.00 0.00 0.00
stump_diameter_growth    11 67  1.53 0.60 0.07
tree_height_growth       12 67  0.64 0.19 0.02
canopy_diameter_growth   13 67  0.86 0.21 0.03
litter_fall              14 67  0.19 0.05 0.01
-------------------------------------------
group: CT 2
                       vars  n  mean   sd   se
Local*                    1 80  2.00 0.00 0.00
Age                       2 80  2.30 0.00 0.00
CTTN*                     3 80  2.00 0.00 0.00
stump_diameter            4 80  3.77 1.37 0.15
tree_height               5 80  1.58 0.51 0.06
canopy_diameter           6 80  2.06 0.46 0.05
main_trunk                7 80  1.91 0.92 0.10
bough_50_cm               8 80 12.40 5.85 0.65
phan_than                 9 80  0.79 0.41 0.05
song_chet                10 80  1.00 0.00 0.00
stump_diameter_growth    11 80  1.64 0.60 0.07
tree_height_growth       12 80  0.69 0.22 0.02
canopy_diameter_growth   13 80  0.89 0.20 0.02
litter_fall              14 80  0.20 0.06 0.01
-------------------------------------------
group: CT 3
                       vars  n  mean   sd   se
Local*                    1 75  2.00 0.00 0.00
Age                       2 75  2.30 0.00 0.00
CTTN*                     3 75  3.00 0.00 0.00
stump_diameter            4 75  4.52 1.43 0.16
tree_height               5 75  1.92 0.58 0.07
canopy_diameter           6 75  2.20 0.44 0.05
main_trunk                7 75  1.83 0.88 0.10
bough_50_cm               8 75 14.33 5.59 0.65
phan_than                 9 75  0.95 0.23 0.03
song_chet                10 75  1.00 0.00 0.00
stump_diameter_growth    11 75  1.97 0.62 0.07
tree_height_growth       12 75  0.83 0.25 0.03
canopy_diameter_growth   13 75  0.96 0.19 0.02
litter_fall              14 75  0.23 0.07 0.01
-------------------------------------------
group: DC
                       vars  n  mean   sd   se
Local*                    1 50  2.00 0.00 0.00
Age                       2 50  2.30 0.00 0.00
CTTN*                     3 50  4.00 0.00 0.00
stump_diameter            4 50  4.19 0.79 0.11
tree_height               5 50  1.50 0.44 0.06
canopy_diameter           6 50  1.91 0.33 0.05
main_trunk                7 50  1.50 0.65 0.09
bough_50_cm               8 50 11.84 4.24 0.60
phan_than                 9 50  0.90 0.30 0.04
song_chet                10 50  1.00 0.00 0.00
stump_diameter_growth    11 50  1.82 0.34 0.05
tree_height_growth       12 50  0.65 0.19 0.03
canopy_diameter_growth   13 50  0.83 0.14 0.02
litter_fall              14 50  0.21 0.04 0.01
-------------------------------------------

#Tương tự cho các độ tuổi còn lại.


Tuy nhiên, để phân tích được các thông số thống kê như: bách phân vị 75%, bách phân vị 25%, max, min... Chúng ta lại sử dụng lệnh subset trong R mà bài trước mình đã giới thiệu. Sau khi subset riêng cho từng CTTN, thì việc tiếp theo rất đơn giản cho phân tích thống kê cũng như vẽ các biểu đồ theo ý muốn.

#> LeThuy_DC=subset(LeThuy_Age1.3, CTTN=="DC")
#> attach(LeThuy_DC)
#> head(LeThuy_DC)

> summary(LeThuy_DC)
         Local         Age        CTTN    stump_diameter
 Cam_Duong  : 0   Min.   :1.3   CT 1: 0   Min.   :1.460 
 Le_Thuy    :34   1st Qu.:1.3   CT 2: 0   1st Qu.:1.995 
 Trieu_Phong: 0   Median :1.3   CT 3: 0   Median :2.530 
                  Mean   :1.3   DC  :34   Mean   :2.601 
                  3rd Qu.:1.3   DC  : 0   3rd Qu.:2.913 
                  Max.   :1.3             Max.   :4.620 
 ------------------------------------------------------
 tree_height     canopy_diameter   main_trunk  
 Min.   :0.6000   Min.   :0.450   Min.   :1.000 
 1st Qu.:0.8050   1st Qu.:0.935   1st Qu.:2.000 
 Median :0.9400   Median :1.050   Median :2.500 
 Mean   :0.9859   Mean   :1.055   Mean   :2.676 
 3rd Qu.:1.2300   3rd Qu.:1.188   3rd Qu.:3.000 
 Max.   :1.4700   Max.   :1.650   Max.   :6.000 
 ---------------------------------------------
 bough_50_cm      phan_than        song_chet
 Min.   :1.000   Min.   :0.0000   Min.   :1 
 1st Qu.:1.000   1st Qu.:0.0000   1st Qu.:1 
 Median :2.000   Median :0.0000   Median :1 
 Mean   :1.912   Mean   :0.3529   Mean   :1 
 3rd Qu.:2.000   3rd Qu.:1.0000   3rd Qu.:1 
 Max.   :4.000   Max.   :1.0000   Max.   :1 
 ------------------------------------------
 stump_diameter_growth tree_height_growth
 Min.   :1.130         Min.   :0.4600   
 1st Qu.:1.538         1st Qu.:0.6225   
 Median :1.945         Median :0.7250   
 Mean   :2.001         Mean   :0.7585    
 3rd Qu.:2.237         3rd Qu.:0.9425   
 Max.   :3.550         Max.   :1.1300   
 ------------------------------------
canopy_diameter_growth  litter_fall   
 Min.   :0.3500         Min.   :0.0600 
 1st Qu.:0.7225         1st Qu.:0.0900 
 Median :0.8100         Median :0.1200 
 Mean   :0.8121         Mean   :0.1235 
 3rd Qu.:0.9100         3rd Qu.:0.1400 
 Max.   :1.2700         Max.   :0.2300 
#Tương tự cho các CTTN còn lại.

Vẽ biểu đồ cho đối tượng nghiên cứu
Biểu đồ hộp (boxplot)
 #library(ggplot2)
> l=ggplot(data=LeThuy_Age1.3, aes(LeThuy_Age1.3$CTTN, y=stump_diameter))+ theme_bw()+ theme_classic()+ geom_boxplot(aes(fill=CTTN))+ xlab("CTTN")+ ylab("stump diameter, cm")
> lt3=l+ geom_rangeframe()+ theme_tufte()+ scale_y_continuous(breaks=extended_range_breaks()(LeThuy_Age1.3$stump_diameter))



Biểu đồ tương quan

> lt=ggplot(data=LeThuy_Age1.3, aes(x=stump_diameter, y=tree_height))+ theme_bw()+ theme_classic()+ xlab("stump diameter, cm")+ ylab("tree height, m")+ geom_point(aes(color=CTTN, size=Main_trunk))+ geom_smooth(method="lm")
> lt2=lt+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(LeThuy_Age1.3$stump_diameter))+ scale_y_continuous(breaks=extended_range_breaks()(LeThuy_Age1.3$tree_height))



#library(ggExtra)
Biểu đồ tương quan kết hợp với type=”histogram”
 > ggMarginal(lt2, type="histogram", color="White", size=2)



Biểu đồ tương quan kết hợp với type=”density”
> ggMarginal(lt2, type="density", color="green", size=2)



=====================================================================
Tham khảo: Nguyễn Văn Tuấn (2014). Phân tích dữ liệu với R. Nxb Tổng hợp TP HCM.

0 comments:

chủ đề

Ăn của rừng bài báo khoa học bản quyền bành trướng Bảo vệ cây là bảo vệ chính mình biến đổi khí hậu Biển Đông Biết sai vẫn cứ làm biểu đồ biểu đồ hộp biểu đồ sai số chuẩn Biểu đồ tương quan Biểu đồ với nhãn bon-sai boxplot buoc-dau-nghien-cuu-khoa-hoc but-ky-doi-toi Cái tài Cái tâm Cái tầm canh tác đất dốc Cây xanh đô thị Cha chung không ai khóc cha nào con nấy Chân thiện mỹ chân trong chân ngoài chạy chức chạy quyền Che chở Chết toàn tập chọn cách ta sống chữ tín chuyện giờ mới kể có vấn đề Cơm áo gạo tiền Con cháu các cụ con người biến thái Con ông cháu cha công nghệ 4.0 correlation matrix corrgram corrplot Cứ đi rồi sẽ tới cuộc cách mạng 4.0 Đam mê đàn gảy tai trâu danh dự danh xưng phù phiếm Đạo đức sống đào tạo sau đại học Đạo văn Đấu tranh sinh tồn day-do Đẹp trong tâm hồn Đi tắt đón đầu dở khóc dở cười đọc nghe nhìn và cảm nhận Dồn điền đổi thửa Động lực dựa vào nhau mà sống error bar plot GGalyy ggcorplot ggExtra ggiraph ggplot2 ggrepel ggthemes Giáng sinh Giáo dục giàu nghèo giục tốc bất đạt Góc quê gridExtra Hài lòng Hai mặt một lời hãy là chính mình hãy sống có trách nhiệm hơn hèn nhát Hiệu sau ứng bão hiệu ứng domino formosa Hiệu ứng sau bão Hòa cả làng học giả bằng thật hoc-lam-tho hoc-r-moi-ngay Ích kỷ KH&CN khả năng Khoán chi Không lối thoát Kiểm định thống kê kỹ năng mềm Kỷ niệm vùng miền Label lan rừng Lão Hạc thế kỷ 21 Liêm chính lính đánh thuê Lợi dụng lợi ích nhóm lừa trên gạt dưới lười suy nghĩ Lương thiện giả vờ Lương y Ma trận tương quan Mẹ Miền cát trắng miền đất hứa Mộc Châu món ăn địa phương Mùa gặt Mục đích sống Mường La Nghịch lý chất lượng - số lượng Nghiên cứu khoa học Ngồi chơi xơi nước Nhân cách nhu cầu Những cung đường tôi đã qua NN&PTNT phân cấp sinh trưởng phân tích hậu định phan-bien-xa-hoi plot3D psych Quán Nha R Rừng ngập mặn rước hổ về nhà rvg sach-hay SARS-CoV-2 sau-luy-tre-lang sciplot Số cây Số liệu trống không Sông Châu sống chết mặc ai sức ỳ sức ỳ bản thân suy thoái Tầm lùn tâm sự tâm sự buồn thảm họa formosa thảm họa môi trường tham nhũng Thân cô thế cô thắng cố ngựa Thăng trầm Thấy vậy mà không phải vậy Thế cây Thế cây cổ Thế cây thế người Thông điệp cuộc đời Thống kê mô tả Thông tư Thước đo lòng người Thủy điện Tiên trách kỷ hậu trách nhân Tình bạn cao đẹp Tình người Tố chất làm khoa học tội đếch gì mà phải ghét ai Tôi sợ giầu lắm track changes Trải nghiệm tre già măng mọc trở mặt Trung thực tư duy Tự sự Tư tưởng thụt lùi tuy duy nhiệm kỳ Ứng dụng R trong lâm nghiệp Văn hóa cảm ơn Văn hóa giao thông văn hóa ngầm Văn hóa xin lỗi Xấu khen đẹp chê Xỏ nhầm giầy xoay đầu đổi đít Ý tưởng

bài đã đăng

Powered by Blogger.

Disqus Shortname

Widget Recent Post No.

Widget Random Post No.

Widget Recent Comment No.

PageNavi Results No.

Labels Max-Results No.

Comments system

Contact Form

Name

Email *

Message *

bài đăng phổ biến

số lượt ghé qua trang blog

Bài đăng nổi bật

Thế cây thế người

T hế trong CÂY CẢNH thể hiện các chi tiết về CẤU TRÚC ở mọi phương diện, đa góc nhìn (trên dưới trái phải ngang dọc), trong đ...

Bài đăng phổ biến

bài xem nhiều nhất