Showing posts with label ggplot2. Show all posts
Showing posts with label ggplot2. Show all posts

June 08, 2017

Như có đề cập đến ở một vài cái note trước, về một vài câu chuyện nho nhỏ có liên quan đến việc ứng dụng R trong phân tích dữ liệu. Trong phạm vi cái note này, là câu chuyện liên quan đến cái biểu đồ mà mình có ứng dụng R để vẽ, với mục đích tối đa hóa các thông tin trên một biểu đồ thay vì phải tách làm hai hay sử dụng những biểu đồ đơn giản từ excel.

Tương tự như trong một vài cái biểu đồ mà mình có vẽ giúp một bạn trong luận án thạc sĩ năm 2015 (Trường ĐH NLTN). Cũng là “cái biểu đồ”, giáo viên hướng dẫn chưa biết (chưa nghe nói về R) ý nghĩa của cái biểu đồ này, trong khi học viên chưa giải thích được (do được sự trợ giúp) nên cô phán rằng “bỏ đi, quá rắc rối”. Trong trường hợp này cũng vậy, trong hội đồng nghiệm thu đề tài cấp Nhà nước, mình cũng sử dụng R với sự hỗ trợ của gói ggplot2, gridExtra và ggrepel để vẽ biểu đồ tương quan lồng ghép với biểu đồ phân bố. Tuy nhiên, khi cô nhận xét trước hội đồng, đặc biệt liên quan đến biểu đồ, cô nói “lần đầu tiên tôi nhìn thấy cái biểu đồ như vậy”. Và, “tôi không hiểu hai cái đường màu đỏ này có ý nghĩa gì”?  (hình dưới). Là người trực tiếp vẽ biểu đồ, tôi hiểu cái ý của cô. Nhưng tôi cũng chẳng thể đứng dậy giải thích ý nghĩa của cái biểu đồ trước mặt các thành viên hội đồng như vậy. Thôi thì. Ngồi mỉm cười trừ.

Đúng là nhận xét của cô không sai. Cái thiếu sót của tôi là chưa sử dụng hết ngôn từ để làm sáng tỏ hết ý nghĩa của biểu đồ cho người đọc rõ. Qua đây mình cũng phải nhìn nhận lại chính mình trong việc hành văn để diễn giải ý nghĩa của những biểu đồ. Không thể “để đấy và không nói gì cả”. Thực ra, biểu đồ nào mình cũng có nói ít nhiều, chứ không kiểu “để đấy”, ai hiểu gì thì hiểu. Có thể mình chưa nói hết. Nên ít nhiều làm khó cho người đọc, đặc biệt là những ai chưa quan tâm nhiều về R.

Nực cười hơn. Không biết có phải một thành viên hội đồng hơi cường điều hóa không, khi thầy nhận xét một câu “tôi phải dùng kính lúp để soi các biểu đồ”. Phải chăng thầy có tuổi nên mắt hơi kém. Nhưng không. Thầy vẫn trung tuổi, có đến nỗi nào đâu? Tuy nhiên, qua đó nhận xét như vậy mình cũng phải nhìn nhận lại mình. Bởi đó là cái thiếu sót của mình trong việc chưa làm rõ hết được ý nghĩa của biểu đồ cũng như chưa làm rõ hơn các biểu đồ trong báo cáo.

Thôi thì “nhận dạng nhầm lẫn của người khác cũng có nghĩa là nâng cao kĩ năng nhận dạng nhầm lẫn của chính mình” [1]. Thực sự, đó là một trong những trải nghiệm trên tinh thần cầu thị mình không thể không nhìn nhận lại chính mình. Bởi, “nếu dùng ngôn ngữ không đúng, thì những gì được phát biểu sẽ bị hiểu sai; nếu những gì phát biểu bị hiểu sai, thì những gì cần phải làm sẽ không thực hiện được, và những gì không thực hiện được, đạo đức và nghệ thuật sẽ trở nên tồi tệ hơn” - Khổng Tử [1]. Dù ít dù nhiều thông qua những góp ý như vậy mình mới rút ra được nhiều bài học trong việc xử lý, trình bày dữ liệu, đặc biệt là thể hiện dữ liệu bằng các hình, biểu đồ. Tuy nhiên, việc sử dụng R để tạo nên một vài biểu đồ có ý nghĩa không đơn giản chút nào, chưa kể đến việc phải đầu tư suy nghĩ, mất thời gian... mà ngay cả những người đi trước (chắc quen sử dụng SPSS, Excel) cũng chưa tạo điều kiện để hiểu và chấp nhận cho.

===========================================
[1] Nguyễn Văn Tuấn (2013). Từ nghiên cứu đến công bố - Kỹ năng mềm cho nhà khoa học. Nxb Tổng hợp TP HCM, tr 31.

September 15, 2016

Ở
 bài trước, mình có vẽ biểu đồ phân bố các loài cây theo 2 đại lượng IV% và G% trong công thức tổ thành. Tuy nhiên, hiện nay các đề tài nghiên cứu về cấu trúc tầng cây cao, lớp cây tái sinh, chúng ta nên áp dụng chỉ số quan trọng IV (%) thông qua 3 đại lượng (F%, Gi% và Ni%). Theo Curtis and McIntosh (1951) đã so sánh vai trò của các loài trong quần xã thông qua chỉ số quan trọng IV (Importance Value of species). Chỉ số quan trọng IV được tính bình quân từ tổng của 3 đại lượng là độ thường gặp tương đối (F%), mật độ tương đối (N%) và độ ưu thế tương đối (G%), cụ thể qua công thức:
Trong đó:
-       F%: độ thường gặp tương đối của một loài (là tỷ lệ phần trăm độ thường gặp của loài so với tổng độ thường gặp của tất cả các loài trong quần xã);
-       N%: mật độ tương đối của một loài (là tỷ lệ phần trăm số cá thể của loài này so với tổng số cá thể của các loài trong quần xã);
-       G%: độ ưu thế tương đối của một loài (là tỷ lệ phần trăm tổng tiết diện ngang thân cây của loài so với tổng tiết diện ngang thân cây của các loài trong quần xã.
==>  Tổng cộng (F% + N% + G%) = 300%. ===> Từ đó xác định được công thức tổ thành.

Trong phạm vi bài này mình không giới thiệu đến cách vẽ biểu đồ phân bố với nhãn (tên), bởi ở bài trước mình đã giới thiệu chi tiết việc kết hợp 3 gói (ggplot2, ggthemesvà ggrepel) để vẽ một biểu đồ với nhãn khoa học, đẹp và tương đối hoàn chỉnh. Ở bài này, mình đề cập đến việc tính chỉ số mức độ quan trọng (IV%) tính qua 2 trường hợp cụ thể.

Tính chỉ số (F%)

Trước nay, đa số chúng ta xác định công thức tổ thành (CTTT) chỉ qua 2 đại lượng N% và G%. Vì vậy, sẽ là khó hình dung cách tính đại lượng (F%). Thực ra, đại lượng F% không phải mới đề cập, nhưng trong quá trình giảng dạy chúng ta ít đề cập, cũng như không áp dụng nên rất khó mường tượng khi tính toán chỉ số F này. Để dễ hiểu, chúng ta có thể lập ô tiêu chuẩn (OTC - ô cấp 1) với kích thước 1.000m2, trong ô cấp 1 lập thêm các ô cấp 2 với kích thước 100m2 (25m x 20m), tiếp đến trong ô cấp 2 lập thêm các ô cấp 3 với kích thước 4m2 (2m x 2m). Cụ thể trong hình dưới đây:


  
Điều tra trong OTC (cấp 1, cấp 2 và cấp 3). Cụ thể:
-       OTC (cấp 1): điều tra tầng cây cao, cây tái sinh cho tất cả các loài có đường kính ngang ngực ≥ 6cm (hoặc D1.3 ≥ 10cm, tùy mục tiêu nghiên cứu) về: thành phần loài cây (tên loài cây: tên latinh, tên phổ thông...), đường kính, chiều cao cây, đường kính tán...
-       Ô cấp 2: điều tra tất cả các cây gỗ tái sinh có đường kính ngang ngực < 6cm và Hvn > 1,3m về: loài, chiều cao cây, đường kính, sinh trưởng, chất lượng sinh trưởng...
-       Ô cấp 3: điều tra mức độ thường gặp tương đối của một loài (F%), tức là trong ô 4m2 điều tra xem loài i có xuất hiện hay không? Nghĩa là trong 50 ô cấp 3 xem loài i xuất hiện bao nhiêu lần?

Xác định công thức tổ thành qua chỉ số mức độ quan trọng (IV%)

Để xác định CTTT trong quần xã qua chỉ số quan trọng (IV%), mình lấy ví dụ cho 2 trường hợp: (i) tính chỉ số IV% qua 2 đại lượng N% và G% và (ii) tính chỉ số IV% qua 3 đại lượng N%, G% và F%. Cụ thể như sau:

Trường hợp 1: tính chỉ số IV% thông qua 2 đại lượng N% và G%. Công thức tổ thành như sau:
31,50 Vot + 24,82 Cal + 6,40 Chel + 5,92 Tran + 5,30 Sotrl + 4,63 Cor + 4,23 Deađ + 3,85 Sop + 3,76 Thc + 9,58 lk

Trường hợp 2: tính chỉ số IV% qua 3 đại lượng N%, G% và F%. Công thức tổ thành như sau:

33,12 Vot + 25,64 Cal + 7,30 Chel + 6,98 Tran + 6,56 Sotrl + 4,45 Hoq + 3,09 Cor + 12,86 lk

Qua hai công thức tổ thành trên có thể đi đến nhận xét sau:
-       Thứ tự các loài trong công thức tổ thành không có sự thay đổi lớn. Chỉ số IV% khi tính qua 3 đại lượng (N%, G% và F%) có tăng một chút so với mức độ quan trọng IV% khi tính bằng 2 đại lượng (N% và G%);
-       Thành phần loài tham gia trong công thức tổ thành ở trường hợp 2 giảm đi 3 loài (Dead, Sop và Thc) và xuất hiện 1 loài mới (Hoq) so với trường hợp 1.

Để thể hiện chi tiết hơn về thành phần các loài cũng như giá trị các đại lượng của từng loài thông qua biểu đồ phân bố với nhãn dưới đây cho 2 trường hợp trên.

Trường hợp 1:

- Phân bố giữa IV% và Gi%
> o11=ggplot(data=o1, aes(x=IV, y=Gi))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("Gi, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(o1$IV))+ scale_y_continuous(breaks=extended_range_breaks()(o1$Gi))+ ggtitle("Figure 1")
> o111=o11+geom_text_repel(aes(IV,Gi, label=(loai),col="red"))


- Phân bố giữa IV% và Ni%
 > o12=ggplot(data=o1, aes(x=IV, y=Ni))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("Ni, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(o1$IV))+ scale_y_continuous(breaks=extended_range_breaks()(o1$Ni))+ ggtitle("Figure 2")
> o112=o12+geom_text_repel(aes(IV,Ni, label=(loai)))


 Trường hợp 2:

- Phân bố giữa IV% và Ni%
 > o13=ggplot(data=o2, aes(x=IV, y=Ni))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("Ni, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(o2$IV))+ scale_y_continuous(breaks=extended_range_breaks()(o2$Ni))+ ggtitle("Figure 3")
> o113=o13+geom_text_repel(aes(IV,Ni, label=(loai)))

  - Phân bố giữa IV% và Gi%

> o14=ggplot(data=o2, aes(x=IV, y=Gi))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("Gi, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(o2$IV))+ scale_y_continuous(breaks=extended_range_breaks()(o2$Gi))+ ggtitle("Figure 4")
> o114=o14+geom_text_repel(aes(IV,Gi, label=(loai)))





Qua 2 trường hợp trên các bạn có thể hình dung và so sánh rõ hơn việc áp dụng cách tính chỉ số mức độ quan trọng (IV%) trong việc xác định công thức tổ thành rừng thông qua 2 hay 3 đại lượng.

September 14, 2016

Ở các bài trước mình có tập tành vẽ biểu đồ tương quan với nhãn bằng việc kết hợp 2 gói (package) ggplot2 và ggthemes. Trong phạm vi bài này, mình vẫn sử dụng 2 gói trên và có kết hợp thêm gói ggrepel để khắc phục một vài điểm nhỏ để chúng ta có được một đồ tương đối hoàn chỉnh.

Trong ví dụ mà mình vẽ biểu đồ là dữ liệu về 2 chỉ số G (%) và IV (%) để xác định tổ thành tầng cây cao, thông qua công thức của Daniel Marmillod, cụ thể:
Theo Thái Văn Trừng (1983) thì những loài cây nào có chỉ số IV (%) ≥ 5% mới thực sự có ý nghĩa về mặt sinh thái trong quần xã thực vật rừng. Để thể hiện chi tiết giá trị (độ) quan trọng IV (%) của các loài tham gia trong công thức tổ thành trên biểu đồ thì sẽ xuất hiện trường hợp có một vài loài, nhiều loài có giá trị IV (%) gần giống nhau, thậm chí có thể bằng nhau. Vì vậy, khi thể hiện trên biểu đồ (điểm, nhãn...) sẽ gần nhau, hoặc trùng nhau, như vậy trông sẽ rất khó coi và không khoa học. Thực ra, những gì mình nói ra trên đây sẽ là khó hiểu, bởi rất ít trường hợp thể hiện biểu đồ như mình và để hình dung dễ hơn mình sẽ thể hiện qua các biểu đồ để mọi người dễ hiểu.

Trong gói mới (ggrepel) mà mình kết hợp với ggplot2 và ggthemes có layer rất hữu ích đó là geom_text_repel (x, y, label...) có thể khắc phục được nhược điểm mà mình có đề cập bên trên. Chúng mình cùng bắt đâu qua ví dụ dưới đây nhé.

Trước tiên phải gọi các packages cần sử dụng:
# > library(ggplot2)
# > library(ggthemes)
# Khi mới vẽ các điểm (dot) codes như sau:
x1=ggplot(data=xoanmoc11, aes(x=IV, y=G))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("G, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(xoanmoc11$IV))+ scale_y_continuous(breaks=extended_range_breaks()(xoanmoc11$G))+ ggtitle("Figure 1") + geom_text(aes(label=(loaicay)))
Kết quả ở hình 1 (Figure 1) mới thể hiện phân bố các điểm với trục hoành là độ quan trọng (IV, %) và trục tung là tiết diện ngang (G, %) của các loài tham gia trong công thức tổ thành của tầng cây cao. Bây giờ để thể hiện tên các loài (nhãn) trên biểu đồ, ta thêm layer: geom_text (aes(label=...) kết quả ở hình 2 (Figure 2).
> x1=ggplot(data=xoanmoc11, aes(x=IV, y=G))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("G, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(xoanmoc11$IV))+ scale_y_continuous(breaks=extended_range_breaks()(xoanmoc11$G))+ ggtitle("Figure 2") 
> x12=x1+geom_text_repel(aes(IV,G, label=(loaicay)))


Qua hình 2 (Figure 2) ta có thể nhận thấy một điều nhiều tên loài cây gần sát nhau, trùng nhau tạo nên một biểu đồ chưa thực sự khoa học, thiếu mỹ quan như bên trên mà mình có đề cập. Để khắc phục điều này, trong phạm vi bài này mình kết hợp thêm layer: geom_text_repel (aes(x, y, label=...)) trong gói ggrepel để tạo ra biểu đồ khoa học hơn, đẹp hơn và có thể tạm gọi là “tương đối hoàn chỉnh”. Cụ thể dưới đây. 
> x1=ggplot(data=xoanmoc11, aes(x=IV, y=G))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("G, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(xoanmoc11$IV))+ scale_y_continuous(breaks=extended_range_breaks()(xoanmoc11$G))+ ggtitle("Figure 3")
> x13=x1+geom_text_repel(aes(IV,G, label=(loaicay)))
Qua hình 3 (Figure 3) các bạn có thể nhận thấy các loài cây có chỉ số IV, G gần bằng nhau không chồng lấn lên nhau nữa, mà vẫn biết giá trị IV, G của từng loài. Bạn có thể so sánh giữa hình 2 và hình 3 để thấy sự khác biệt nhé.

Dưới đây mình vẽ thêm một vài hình để các bạn thấy sự khác biệt sau khi khắc phục điểm hạn chế bên trên mà mình có đề cập bằng layer: geom_text_repel() trong gói ggrepel.

> x2=ggplot(data=xoanmoc2, aes(x=IV, y=G))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("G, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(xoanmoc2$IV))+ scale_y_continuous(breaks=extended_range_breaks()(xoanmoc2$G))+ ggtitle("Figure 4")+ geom_text(aes(label=loai))



 Và thay layer: geom_text () trong ggplot 2 bằng layer: geom_text_repel() trong ggrepel.

> x22=x2+geom_text_repel(aes(IV,G, label=(loai)))

 
Khi vẽ biểu đồ trên với nhãn sẽ có một trường hợp nữa xuất hiện, đó là một vài loài cây có cùng một giá trị và điều đó sẽ được thể hiện ở hình dưới đây sau khi sử dụng layer: geom_text_repel().

> xts=ggplot(data=xoants1, aes(x=ni, y=Ki))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("Ni")+ ylab("Ki")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(xoants1$ni))+ scale_y_continuous(breaks=extended_range_breaks()(xoants1$Ki))+ ggtitle("Figure 6")+geom_text(aes(label=loai))
Các bạn sẽ thấy ở hình 6 (Figure 6) có nhiều điểm các loài cây cùng một giá trị, khi thể hiện tên (nhãn) các loài sẽ chồng lên nhau. Và khắc phục điều đó, ta có thể làm như sau:
> xts1=xts+geom_text_repel(aes(label=loai))


Trên đây mình có giới thiệu tới các bạn việc kết hợp 3 gói (ggplot2, ggthemes và ggrepel) khác nhau trong R để vẽ một biểu đồ khoa học, đẹp và tương đối hoàn chỉnh. Các bạn có thể thực hành để thấy sự khác biệt nhé.

August 19, 2016

Ở
 những bài trước mình có tập tành vẽ biểu đồ hộp với các packages như: ggplot2, ggthemes... cũng như giới thiệu một chút về những thông tin cơ bản mà biểu đồ hộp cung cấp như: trung vị, bách phân vị thứ 75, bách phân vị thứ 25... Trong phạm vi bài này, mình sẽ ứng dụng biểu đồ hộp và các chỉ số thống kê mà biểu đồ hộp cung cấp vào trường hợp cụ thể. Trong điều tra rừng, hay phân chia cấp sinh trưởng cây rừng nhiều khi chúng ta phân cấp chất lượng (tốt, trung bình, xấu) dựa trên cảm quan của mỗi cá nhân. Mình không dám nói các phương pháp như vậy là chưa chuẩn hay sai, cũng không có ý gì phản pháo về nó. Mục tiêu của bài viết, đó là ứng dụng có cơ sở từ các chỉ số thông kê mà biểu đồ hộp (boxplot) cung cấp, để phân chia cấp chất lượng, cấp sinh trưởng các đối tượng điều tra (cây rừng). Có thể còn nhiều thiếu sót, nhưng rất mong được quí bạn đọc quan tâm, trao đổi và có cách khắc phục cho những thiếu sót đó, trên tinh thần xây dựng, hướng đến cái chung “Ứng dụng R trong nghiên cứu lâm nghiệp” được phổ cập hơn.

Thực tế, trong điều tra nhiều trường hợp phân cấp chất lượng sinh trưởng cây rừng (cây trong giai đoạn vườn ươm, cây rừng trồng, cây rừng tự nhiên, cây tái sinh...), dựa trên yếu tố chủ quan của người điều tra mà cho là tốt, trung bình hay xấu. Thực ra, cũng có tiêu chí cho cây rừng như thế nào là tốt, thế nào là xấu... dựa trên các đặc điểm hình thái thân, tán, cụt ngọn hay không, sâu bệnh nhiều hay ít, cảm quan về sinh trưởng... Tuy nhiên, chúng ta cũng có thể kiểm chứng bằng cách ứng dụng các chỉ số thống kê mà biểu đồ hộp cung cấp vào việc ta đã phân chia chất lượng sinh trưởng, hoặc phân chia cấp sinh trưởng, năng suất cây trồng rừng. Để có cơ sở cho những gì vừa nói bên trên, chúng ta cùng bắt đầu và kiểm chứng với các ví dụ cụ thể dưới đây.

# Phân cấp chất lượng cây trồng rừng

> kll1.2s=ggplot(data=kllBTB1.2n, aes(kllBTB1.2n$Local, y=stump_diameter))+ geom_boxplot(aes(fill=Local), outlier.colour="red", outlier.size=3)+ theme_bw()+ theme_classic()+ xlab("Local")+ylab("stump diameter, cm")+ geom_rangeframe()+ theme_tufte()+ scale_y_continuous(breaks=extended_range_breaks()(kllBTB1.2n$stump_diameter))+ theme(legend.position="top")+ ggtitle("Acacia crassicarpa 1.2 years old in coastal sandy soil of north central provinces")
Biểu đồ hộp trên biểu thị chỉ tiêu sinh trưởng đường kính gốc cây keo lá liềm 1,2 tuổi được trồng trên đất cát vùng ven biển 3 huyện: Cẩm Dương (Hà Tĩnh), Lệ Thủy (Quảng Bình) và Triệu Phong (Quảng Trị). Biểu đồ trên chỉ cho cái nhìn tổng quan về các chỉ số thống kê như trung vị (thể hiện bằng thanh ngang màu đậm ở mỗi hộp - nằm ở khoảng giữa), bách phân vị thứ 75 (thanh ngang màu nhạt nằm về phía trên của thanh trung vị), bách phân vị thứ 25 (thanh ngang màu nhạt nằm về phía dưới của thanh trung vị), outlier (các chấm màu đỏ)... Tuy nhiên, để biết các con số cụ thể chúng ta dùng lệnh summary (x) trong R sẽ trả lời cho ta, cụ thể như sau:

# phân tích cho từng địa phương

> summary(TrieuPhong)
         Local          Age        CTTN     stump_diameter
 Cam_Duong  :  0   Min.   :1.2   CT 1: 47   Min.   :0.320 
 Le_Thuy    :  0   1st Qu.:1.2   CT 2: 71   1st Qu.:1.970 
 Trieu_Phong:247   Median :1.2   CT 3:110   Median :2.390 
                   Mean   :1.2   DC  : 19   Mean   :2.515 
                   3rd Qu.:1.2   DC  :  0   3rd Qu.:2.860 
                   Max.   :1.2              Max.   :6.050 
  tree_height     canopy_diameter   main_trunk     bough_50_cm  
 Min.   :0.3500   Min.   :0.380   Min.   :1.000   Min.   :0.000 
 1st Qu.:0.6500   1st Qu.:0.800   1st Qu.:2.000   1st Qu.:1.000 
 Median :0.8000   Median :1.000   Median :3.000   Median :2.000 
 Mean   :0.8624   Mean   :1.038   Mean   :3.235   Mean   :2.077 
 3rd Qu.:1.0500   3rd Qu.:1.230   3rd Qu.:4.000   3rd Qu.:3.000 
 Max.   :2.0000   Max.   :3.550   Max.   :8.000   Max.   :5.000 
 phan_than        song_chet stump_diameter_growth tree_height_growth
 Min.   :0.0000   Min.   :1   Min.   :0.270       Min.   :0.2900   
 1st Qu.:0.0000   1st Qu.:1   1st Qu.:1.640       1st Qu.:0.5400   
 Median :0.0000   Median :1   Median :1.990       Median :0.6700   
 Mean   :0.1336   Mean   :1   Mean   :2.096       Mean   :0.7193   
 3rd Qu.:0.0000   3rd Qu.:1   3rd Qu.:2.390       3rd Qu.:0.8800   
 Max.   :1.0000   Max.   :1   Max.   :5.040       Max.   :1.6700   
 canopy_diameter_growth  litter_fall   
 Min.   :0.3100         Min.   :0.0000 
 1st Qu.:0.6700         1st Qu.:0.0900 
 Median :0.8300         Median :0.1100 
 Mean   :0.8648         Mean   :0.1185 
 3rd Qu.:1.0200         3rd Qu.:0.1400 
 Max.   :2.9600         Max.   :0.3100 

> summary(CamDuong)
         Local          Age      CTTN    stump_diameter
 Cam_Duong  :152   Min.   :1   CT 1:24   Min.   :1.430 
 Le_Thuy    :  0   1st Qu.:1   CT 2:41   1st Qu.:2.465 
 Trieu_Phong:  0   Median :1   CT 3:50   Median :2.860 
                   Mean   :1   DC  :37   Mean   :3.031 
                   3rd Qu.:1   DC  : 0   3rd Qu.:3.447 
                   Max.   :1             Max.   :6.050 
  tree_height     canopy_diameter   main_trunk     bough_50_cm  
 Min.   :0.4000   Min.   :0.640   Min.   :1.000   Min.   :0.000 
 1st Qu.:0.7150   1st Qu.:1.018   1st Qu.:3.000   1st Qu.:1.000 
 Median :0.8700   Median :1.280   Median :4.000   Median :1.000 
 Mean   :0.8946   Mean   :1.254   Mean   :3.954   Mean   :1.164 
 3rd Qu.:1.0325   3rd Qu.:1.492   3rd Qu.:5.000   3rd Qu.:1.000 
 Max.   :1.7300   Max.   :1.870   Max.   :8.000   Max.   :3.000 
 phan_than   song_chet stump_diameter_growth tree_height_growth
 Min.   :0   Min.   :1   Min.   :1.430         Min.   :0.4000   
 1st Qu.:0   1st Qu.:1   1st Qu.:2.465         1st Qu.:0.7150   
 Median :0   Median :1   Median :2.860         Median :0.8700   
 Mean   :0   Mean   :1   Mean   :3.031         Mean   :0.8946   
 3rd Qu.:0   3rd Qu.:1   3rd Qu.:3.447         3rd Qu.:1.0325   
 Max.   :0   Max.   :1   Max.   :6.050         Max.   :1.7300   
 canopy_diameter_growth  litter_fall   
 Min.   :0.640          Min.   :0.0600 
 1st Qu.:1.018          1st Qu.:0.1175 
 Median :1.280          Median :0.1400 
 Mean   :1.254          Mean   :0.1458 
 3rd Qu.:1.492          3rd Qu.:0.1700 
 Max.   :1.870          Max.   :0.3100 

> summary(LeThuy)
         Local          Age        CTTN     stump_diameter
 Cam_Duong  :  0   Min.   :1.3   CT 1: 34   Min.   :1.370 
 Le_Thuy    :243   1st Qu.:1.3   CT 2: 74   1st Qu.:2.215 
 Trieu_Phong:  0   Median :1.3   CT 3:101   Median :2.550 
                   Mean   :1.3   DC  : 34   Mean   :2.643 
                   3rd Qu.:1.3   DC  :  0   3rd Qu.:2.990 
                   Max.   :1.3              Max.   :5.430 
                                            NA's   :16    
  tree_height     canopy_diameter   main_trunk     bough_50_cm  
 Min.   :0.4300   Min.   :0.450   Min.   :1.000   Min.   :0.000 
 1st Qu.:0.7900   1st Qu.:0.925   1st Qu.:2.000   1st Qu.:1.000 
 Median :0.9400   Median :1.100   Median :2.000   Median :2.000 
 Mean   :0.9486   Mean   :1.100   Mean   :2.551   Mean   :1.903 
 3rd Qu.:1.1200   3rd Qu.:1.300   3rd Qu.:3.000   3rd Qu.:2.000 
 Max.   :1.9200   Max.   :2.030   Max.   :6.000   Max.   :6.000 
 NA's   :16       NA's   :16      NA's   :16      NA's   :16    
   phan_than        song_chet      stump_diameter_growth
 Min.   :0.0000   Min.   :0.0000   Min.   :1.050       
 1st Qu.:0.0000   1st Qu.:1.0000   1st Qu.:1.700       
 Median :0.0000   Median :1.0000   Median :1.960       
 Mean   :0.2555   Mean   :0.9342   Mean   :2.033       
 3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:2.300       
 Max.   :1.0000   Max.   :1.0000   Max.   :4.170       
 NA's   :16                        NA's   :16           
 tree_height_growth canopy_diameter_growth  litter_fall   
 Min.   :0.3300     Min.   :0.3500         Min.   :0.0600 
 1st Qu.:0.6100     1st Qu.:0.7150         1st Qu.:0.1000 
 Median :0.7200     Median :0.8500         Median :0.1200 
 Mean   :0.7301     Mean   :0.8449         Mean   :0.1254 
 3rd Qu.:0.8600     3rd Qu.:1.0000         3rd Qu.:0.1400 
 Max.   :1.4800     Max.   :1.5600         Max.   :0.2700 


Kết quả trên ta chỉ quan tâm đến chỉ tiêu stump_diameter ở cả 3 địa phương. Cụ thể:
-       Min. (giá trị nhỏ nhất);
-       1st Qu. (chính là bách phân vị 25);
-       Median (trung vị);
-       Mean (trị số trung bình);
-       3rd Qu. (bách phân vị 75);
-       Max (giá trị lớn nhất).
Trong phạm vi bài này ta chỉ quan tâm đến 3 chỉ số (1st Qu. - bách phân vị 25, Median - trung vị, và 3rd Qu. - bách phân vị 75). Kết quả này ở Triệu Phong lần lượt là: 1,970 cm : 2,390 cm : 2,860 cm. Nghĩa là, có 25% đối tượng cây keo lá liềm điều tra tại Triệu Phong có sinh trưởng đường kính gốc đạt giá trị 1,97 cm hoặc thấp hơn; có 50% đối tượng có sinh trưởng đường kính gốc đạt 2,39 cm hoặc thấp hơn và 50% đối tượng có sinh trưởng trên 2,39 cm, và có 75% đối tượng điều tra có sinh trưởng đường kính gốc đạt 2,86 cm hoặc thấp hơn. Đó là những thông tin hữu ích trong việc phân tích các chỉ số thông kê cho đối tượng điều tra. Tương tự cho các địa điểm Lệ Thủy và Cẩm Dương.

Quay lại mục tiêu của bài viết - tức là phân cấp chất lượng sinh trưởng của đối tượng cây keo lá liềm điều tra dựa trên kết quả phân tích biểu đồ hộp. Nói cách khác, đối với những cây keo lá liềm có chỉ tiêu sinh trưởng đường kính gốc đạt giá trị bằng 1,97 cm hoặc thấp hơn ta xếp chúng vào nhóm cây sinh trưởng xấu (X), những cây có chỉ tiêu sinh trưởng đường kính gốc đạt 2,39 cm hoặc thấp hơn (nhưng lớn hơn 1,97 cm), xếp vào nhóm cây sinh trưởng trung bình (TB) và những cây có chỉ tiêu sinh trưởng đường kính gốc đạt 2,86 cm hoặc thấp hơn (nhưng lớn hơn 2,39 cm). Tương tự cho các chỉ tiêu sinh trưởng khác như: chiều cao cây, đường kính tán, số cành dài trên 50 cm, lượng vật rơi rụng...

Từ kết quả trên tiến hành mã hóa số liệu. Để phân loại 3 nhóm chỉ tiêu chất lượng: tốt, trung bình và xấu, chúng ta có thể dùng mã số 1, 2 và 3.

# biến đổi chỉ tiêu đường kính gốc thành chỉ tiêu chất lượng

> chatluongsinhtruong=stump_diameter
> chatluongsinhtruong[stump_diameter <= 1.97] <-1
> chatluongsinhtruong[stump_diameter > 1.97 & stump_diameter <=2.39] <-2
> chatluongsinhtruong[stump_diameter > 2.39]<-3
# tạo thành một data.frame

> datanew=data.frame(stump_diameter, chatluongsinhtruong)

# kiểm tra xem có hiệu quả hay không

> datanew
    stump_diameter chatluongsinhtruong
1             3.02                   3
2             3.25                   3
3             3.98                   3
4             2.71                   3
5             2.71                   3
6             2.99                   3
7             0.32                   1
8             4.30                   3
9             4.62                   3
10            4.01                   3
11            3.57                   3
12            3.25                   3
13            4.04                   3
14            2.39                   2
15            2.23                   2
16            1.62                   1
17            1.27                   1
18            1.27                   1
19            1.75                   1
20            2.32                   2
21            2.55                   3
22            1.69                   1
23            2.36                   2
24            2.39                   2
25            3.82                   3
26            3.28                   3
27            3.98                   3
28            2.48                   3

Như vậy, dựa trên cơ sở các chỉ số thống kê mà biểu đồ hộp cung cấp (trung vị, bách phân vị thứ 25, bách phân vị thứ 75) để phân cấp sinh trưởng cây trồng rừng. Bạn có thể kiểm tra cách phân cấp sinh trưởng trên so với cách thông thường xem có sự khác biệt như thế nào.

# Phân chia cấp sinh trưởng, năng suất, cấp lập địa sinh trưởng cây trồng rừng

Tương tự như trên, chúng ta có thể phân cấp năng suất sinh trưởng cây trồng rừng hoặc phân chia cấp lập địa sinh trưởng cho một loài cây trồng rừng nghiên cứu.

Trên đây là cách mình thử áp dụng trong phân cấp sinh trưởng cây trồng rừng điều tra, cũng như phân cấp năng suất, cấp lập địa sinh trưởng... nên chắc sẽ có nhiều ý kiến trái chiều về vấn đề này. Rất mong quí bạn đọc quan tâm cùng trao đổi, cho ý kiến để có cách giải quyết hữu hiệu hơn. Trân trọng.

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
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