A farm typology is proposed based on a PCA run for the selected variables
# set working directory ## Change accordingly
setwd('~/Harare 2023/diversification_rotation/Florence')
# load package
require(tidyverse)
## Loading required package: tidyverse
## āā Attaching core tidyverse packages āāāāāāāāāāāāāāāāāāāāāāāā tidyverse 2.0.0 āā
## ā dplyr 1.1.4 ā readr 2.1.5
## ā forcats 1.0.0 ā stringr 1.5.1
## ā ggplot2 3.5.1 ā tibble 3.2.1
## ā lubridate 1.9.3 ā tidyr 1.3.1
## ā purrr 1.0.2
## āā Conflicts āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā tidyverse_conflicts() āā
## ā dplyr::filter() masks stats::filter()
## ā dplyr::lag() masks stats::lag()
## ā¹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
rm(list = ls())
clean_survey <- readxl::read_excel('2024-10-07.CLEANED DATA FARMER SEGMENTATION.xlsx',
sheet = 'Selected_data',
skip = 2,
trim_ws = T,
.name_repair = 'universal')
## New names:
## ⢠`ID NO` -> `ID.NO`
## ⢠`AvgMZ_yield(kgs)` -> `AvgMZ_yield.kgs.`
## ⢠`highestEdu_qualification(HHH)` -> `highestEdu_qualification.HHH.`
## ⢠`Access_to_loan_during_2022/2023_season` ->
## `Access_to_loan_during_2022.2023_season`
## ⢠`Do_you_practice__irrigation_farming?` ->
## `Do_you_practice__irrigation_farming.`
## ⢠`Manure_application_in_Maize_field_during_2022/23_season` ->
## `Manure_application_in_Maize_field_during_2022.23_season`
## ⢠`Do_you_pracatice_intercroping?` -> `Do_you_pracatice_intercroping.`
## ⢠`Do_you_practice_cover_croping?` -> `Do_you_practice_cover_croping.`
## ⢠`Do_you_practice_integrated_pest_management?` ->
## `Do_you_practice_integrated_pest_management.`
## ⢠`Do_you_have_agroforestry_trees_in_your_farm?` ->
## `Do_you_have_agroforestry_trees_in_your_farm.`
## ⢠`Do_you_have_fruit_trees?` -> `Do_you_have_fruit_trees.`
## ⢠`Do_you_own_any_vegetable_garden?` -> `Do_you_own_any_vegetable_garden.`
# List of variables
names(clean_survey)
## [1] "ID.NO"
## [2] "Household_Head_Name"
## [3] "Age"
## [4] "HHSize"
## [5] "HH_income_"
## [6] "IncomeFarming"
## [7] "PercFarmIncome"
## [8] "Ncattle"
## [9] "Ngoats"
## [10] "Npigs"
## [11] "Nchickens"
## [12] "TLU"
## [13] "TLU_density"
## [14] "TotalLand"
## [15] "AvgMZ_yield.kgs."
## [16] "PercentageMaizeArea"
## [17] "PercentageLegumeArea"
## [18] "highestEdu_qualification.HHH."
## [19] "Access_to_loan_during_2022.2023_season"
## [20] "Do_you_practice__irrigation_farming."
## [21] "Manure_application_in_Maize_field_during_2022.23_season"
## [22] "Count_intens_options"
## [23] "Do_you_pracatice_intercroping."
## [24] "Do_you_practice_cover_croping."
## [25] "Do_you_practice_integrated_pest_management."
## [26] "Do_you_have_agroforestry_trees_in_your_farm."
## [27] "Do_you_have_fruit_trees."
## [28] "Do_you_own_any_vegetable_garden."
## [29] "Count_sust_practices"
# Remove unnecessary columns and anonymize respondents
descrip_survey <- clean_survey |>
select(!c(Household_Head_Name ))
famd_df <- descrip_survey |>
select(!ID.NO) |>
na.omit()
pca_df <- famd_df |>
mutate(highestEdu_qualification.HHH. = case_when(
highestEdu_qualification.HHH. == 'never_attended' ~ 0,
highestEdu_qualification.HHH. == 'primary_school' ~ 1,
highestEdu_qualification.HHH. == 'secondary' ~ 2,
highestEdu_qualification.HHH. == 'tertiary' ~ 3,
.default = NA) ,
across(where(is.character),
function(x) ifelse(x == 'no', 0, ifelse(x == 'yes', 1, NA))))
if(!dir.exists('initial_vars'))
dir.create('initial_vars/')
if(!dir.exists('vars_subset'))
dir.create('vars_subset')
Here, all the 27 variables proposed are used to run a PCA. Boxplots are only plotted for a selection of variables. All plots are located in a folder named āinitial_varsā.
# choose appropriate palette for visualization
pal <- colorRampPalette(c('lightskyblue1', 'darkblue'))
# Correlation matrix to visualize data
P00 <- GGally::ggpairs(pca_df)
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
png('initial_vars/correlation_matrix.png', height = 25, width = 20, units = 'cm', res = 1000)
P00
ggsave('initial_vars/correlation_matrix.png')
## Saving 7.87 x 9.84 in image
dev.off()
## png
## 2
# PCA on initially selected variables
res_pca <- FactoMineR::PCA(pca_df)
## Warning: ggrepel: 6 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
## Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
# choose how many dimensions to incorporate in the typology
# the more dimensions, the more variability is captured, and the more noise is introduced
res_pca$eig
## eigenvalue percentage of variance cumulative percentage of variance
## comp 1 5.307824e+00 1.965861e+01 19.65861
## comp 2 3.525534e+00 1.305753e+01 32.71614
## comp 3 3.310232e+00 1.226012e+01 44.97626
## comp 4 2.454007e+00 9.088916e+00 54.06518
## comp 5 1.910601e+00 7.076300e+00 61.14148
## comp 6 1.478511e+00 5.475966e+00 66.61744
## comp 7 1.416861e+00 5.247633e+00 71.86508
## comp 8 1.218511e+00 4.513003e+00 76.37808
## comp 9 1.069621e+00 3.961559e+00 80.33964
## comp 10 9.209886e-01 3.411069e+00 83.75071
## comp 11 8.211959e-01 3.041466e+00 86.79217
## comp 12 7.946434e-01 2.943124e+00 89.73530
## comp 13 5.232384e-01 1.937920e+00 91.67322
## comp 14 4.603624e-01 1.705046e+00 93.37826
## comp 15 4.066040e-01 1.505941e+00 94.88420
## comp 16 3.396770e-01 1.258063e+00 96.14227
## comp 17 3.226925e-01 1.195158e+00 97.33743
## comp 18 2.441237e-01 9.041619e-01 98.24159
## comp 19 1.791790e-01 6.636260e-01 98.90521
## comp 20 1.367356e-01 5.064283e-01 99.41164
## comp 21 1.008972e-01 3.736935e-01 99.78534
## comp 22 4.947718e-02 1.832488e-01 99.96858
## comp 23 6.353104e-03 2.353001e-02 99.99211
## comp 24 2.129264e-03 7.886165e-03 100.00000
## comp 25 5.661846e-31 2.096980e-30 100.00000
## comp 26 4.167562e-32 1.543541e-31 100.00000
## comp 27 4.050572e-32 1.500212e-31 100.00000
# what variables are best represented by each dimension
factoextra::fviz_pca_biplot(res_pca)
factoextra::fviz_pca_biplot(res_pca, axes = c(1, 3))
factoextra::fviz_pca_biplot(res_pca, axes = c(1, 4))
factoextra::fviz_pca_biplot(res_pca, axes = c(2, 3))
factoextra::fviz_pca_biplot(res_pca, axes = c(2, 4))
factoextra::fviz_pca_biplot(res_pca, axes = c(3, 4))
PCA_screeplot <- factoextra::fviz_screeplot(res_pca, addlabels = T)
indplot1 <- factoextra::fviz_pca_ind(res_pca)
indplot2 <- factoextra::fviz_pca_ind(res_pca, axes = c(1, 3))
indplot3 <- factoextra::fviz_pca_ind(res_pca, axes = c(1, 4))
indplot4 <- factoextra::fviz_pca_ind(res_pca, axes = c(2, 3))
indplot5 <- factoextra::fviz_pca_ind(res_pca, axes = c(2, 4))
indplot6 <- factoextra::fviz_pca_ind(res_pca, axes = c(3, 4))
varplot1 <- factoextra::fviz_pca_var(res_pca)
varplot2 <- factoextra::fviz_pca_var(res_pca, axes = c(1, 3))
varplot3 <- factoextra::fviz_pca_var(res_pca, axes = c(1, 4))
varplot4 <- factoextra::fviz_pca_var(res_pca, axes = c(2, 3))
varplot5 <- factoextra::fviz_pca_var(res_pca, axes = c(2, 4))
varplot6 <- factoextra::fviz_pca_var(res_pca, axes = c(3, 4))
# function to save PCA plots
draw_plot <- function(pp, pp_name){
png(paste0('initial_vars/plot_', pp_name, '.png'), height = 15, width = 20, units = 'cm', res = 1000)
print(pp)
ggsave(paste0('initial_vars/plot_', pp_name, '.png'))
dev.off()
}
draw_plot(PCA_screeplot, 'PCA_screeplot')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(indplot1, 'PCA_individuals_01')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(indplot2, 'PCA_individuals_02')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(indplot3, 'PCA_individuals_03')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(indplot4, 'PCA_individuals_04')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(indplot5, 'PCA_individuals_05')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(indplot6, 'PCA_individuals_06')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(varplot1, 'PCA_variables_01')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(varplot2, 'PCA_variables_02')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(varplot3, 'PCA_variables_03')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(varplot4, 'PCA_variables_04')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(varplot5, 'PCA_variables_05')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(varplot6, 'PCA_variables_06')
## Saving 7.87 x 5.9 in image
## png
## 2
# choose the most relevant variables to describe each dimension
print(res_pca$var$contrib[, 1:5])
## Dim.1
## Age 0.636413327
## HHSize 3.005494980
## HH_income_ 9.127135054
## IncomeFarming 6.614174872
## PercFarmIncome 4.215889713
## Ncattle 4.340788365
## Ngoats 9.072873294
## Npigs 4.492103006
## Nchickens 3.475703708
## TLU 5.855721615
## TLU_density 4.773864188
## TotalLand 7.159026283
## AvgMZ_yield.kgs. 6.544345650
## PercentageMaizeArea 0.004803414
## PercentageLegumeArea 2.704109890
## highestEdu_qualification.HHH. 1.368361439
## Access_to_loan_during_2022.2023_season 0.937202535
## Do_you_practice__irrigation_farming. 2.109796369
## Manure_application_in_Maize_field_during_2022.23_season 2.220595889
## Count_intens_options 4.129428385
## Do_you_pracatice_intercroping. 2.582495671
## Do_you_practice_cover_croping. 2.727410880
## Do_you_practice_integrated_pest_management. 0.657415740
## Do_you_have_agroforestry_trees_in_your_farm. 0.337437216
## Do_you_have_fruit_trees. 0.060754505
## Do_you_own_any_vegetable_garden. 5.651780742
## Count_sust_practices 5.194873271
## Dim.2
## Age 1.101350347
## HHSize 2.224709379
## HH_income_ 8.380002845
## IncomeFarming 9.013985832
## PercFarmIncome 0.147844784
## Ncattle 11.457501746
## Ngoats 0.624240800
## Npigs 3.116445507
## Nchickens 2.287464593
## TLU 10.155375784
## TLU_density 12.406849598
## TotalLand 2.780094671
## AvgMZ_yield.kgs. 5.949048907
## PercentageMaizeArea 0.002028804
## PercentageLegumeArea 3.856739714
## highestEdu_qualification.HHH. 0.019618448
## Access_to_loan_during_2022.2023_season 8.276905145
## Do_you_practice__irrigation_farming. 0.136290182
## Manure_application_in_Maize_field_during_2022.23_season 0.464358337
## Count_intens_options 4.021048469
## Do_you_pracatice_intercroping. 0.253430397
## Do_you_practice_cover_croping. 1.646961282
## Do_you_practice_integrated_pest_management. 8.534389886
## Do_you_have_agroforestry_trees_in_your_farm. 1.088776681
## Do_you_have_fruit_trees. 1.450702089
## Do_you_own_any_vegetable_garden. 0.559343029
## Count_sust_practices 0.044492743
## Dim.3
## Age 0.34141706
## HHSize 1.00358649
## HH_income_ 1.48323460
## IncomeFarming 2.06738008
## PercFarmIncome 0.31890960
## Ncattle 8.14324882
## Ngoats 0.84125096
## Npigs 3.72297769
## Nchickens 0.42471859
## TLU 8.28333557
## TLU_density 7.82699693
## TotalLand 0.59430118
## AvgMZ_yield.kgs. 0.25528239
## PercentageMaizeArea 0.69905413
## PercentageLegumeArea 1.37291791
## highestEdu_qualification.HHH. 0.99453994
## Access_to_loan_during_2022.2023_season 2.25608242
## Do_you_practice__irrigation_farming. 13.09310635
## Manure_application_in_Maize_field_during_2022.23_season 0.45567080
## Count_intens_options 9.35929247
## Do_you_pracatice_intercroping. 0.74182293
## Do_you_practice_cover_croping. 0.46867385
## Do_you_practice_integrated_pest_management. 0.03629532
## Do_you_have_agroforestry_trees_in_your_farm. 8.05538977
## Do_you_have_fruit_trees. 12.89476253
## Do_you_own_any_vegetable_garden. 4.24556307
## Count_sust_practices 10.02018855
## Dim.4
## Age 21.218442760
## HHSize 5.632510850
## HH_income_ 0.226182275
## IncomeFarming 0.113540389
## PercFarmIncome 0.417078821
## Ncattle 0.015504875
## Ngoats 1.973253491
## Npigs 0.824745322
## Nchickens 1.379008781
## TLU 0.002922498
## TLU_density 0.001871272
## TotalLand 0.290945406
## AvgMZ_yield.kgs. 0.153457448
## PercentageMaizeArea 0.359423421
## PercentageLegumeArea 0.020366465
## highestEdu_qualification.HHH. 11.421245297
## Access_to_loan_during_2022.2023_season 1.376721657
## Do_you_practice__irrigation_farming. 1.588834664
## Manure_application_in_Maize_field_during_2022.23_season 14.962930693
## Count_intens_options 4.196151075
## Do_you_pracatice_intercroping. 0.410711661
## Do_you_practice_cover_croping. 11.336469697
## Do_you_practice_integrated_pest_management. 6.512336423
## Do_you_have_agroforestry_trees_in_your_farm. 5.035758987
## Do_you_have_fruit_trees. 0.002022253
## Do_you_own_any_vegetable_garden. 0.987627611
## Count_sust_practices 9.539935909
## Dim.5
## Age 0.002002792
## HHSize 0.013557173
## HH_income_ 0.153990927
## IncomeFarming 0.475631845
## PercFarmIncome 12.386628345
## Ncattle 0.448875215
## Ngoats 3.603933963
## Npigs 0.016460584
## Nchickens 0.178737714
## TLU 0.606343303
## TLU_density 0.476549762
## TotalLand 15.123732032
## AvgMZ_yield.kgs. 0.607718623
## PercentageMaizeArea 17.831746179
## PercentageLegumeArea 0.006862907
## highestEdu_qualification.HHH. 8.072203134
## Access_to_loan_during_2022.2023_season 11.730042022
## Do_you_practice__irrigation_farming. 1.142806731
## Manure_application_in_Maize_field_during_2022.23_season 1.266197893
## Count_intens_options 2.998927905
## Do_you_pracatice_intercroping. 2.119276149
## Do_you_practice_cover_croping. 2.956567168
## Do_you_practice_integrated_pest_management. 0.028614861
## Do_you_have_agroforestry_trees_in_your_farm. 0.937223950
## Do_you_have_fruit_trees. 8.761102756
## Do_you_own_any_vegetable_garden. 3.318581129
## Count_sust_practices 4.735684939
for(i in list(c(1, 2), c(1, 3), c(1, 4), c(2, 3), c(2, 4), c(3, 4))){
for(j in names(pca_df)){
nb_col <- length(unique(pca_df[[j]]))
print(factoextra::fviz_ellipses(res_pca,
habillage = j,
axes = i,
geom = 'text',
addEllipses = T,
palette = pal(nb_col)
)
)
}
}
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
# Hierarchical clustering on the first 4 dimensions that capture 54% of total variability
eg_hc <- res_pca$ind$coord[, 1:4]
dist_matrix <- dist(eg_hc)
hc <- hclust(dist_matrix, method = 'ward.D') # could be 'complete' or 'average'
plot(hc, main = 'Subset 1 - Dendogram on the first 4 components', xlab = '', sub = '', cex = 0.6)
# decide on the number of farm types to make: 3 or 4
typo_1 <- pca_df
for(cl in 4:3){
clusters <- cutree(hc, k = cl)
typo_1$farm_type <- paste0('farm_', clusters)
print(paste0('================ Number of farm types = ', cl, ' ================'))
for(i in names(pca_df)){
res_anova <- lm(typo_1[[i]] ~ typo_1[['farm_type']])
emm0 <- emmeans::emmeans(res_anova,
pairwise ~ farm_type,
type = 'response',
adjust = 'bonferroni')
print(paste0('--------------------', i, '----------------'))
print(anova(res_anova))
print('-----------')
print(emm0)
print(multcomp::cld(emm0, decreasing = T))
}
}
## [1] "================ Number of farm types = 4 ================"
## [1] "--------------------Age----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 164.19 54.730 1.1066 0.3577
## Residuals 40 1978.35 49.459
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 43.1 2.22 40 38.6 47.6
## farm_2 43.9 1.50 40 40.9 46.9
## farm_3 47.8 2.12 40 43.5 52.1
## farm_4 49.0 7.03 40 34.8 63.2
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.809 2.68 40 -0.302 1.0000
## farm_1 - farm_3 -4.718 3.07 40 -1.535 0.7953
## farm_1 - farm_4 -5.900 7.38 40 -0.800 1.0000
## farm_2 - farm_3 -3.909 2.60 40 -1.505 0.8407
## farm_2 - farm_4 -5.091 7.19 40 -0.708 1.0000
## farm_3 - farm_4 -1.182 7.35 40 -0.161 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 49.0 7.03 40 34.8 63.2 1
## farm_3 47.8 2.12 40 43.5 52.1 1
## farm_2 43.9 1.50 40 40.9 46.9 1
## farm_1 43.1 2.22 40 38.6 47.6 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------HHSize----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 35.40 11.8000 2.7741 0.05376 .
## Residuals 40 170.15 4.2536
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 6.70 0.652 40 5.38 8.02
## farm_2 5.50 0.440 40 4.61 6.39
## farm_3 7.64 0.622 40 6.38 8.89
## farm_4 6.00 2.062 40 1.83 10.17
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 1.200 0.787 40 1.526 0.8099
## farm_1 - farm_3 -0.936 0.901 40 -1.039 1.0000
## farm_1 - farm_4 0.700 2.163 40 0.324 1.0000
## farm_2 - farm_3 -2.136 0.762 40 -2.805 0.0464
## farm_2 - farm_4 -0.500 2.109 40 -0.237 1.0000
## farm_3 - farm_4 1.636 2.154 40 0.760 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 7.64 0.622 40 6.38 8.89 1
## farm_1 6.70 0.652 40 5.38 8.02 12
## farm_4 6.00 2.062 40 1.83 10.17 12
## farm_2 5.50 0.440 40 4.61 6.39 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------HH_income_----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 3.0289e+13 1.0096e+13 8.3835 0.0001918 ***
## Residuals 40 4.8173e+13 1.2043e+12
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1502500 347033 40 801119 2203881
## farm_2 602864 233970 40 129993 1075734
## farm_3 2620909 330883 40 1952169 3289649
## farm_4 1500000 1097416 40 -717960 3717960
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 899636 418538 40 2.149 0.2262
## farm_1 - farm_3 -1118409 479496 40 -2.332 0.1488
## farm_1 - farm_4 2500 1150980 40 0.002 1.0000
## farm_2 - farm_3 -2018046 405248 40 -4.980 0.0001
## farm_2 - farm_4 -897136 1122080 40 -0.800 1.0000
## farm_3 - farm_4 1120909 1146214 40 0.978 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 2620909 330883 40 1952169 3289649 1
## farm_1 1502500 347033 40 801119 2203881 12
## farm_4 1500000 1097416 40 -717960 3717960 12
## farm_2 602864 233970 40 129993 1075734 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------IncomeFarming----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 1.7501e+13 5.8338e+12 7.9964 0.0002712 ***
## Residuals 40 2.9182e+13 7.2955e+11
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1125000 270103 40 579102 1670898
## farm_2 552046 182103 40 184001 920090
## farm_3 2095455 257533 40 1574962 2615948
## farm_4 1000000 854139 40 -726280 2726280
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 572955 325756 40 1.759 0.5175
## farm_1 - farm_3 -970455 373200 40 -2.600 0.0779
## farm_1 - farm_4 125000 895829 40 0.140 1.0000
## farm_2 - farm_3 -1543409 315412 40 -4.893 0.0001
## farm_2 - farm_4 -447955 873336 40 -0.513 1.0000
## farm_3 - farm_4 1095455 892119 40 1.228 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 2095455 257533 40 1574962 2615948 1
## farm_1 1125000 270103 40 579102 1670898 12
## farm_4 1000000 854139 40 -726280 2726280 12
## farm_2 552046 182103 40 184001 920090 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercFarmIncome----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 0.18092 0.060307 2.1093 0.1142
## Residuals 40 1.14364 0.028591
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.768 0.0535 40 0.660 0.876
## farm_2 0.908 0.0360 40 0.836 0.981
## farm_3 0.827 0.0510 40 0.724 0.930
## farm_4 0.667 0.1691 40 0.325 1.008
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.1400 0.0645 40 -2.171 0.2156
## farm_1 - farm_3 -0.0588 0.0739 40 -0.796 1.0000
## farm_1 - farm_4 0.1018 0.1773 40 0.574 1.0000
## farm_2 - farm_3 0.0812 0.0624 40 1.300 1.0000
## farm_2 - farm_4 0.2418 0.1729 40 1.398 1.0000
## farm_3 - farm_4 0.1606 0.1766 40 0.909 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_2 0.908 0.0360 40 0.836 0.981 1
## farm_3 0.827 0.0510 40 0.724 0.930 1
## farm_1 0.768 0.0535 40 0.660 0.876 1
## farm_4 0.667 0.1691 40 0.325 1.008 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Ncattle----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 872.18 290.727 633.27 < 2.2e-16 ***
## Residuals 40 18.36 0.459
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.0000 0.214 40 -0.4330 0.433
## farm_2 0.0909 0.144 40 -0.2010 0.383
## farm_3 0.3636 0.204 40 -0.0493 0.777
## farm_4 30.0000 0.678 40 28.6306 31.369
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.0909 0.258 40 -0.352 1.0000
## farm_1 - farm_3 -0.3636 0.296 40 -1.228 1.0000
## farm_1 - farm_4 -30.0000 0.711 40 -42.216 <.0001
## farm_2 - farm_3 -0.2727 0.250 40 -1.090 1.0000
## farm_2 - farm_4 -29.9091 0.693 40 -43.172 <.0001
## farm_3 - farm_4 -29.6364 0.708 40 -41.878 <.0001
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 30.0000 0.678 40 28.6306 31.369 1
## farm_3 0.3636 0.204 40 -0.0493 0.777 2
## farm_2 0.0909 0.144 40 -0.2010 0.383 2
## farm_1 0.0000 0.214 40 -0.4330 0.433 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Ngoats----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 112.06 37.352 5.4995 0.002933 **
## Residuals 40 271.67 6.792
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 2.900 0.824 40 1.23 4.57
## farm_2 0.773 0.556 40 -0.35 1.90
## farm_3 4.091 0.786 40 2.50 5.68
## farm_4 7.000 2.606 40 1.73 12.27
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 2.13 0.994 40 2.140 0.2309
## farm_1 - farm_3 -1.19 1.139 40 -1.046 1.0000
## farm_1 - farm_4 -4.10 2.733 40 -1.500 0.8488
## farm_2 - farm_3 -3.32 0.962 40 -3.448 0.0081
## farm_2 - farm_4 -6.23 2.665 40 -2.337 0.1472
## farm_3 - farm_4 -2.91 2.722 40 -1.069 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 7.000 2.606 40 1.73 12.27 12
## farm_3 4.091 0.786 40 2.50 5.68 1
## farm_1 2.900 0.824 40 1.23 4.57 12
## farm_2 0.773 0.556 40 -0.35 1.90 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Npigs----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 64.864 21.6212 6.3191 0.001305 **
## Residuals 40 136.864 3.4216
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1.500 0.585 40 0.318 2.68
## farm_2 0.455 0.394 40 -0.343 1.25
## farm_3 1.909 0.558 40 0.782 3.04
## farm_4 8.000 1.850 40 4.262 11.74
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 1.045 0.705 40 1.482 0.8772
## farm_1 - farm_3 -0.409 0.808 40 -0.506 1.0000
## farm_1 - farm_4 -6.500 1.940 40 -3.350 0.0106
## farm_2 - farm_3 -1.455 0.683 40 -2.129 0.2365
## farm_2 - farm_4 -7.545 1.891 40 -3.990 0.0016
## farm_3 - farm_4 -6.091 1.932 40 -3.153 0.0184
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 8.000 1.850 40 4.262 11.74 1
## farm_3 1.909 0.558 40 0.782 3.04 2
## farm_1 1.500 0.585 40 0.318 2.68 2
## farm_2 0.455 0.394 40 -0.343 1.25 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Nchickens----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 461 153.67 3.3997 0.02681 *
## Residuals 40 1808 45.20
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 11.50 2.13 40 7.20 15.80
## farm_2 4.41 1.43 40 1.51 7.31
## farm_3 10.27 2.03 40 6.18 14.37
## farm_4 5.00 6.72 40 -8.59 18.59
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 7.091 2.56 40 2.765 0.0514
## farm_1 - farm_3 1.227 2.94 40 0.418 1.0000
## farm_1 - farm_4 6.500 7.05 40 0.922 1.0000
## farm_2 - farm_3 -5.864 2.48 40 -2.362 0.1388
## farm_2 - farm_4 -0.591 6.87 40 -0.086 1.0000
## farm_3 - farm_4 5.273 7.02 40 0.751 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 11.50 2.13 40 7.20 15.80 1
## farm_3 10.27 2.03 40 6.18 14.37 12
## farm_4 5.00 6.72 40 -8.59 18.59 12
## farm_2 4.41 1.43 40 1.51 7.31 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------TLU----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 495.34 165.11 367.22 < 2.2e-16 ***
## Residuals 40 17.99 0.45
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.630 0.212 40 0.2014 1.059
## farm_2 0.253 0.143 40 -0.0358 0.542
## farm_3 1.053 0.202 40 0.6441 1.461
## farm_4 22.950 0.671 40 21.5948 24.305
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.377 0.256 40 1.473 0.8907
## farm_1 - farm_3 -0.423 0.293 40 -1.443 0.9411
## farm_1 - farm_4 -22.320 0.703 40 -31.737 <.0001
## farm_2 - farm_3 -0.800 0.248 40 -3.229 0.0149
## farm_2 - farm_4 -22.697 0.686 40 -33.104 <.0001
## farm_3 - farm_4 -21.897 0.700 40 -31.266 <.0001
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 22.950 0.671 40 21.5948 24.305 1
## farm_3 1.053 0.202 40 0.6441 1.461 2
## farm_1 0.630 0.212 40 0.2014 1.059 23
## farm_2 0.253 0.143 40 -0.0358 0.542 3
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------TLU_density----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 13.6304 4.5435 338.66 < 2.2e-16 ***
## Residuals 40 0.5366 0.0134
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.1002 0.0366 40 0.0262 0.174
## farm_2 0.0693 0.0247 40 0.0194 0.119
## farm_3 0.1481 0.0349 40 0.0775 0.219
## farm_4 3.8250 0.1158 40 3.5909 4.059
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.0309 0.0442 40 0.700 1.0000
## farm_1 - farm_3 -0.0478 0.0506 40 -0.945 1.0000
## farm_1 - farm_4 -3.7248 0.1215 40 -30.661 <.0001
## farm_2 - farm_3 -0.0788 0.0428 40 -1.841 0.4379
## farm_2 - farm_4 -3.7557 0.1184 40 -31.712 <.0001
## farm_3 - farm_4 -3.6769 0.1210 40 -30.393 <.0001
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 3.8250 0.1158 40 3.5909 4.059 1
## farm_3 0.1481 0.0349 40 0.0775 0.219 2
## farm_1 0.1002 0.0366 40 0.0262 0.174 2
## farm_2 0.0693 0.0247 40 0.0194 0.119 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------TotalLand----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 168.12 56.038 4.8755 0.005546 **
## Residuals 40 459.75 11.494
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 8.25 1.072 40 6.083 10.42
## farm_2 3.81 0.723 40 2.346 5.27
## farm_3 7.18 1.022 40 5.116 9.25
## farm_4 6.00 3.390 40 -0.852 12.85
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 4.44 1.29 40 3.436 0.0083
## farm_1 - farm_3 1.07 1.48 40 0.721 1.0000
## farm_1 - farm_4 2.25 3.56 40 0.633 1.0000
## farm_2 - farm_3 -3.38 1.25 40 -2.696 0.0613
## farm_2 - farm_4 -2.19 3.47 40 -0.633 1.0000
## farm_3 - farm_4 1.18 3.54 40 0.334 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 8.25 1.072 40 6.083 10.42 1
## farm_3 7.18 1.022 40 5.116 9.25 1
## farm_4 6.00 3.390 40 -0.852 12.85 12
## farm_2 3.81 0.723 40 2.346 5.27 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------AvgMZ_yield.kgs.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 55157130 18385710 5.2263 0.003868 **
## Residuals 40 140716184 3517905
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 3052 593 40 1854 4251
## farm_2 1413 400 40 605 2222
## farm_3 4036 566 40 2893 5179
## farm_4 2000 1876 40 -1791 5791
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 1639 715 40 2.292 0.1637
## farm_1 - farm_3 -984 820 40 -1.201 1.0000
## farm_1 - farm_4 1052 1967 40 0.535 1.0000
## farm_2 - farm_3 -2623 693 40 -3.787 0.0030
## farm_2 - farm_4 -587 1918 40 -0.306 1.0000
## farm_3 - farm_4 2036 1959 40 1.039 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 4036 566 40 2893 5179 1
## farm_1 3052 593 40 1854 4251 12
## farm_4 2000 1876 40 -1791 5791 12
## farm_2 1413 400 40 605 2222 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercentageMaizeArea----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 0.02981 0.0099377 0.4741 0.702
## Residuals 40 0.83838 0.0209595
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.388 0.0458 40 0.296 0.481
## farm_2 0.443 0.0309 40 0.381 0.506
## farm_3 0.449 0.0437 40 0.361 0.537
## farm_4 0.500 0.1448 40 0.207 0.793
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.05531 0.0552 40 -1.002 1.0000
## farm_1 - farm_3 -0.06083 0.0633 40 -0.962 1.0000
## farm_1 - farm_4 -0.11190 0.1518 40 -0.737 1.0000
## farm_2 - farm_3 -0.00552 0.0535 40 -0.103 1.0000
## farm_2 - farm_4 -0.05658 0.1480 40 -0.382 1.0000
## farm_3 - farm_4 -0.05107 0.1512 40 -0.338 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 0.500 0.1448 40 0.207 0.793 1
## farm_3 0.449 0.0437 40 0.361 0.537 1
## farm_2 0.443 0.0309 40 0.381 0.506 1
## farm_1 0.388 0.0458 40 0.296 0.481 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercentageLegumeArea----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 0.20848 0.069492 2.9318 0.04505 *
## Residuals 40 0.94812 0.023703
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.376 0.0487 40 0.2779 0.475
## farm_2 0.477 0.0328 40 0.4111 0.544
## farm_3 0.319 0.0464 40 0.2250 0.413
## farm_4 0.333 0.1540 40 0.0222 0.644
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.1011 0.0587 40 -1.721 0.5575
## farm_1 - farm_3 0.0575 0.0673 40 0.855 1.0000
## farm_1 - farm_4 0.0430 0.1615 40 0.266 1.0000
## farm_2 - farm_3 0.1586 0.0569 40 2.789 0.0483
## farm_2 - farm_4 0.1441 0.1574 40 0.915 1.0000
## farm_3 - farm_4 -0.0145 0.1608 40 -0.090 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_2 0.477 0.0328 40 0.4111 0.544 1
## farm_1 0.376 0.0487 40 0.2779 0.475 12
## farm_4 0.333 0.1540 40 0.0222 0.644 12
## farm_3 0.319 0.0464 40 0.2250 0.413 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------highestEdu_qualification.HHH.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 0.5773 0.19242 0.5345 0.6613
## Residuals 40 14.4000 0.36000
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1.60 0.190 40 1.217 1.98
## farm_2 1.45 0.128 40 1.196 1.71
## farm_3 1.36 0.181 40 0.998 1.73
## farm_4 2.00 0.600 40 0.787 3.21
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.1455 0.229 40 0.636 1.0000
## farm_1 - farm_3 0.2364 0.262 40 0.902 1.0000
## farm_1 - farm_4 -0.4000 0.629 40 -0.636 1.0000
## farm_2 - farm_3 0.0909 0.222 40 0.410 1.0000
## farm_2 - farm_4 -0.5455 0.613 40 -0.889 1.0000
## farm_3 - farm_4 -0.6364 0.627 40 -1.015 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 2.00 0.600 40 0.787 3.21 1
## farm_1 1.60 0.190 40 1.217 1.98 1
## farm_2 1.45 0.128 40 1.196 1.71 1
## farm_3 1.36 0.181 40 0.998 1.73 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Access_to_loan_during_2022.2023_season----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 2.4636 0.82121 5.2443 0.003798 **
## Residuals 40 6.2636 0.15659
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.600 0.1251 40 0.3471 0.853
## farm_2 0.227 0.0844 40 0.0568 0.398
## farm_3 0.000 0.1193 40 -0.2411 0.241
## farm_4 1.000 0.3957 40 0.2002 1.800
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.373 0.151 40 2.470 0.1073
## farm_1 - farm_3 0.600 0.173 40 3.470 0.0076
## farm_1 - farm_4 -0.400 0.415 40 -0.964 1.0000
## farm_2 - farm_3 0.227 0.146 40 1.555 0.7665
## farm_2 - farm_4 -0.773 0.405 40 -1.910 0.3801
## farm_3 - farm_4 -1.000 0.413 40 -2.419 0.1211
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 1.000 0.3957 40 0.2002 1.800 12
## farm_1 0.600 0.1251 40 0.3471 0.853 1
## farm_2 0.227 0.0844 40 0.0568 0.398 12
## farm_3 0.000 0.1193 40 -0.2411 0.241 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_practice__irrigation_farming.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 1.7409 0.58030 2.8497 0.04939 *
## Residuals 40 8.1455 0.20364
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.700 0.1427 40 0.41159 0.988
## farm_2 0.227 0.0962 40 0.03283 0.422
## farm_3 0.273 0.1361 40 -0.00226 0.548
## farm_4 0.000 0.4513 40 -0.91203 0.912
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.4727 0.172 40 2.747 0.0539
## farm_1 - farm_3 0.4273 0.197 40 2.167 0.2175
## farm_1 - farm_4 0.7000 0.473 40 1.479 0.8818
## farm_2 - farm_3 -0.0455 0.167 40 -0.273 1.0000
## farm_2 - farm_4 0.2273 0.461 40 0.493 1.0000
## farm_3 - farm_4 0.2727 0.471 40 0.579 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.700 0.1427 40 0.41159 0.988 1
## farm_3 0.273 0.1361 40 -0.00226 0.548 12
## farm_2 0.227 0.0962 40 0.03283 0.422 2
## farm_4 0.000 0.4513 40 -0.91203 0.912 12
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Manure_application_in_Maize_field_during_2022.23_season----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 1.6727 0.55758 3.1615 0.03488 *
## Residuals 40 7.0545 0.17636
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.800 0.1328 40 0.532 1.068
## farm_2 0.545 0.0895 40 0.364 0.726
## farm_3 1.000 0.1266 40 0.744 1.256
## farm_4 1.000 0.4200 40 0.151 1.849
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.255 0.160 40 1.589 0.7192
## farm_1 - farm_3 -0.200 0.183 40 -1.090 1.0000
## farm_1 - farm_4 -0.200 0.440 40 -0.454 1.0000
## farm_2 - farm_3 -0.455 0.155 40 -2.931 0.0334
## farm_2 - farm_4 -0.455 0.429 40 -1.059 1.0000
## farm_3 - farm_4 0.000 0.439 40 0.000 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 1.000 0.4200 40 0.151 1.849 12
## farm_3 1.000 0.1266 40 0.744 1.256 1
## farm_1 0.800 0.1328 40 0.532 1.068 12
## farm_2 0.545 0.0895 40 0.364 0.726 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Count_intens_options----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 8.8045 2.93485 4.6804 0.006792 **
## Residuals 40 25.0818 0.62705
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 2.10 0.250 40 1.594 2.61
## farm_2 1.00 0.169 40 0.659 1.34
## farm_3 1.27 0.239 40 0.790 1.76
## farm_4 2.00 0.792 40 0.400 3.60
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 1.100 0.302 40 3.642 0.0046
## farm_1 - farm_3 0.827 0.346 40 2.391 0.1296
## farm_1 - farm_4 0.100 0.831 40 0.120 1.0000
## farm_2 - farm_3 -0.273 0.292 40 -0.933 1.0000
## farm_2 - farm_4 -1.000 0.810 40 -1.235 1.0000
## farm_3 - farm_4 -0.727 0.827 40 -0.879 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 2.10 0.250 40 1.594 2.61 1
## farm_4 2.00 0.792 40 0.400 3.60 12
## farm_3 1.27 0.239 40 0.790 1.76 12
## farm_2 1.00 0.169 40 0.659 1.34 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_pracatice_intercroping.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 0.65 0.21667 1.1404 0.3445
## Residuals 40 7.60 0.19000
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.800 0.1378 40 0.521 1.079
## farm_2 0.636 0.0929 40 0.449 0.824
## farm_3 0.909 0.1314 40 0.643 1.175
## farm_4 1.000 0.4359 40 0.119 1.881
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.1636 0.166 40 0.984 1.0000
## farm_1 - farm_3 -0.1091 0.190 40 -0.573 1.0000
## farm_1 - farm_4 -0.2000 0.457 40 -0.437 1.0000
## farm_2 - farm_3 -0.2727 0.161 40 -1.694 0.5878
## farm_2 - farm_4 -0.3636 0.446 40 -0.816 1.0000
## farm_3 - farm_4 -0.0909 0.455 40 -0.200 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 1.000 0.4359 40 0.119 1.881 1
## farm_3 0.909 0.1314 40 0.643 1.175 1
## farm_1 0.800 0.1378 40 0.521 1.079 1
## farm_2 0.636 0.0929 40 0.449 0.824 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_practice_cover_croping.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 2.6000 0.86667 6.7612 0.0008527 ***
## Residuals 40 5.1273 0.12818
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.6000 0.1132 40 0.3712 0.829
## farm_2 0.0909 0.0763 40 -0.0634 0.245
## farm_3 0.0909 0.1079 40 -0.1273 0.309
## farm_4 1.0000 0.3580 40 0.2764 1.724
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.509 0.137 40 3.728 0.0036
## farm_1 - farm_3 0.509 0.156 40 3.254 0.0139
## farm_1 - farm_4 -0.400 0.375 40 -1.065 1.0000
## farm_2 - farm_3 0.000 0.132 40 0.000 1.0000
## farm_2 - farm_4 -0.909 0.366 40 -2.483 0.1038
## farm_3 - farm_4 -0.909 0.374 40 -2.431 0.1178
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 1.0000 0.3580 40 0.2764 1.724 12
## farm_1 0.6000 0.1132 40 0.3712 0.829 1
## farm_2 0.0909 0.0763 40 -0.0634 0.245 2
## farm_3 0.0909 0.1079 40 -0.1273 0.309 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_practice_integrated_pest_management.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 0.9455 0.31515 1.3648 0.2673
## Residuals 40 9.2364 0.23091
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.800 0.152 40 0.493 1.107
## farm_2 0.545 0.102 40 0.338 0.753
## farm_3 0.727 0.145 40 0.434 1.020
## farm_4 0.000 0.481 40 -0.971 0.971
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.2545 0.183 40 1.389 1.0000
## farm_1 - farm_3 0.0727 0.210 40 0.346 1.0000
## farm_1 - farm_4 0.8000 0.504 40 1.587 0.7218
## farm_2 - farm_3 -0.1818 0.177 40 -1.025 1.0000
## farm_2 - farm_4 0.5455 0.491 40 1.110 1.0000
## farm_3 - farm_4 0.7273 0.502 40 1.449 0.9307
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.800 0.152 40 0.493 1.107 1
## farm_3 0.727 0.145 40 0.434 1.020 1
## farm_2 0.545 0.102 40 0.338 0.753 1
## farm_4 0.000 0.481 40 -0.971 0.971 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_have_agroforestry_trees_in_your_farm.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 3.8545 1.28485 10.547 3.047e-05 ***
## Residuals 40 4.8727 0.12182
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.800 0.1104 40 0.5769 1.023
## farm_2 0.182 0.0744 40 0.0314 0.332
## farm_3 0.000 0.1052 40 -0.2127 0.213
## farm_4 0.000 0.3490 40 -0.7054 0.705
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.618 0.133 40 4.644 0.0002
## farm_1 - farm_3 0.800 0.152 40 5.246 <.0001
## farm_1 - farm_4 0.800 0.366 40 2.185 0.2086
## farm_2 - farm_3 0.182 0.129 40 1.411 0.9964
## farm_2 - farm_4 0.182 0.357 40 0.509 1.0000
## farm_3 - farm_4 0.000 0.365 40 0.000 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.800 0.1104 40 0.5769 1.023 1
## farm_2 0.182 0.0744 40 0.0314 0.332 2
## farm_4 0.000 0.3490 40 -0.7054 0.705 12
## farm_3 0.000 0.1052 40 -0.2127 0.213 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_have_fruit_trees.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 2.9000 0.96667 5.31 0.003553 **
## Residuals 40 7.2818 0.18205
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.8000 0.135 40 0.527 1.073
## farm_2 0.3182 0.091 40 0.134 0.502
## farm_3 0.0909 0.129 40 -0.169 0.351
## farm_4 0.0000 0.427 40 -0.862 0.862
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.4818 0.163 40 2.961 0.0308
## farm_1 - farm_3 0.7091 0.186 40 3.804 0.0029
## farm_1 - farm_4 0.8000 0.447 40 1.788 0.4884
## farm_2 - farm_3 0.2273 0.158 40 1.442 0.9417
## farm_2 - farm_4 0.3182 0.436 40 0.729 1.0000
## farm_3 - farm_4 0.0909 0.446 40 0.204 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.8000 0.135 40 0.527 1.073 1
## farm_2 0.3182 0.091 40 0.134 0.502 2
## farm_3 0.0909 0.129 40 -0.169 0.351 2
## farm_4 0.0000 0.427 40 -0.862 0.862 12
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_own_any_vegetable_garden.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 2.8318 0.94394 5.9674 0.00184 **
## Residuals 40 6.3273 0.15818
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.700 0.1258 40 0.4458 0.954
## farm_2 0.136 0.0848 40 -0.0350 0.308
## farm_3 0.182 0.1199 40 -0.0605 0.424
## farm_4 1.000 0.3977 40 0.1962 1.804
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.5636 0.152 40 3.716 0.0037
## farm_1 - farm_3 0.5182 0.174 40 2.982 0.0292
## farm_1 - farm_4 -0.3000 0.417 40 -0.719 1.0000
## farm_2 - farm_3 -0.0455 0.147 40 -0.309 1.0000
## farm_2 - farm_4 -0.8636 0.407 40 -2.124 0.2396
## farm_3 - farm_4 -0.8182 0.415 40 -1.970 0.3350
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 1.000 0.3977 40 0.1962 1.804 12
## farm_1 0.700 0.1258 40 0.4458 0.954 1
## farm_3 0.182 0.1199 40 -0.0605 0.424 2
## farm_2 0.136 0.0848 40 -0.0350 0.308 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Count_sust_practices----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 50.591 16.864 17.604 1.929e-07 ***
## Residuals 40 38.318 0.958
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 4.50 0.310 40 3.87 5.13
## farm_2 1.91 0.209 40 1.49 2.33
## farm_3 2.00 0.295 40 1.40 2.60
## farm_4 3.00 0.979 40 1.02 4.98
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 2.5909 0.373 40 6.941 <.0001
## farm_1 - farm_3 2.5000 0.428 40 5.846 <.0001
## farm_1 - farm_4 1.5000 1.027 40 1.461 0.9106
## farm_2 - farm_3 -0.0909 0.361 40 -0.252 1.0000
## farm_2 - farm_4 -1.0909 1.001 40 -1.090 1.0000
## farm_3 - farm_4 -1.0000 1.022 40 -0.978 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 4.50 0.310 40 3.87 5.13 1
## farm_4 3.00 0.979 40 1.02 4.98 12
## farm_3 2.00 0.295 40 1.40 2.60 2
## farm_2 1.91 0.209 40 1.49 2.33 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "================ Number of farm types = 3 ================"
## [1] "--------------------Age----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 132.55 66.273 1.3518 0.2701
## Residuals 41 2010.00 49.024
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 43.6 2.11 41 39.4 47.9
## farm_2 43.9 1.49 41 40.9 46.9
## farm_3 47.8 2.11 41 43.6 52.1
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.273 2.59 41 -0.105 1.0000
## farm_1 - farm_3 -4.182 2.99 41 -1.401 0.5065
## farm_2 - farm_3 -3.909 2.59 41 -1.512 0.4147
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 47.8 2.11 41 43.6 52.1 1
## farm_2 43.9 1.49 41 40.9 46.9 1
## farm_1 43.6 2.11 41 39.4 47.9 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------HHSize----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 34.955 17.4773 4.2005 0.0219 *
## Residuals 41 170.591 4.1608
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 6.64 0.615 41 5.39 7.88
## farm_2 5.50 0.435 41 4.62 6.38
## farm_3 7.64 0.615 41 6.39 8.88
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 1.14 0.753 41 1.509 0.4172
## farm_1 - farm_3 -1.00 0.870 41 -1.150 0.7708
## farm_2 - farm_3 -2.14 0.753 41 -2.836 0.0212
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 7.64 0.615 41 6.39 8.88 1
## farm_1 6.64 0.615 41 5.39 7.88 12
## farm_2 5.50 0.435 41 4.62 6.38 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------HH_income_----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 3.0289e+13 1.5145e+13 12.89 4.539e-05 ***
## Residuals 41 4.8173e+13 1.1749e+12
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1502273 326823 41 842240 2162306
## farm_2 602864 231099 41 136150 1069577
## farm_3 2620909 326823 41 1960876 3280942
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 899409 400275 41 2.247 0.0903
## farm_1 - farm_3 -1118636 462198 41 -2.420 0.0601
## farm_2 - farm_3 -2018046 400275 41 -5.042 <.0001
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 2620909 326823 41 1960876 3280942 1
## farm_1 1502273 326823 41 842240 2162306 12
## farm_2 602864 231099 41 136150 1069577 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------IncomeFarming----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 1.7487e+13 8.7436e+12 12.278 6.628e-05 ***
## Residuals 41 2.9196e+13 7.1211e+11
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1113636 254435 41 599795 1627477
## farm_2 552046 179912 41 188705 915386
## farm_3 2095455 254435 41 1581614 2609296
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 561591 311617 41 1.802 0.2366
## farm_1 - farm_3 -981818 359825 41 -2.729 0.0280
## farm_2 - farm_3 -1543409 311617 41 -4.953 <.0001
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 2095455 254435 41 1581614 2609296 1
## farm_1 1113636 254435 41 599795 1627477 2
## farm_2 552046 179912 41 188705 915386 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercFarmIncome----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 0.17151 0.085754 3.0492 0.05827 .
## Residuals 41 1.15305 0.028123
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.759 0.0506 41 0.657 0.861
## farm_2 0.908 0.0358 41 0.836 0.981
## farm_3 0.827 0.0506 41 0.725 0.929
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.1492 0.0619 41 -2.410 0.0616
## farm_1 - farm_3 -0.0680 0.0715 41 -0.952 1.0000
## farm_2 - farm_3 0.0812 0.0619 41 1.311 0.5913
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_2 0.908 0.0358 41 0.836 0.981 1
## farm_3 0.827 0.0506 41 0.725 0.929 1
## farm_1 0.759 0.0506 41 0.657 0.861 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Ncattle----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 54.00 27.000 1.3233 0.2774
## Residuals 41 836.55 20.404
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 2.7273 1.362 41 -0.0232 5.48
## farm_2 0.0909 0.963 41 -1.8540 2.04
## farm_3 0.3636 1.362 41 -2.3868 3.11
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 2.636 1.67 41 1.581 0.3650
## farm_1 - farm_3 2.364 1.93 41 1.227 0.6803
## farm_2 - farm_3 -0.273 1.67 41 -0.164 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 2.7273 1.362 41 -0.0232 5.48 1
## farm_3 0.3636 1.362 41 -2.3868 3.11 1
## farm_2 0.0909 0.963 41 -1.8540 2.04 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Ngoats----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 96.773 48.386 6.9134 0.002586 **
## Residuals 41 286.955 6.999
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 3.273 0.798 41 1.662 4.88
## farm_2 0.773 0.564 41 -0.366 1.91
## farm_3 4.091 0.798 41 2.480 5.70
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 2.500 0.977 41 2.559 0.0429
## farm_1 - farm_3 -0.818 1.128 41 -0.725 1.0000
## farm_2 - farm_3 -3.318 0.977 41 -3.397 0.0046
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 4.091 0.798 41 2.480 5.70 1
## farm_1 3.273 0.798 41 1.662 4.88 1
## farm_2 0.773 0.564 41 -0.366 1.91 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Npigs----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 26.455 13.2273 3.0941 0.05604 .
## Residuals 41 175.273 4.2749
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 2.091 0.623 41 0.832 3.35
## farm_2 0.455 0.441 41 -0.436 1.34
## farm_3 1.909 0.623 41 0.650 3.17
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 1.636 0.764 41 2.143 0.1142
## farm_1 - farm_3 0.182 0.882 41 0.206 1.0000
## farm_2 - farm_3 -1.455 0.764 41 -1.905 0.1914
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 2.091 0.623 41 0.832 3.35 1
## farm_3 1.909 0.623 41 0.650 3.17 1
## farm_2 0.455 0.441 41 -0.436 1.34 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Nchickens----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 422.59 211.295 4.6919 0.01463 *
## Residuals 41 1846.41 45.034
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 10.91 2.02 41 6.82 15.0
## farm_2 4.41 1.43 41 1.52 7.3
## farm_3 10.27 2.02 41 6.19 14.4
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 6.500 2.48 41 2.623 0.0365
## farm_1 - farm_3 0.636 2.86 41 0.222 1.0000
## farm_2 - farm_3 -5.864 2.48 41 -2.366 0.0683
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 10.91 2.02 41 6.82 15.0 1
## farm_3 10.27 2.02 41 6.19 14.4 12
## farm_2 4.41 1.43 41 1.52 7.3 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------TLU----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 42.45 21.224 1.848 0.1704
## Residuals 41 470.88 11.485
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 2.659 1.022 41 0.596 4.72
## farm_2 0.253 0.723 41 -1.206 1.71
## farm_3 1.053 1.022 41 -1.011 3.12
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 2.41 1.25 41 1.923 0.1845
## farm_1 - farm_3 1.61 1.45 41 1.112 0.8183
## farm_2 - farm_3 -0.80 1.25 41 -0.639 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 2.659 1.022 41 0.596 4.72 1
## farm_3 1.053 1.022 41 -1.011 3.12 1
## farm_2 0.253 0.723 41 -1.206 1.71 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------TLU_density----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 1.0177 0.50887 1.5867 0.2169
## Residuals 41 13.1493 0.32071
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.4388 0.171 41 0.094 0.784
## farm_2 0.0693 0.121 41 -0.175 0.313
## farm_3 0.1481 0.171 41 -0.197 0.493
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.3695 0.209 41 1.767 0.2540
## farm_1 - farm_3 0.2908 0.241 41 1.204 0.7063
## farm_2 - farm_3 -0.0788 0.209 41 -0.377 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.4388 0.171 41 0.094 0.784 1
## farm_3 0.1481 0.171 41 -0.197 0.493 1
## farm_2 0.0693 0.121 41 -0.175 0.313 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------TotalLand----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 163.51 81.756 7.2186 0.002061 **
## Residuals 41 464.36 11.326
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 8.05 1.015 41 6.00 10.09
## farm_2 3.81 0.717 41 2.36 5.26
## farm_3 7.18 1.015 41 5.13 9.23
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 4.239 1.24 41 3.411 0.0044
## farm_1 - farm_3 0.864 1.43 41 0.602 1.0000
## farm_2 - farm_3 -3.375 1.24 41 -2.716 0.0289
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 8.05 1.015 41 6.00 10.09 1
## farm_3 7.18 1.015 41 5.13 9.23 1
## farm_2 3.81 0.717 41 2.36 5.26 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------AvgMZ_yield.kgs.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 54150079 27075039 7.8327 0.001315 **
## Residuals 41 141723235 3456664
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 2957 561 41 1825 4089
## farm_2 1413 396 41 613 2214
## farm_3 4036 561 41 2904 5168
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 1544 687 41 2.248 0.0900
## farm_1 - farm_3 -1080 793 41 -1.362 0.5421
## farm_2 - farm_3 -2623 687 41 -3.821 0.0013
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 4036 561 41 2904 5168 1
## farm_1 2957 561 41 1825 4089 12
## farm_2 1413 396 41 613 2214 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercentageMaizeArea----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 0.01843 0.0092153 0.4446 0.6441
## Residuals 41 0.84976 0.0207259
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.398 0.0434 41 0.311 0.486
## farm_2 0.443 0.0307 41 0.381 0.505
## farm_3 0.449 0.0434 41 0.361 0.537
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.04514 0.0532 41 -0.849 1.0000
## farm_1 - farm_3 -0.05066 0.0614 41 -0.825 1.0000
## farm_2 - farm_3 -0.00552 0.0532 41 -0.104 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 0.449 0.0434 41 0.361 0.537 1
## farm_2 0.443 0.0307 41 0.381 0.505 1
## farm_1 0.398 0.0434 41 0.311 0.486 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercentageLegumeArea----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 0.20679 0.103397 4.4633 0.01763 *
## Residuals 41 0.94980 0.023166
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.372 0.0459 41 0.280 0.465
## farm_2 0.477 0.0324 41 0.412 0.543
## farm_3 0.319 0.0459 41 0.226 0.412
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.1050 0.0562 41 -1.868 0.2068
## farm_1 - farm_3 0.0536 0.0649 41 0.826 1.0000
## farm_2 - farm_3 0.1586 0.0562 41 2.821 0.0220
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_2 0.477 0.0324 41 0.412 0.543 1
## farm_1 0.372 0.0459 41 0.280 0.465 12
## farm_3 0.319 0.0459 41 0.226 0.412 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------highestEdu_qualification.HHH.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 0.4318 0.21591 0.6086 0.549
## Residuals 41 14.5455 0.35477
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1.64 0.180 41 1.27 2.00
## farm_2 1.45 0.127 41 1.20 1.71
## farm_3 1.36 0.180 41 1.00 1.73
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.1818 0.220 41 0.827 1.0000
## farm_1 - farm_3 0.2727 0.254 41 1.074 0.8675
## farm_2 - farm_3 0.0909 0.220 41 0.413 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 1.64 0.180 41 1.27 2.00 1
## farm_2 1.45 0.127 41 1.20 1.71 1
## farm_3 1.36 0.180 41 1.00 1.73 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Access_to_loan_during_2022.2023_season----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 2.3182 1.15909 7.4149 0.001784 **
## Residuals 41 6.4091 0.15632
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.636 0.1192 41 0.396 0.877
## farm_2 0.227 0.0843 41 0.057 0.398
## farm_3 0.000 0.1192 41 -0.241 0.241
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.409 0.146 41 2.802 0.0232
## farm_1 - farm_3 0.636 0.169 41 3.775 0.0015
## farm_2 - farm_3 0.227 0.146 41 1.557 0.3817
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.636 0.1192 41 0.396 0.877 1
## farm_2 0.227 0.0843 41 0.057 0.398 2
## farm_3 0.000 0.1192 41 -0.241 0.241 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_practice__irrigation_farming.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 1.2955 0.64773 3.0913 0.05618 .
## Residuals 41 8.5909 0.20953
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.636 0.1380 41 0.3576 0.915
## farm_2 0.227 0.0976 41 0.0302 0.424
## farm_3 0.273 0.1380 41 -0.0060 0.551
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.4091 0.169 41 2.420 0.0601
## farm_1 - farm_3 0.3636 0.195 41 1.863 0.2089
## farm_2 - farm_3 -0.0455 0.169 41 -0.269 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.636 0.1380 41 0.3576 0.915 1
## farm_3 0.273 0.1380 41 -0.0060 0.551 1
## farm_2 0.227 0.0976 41 0.0302 0.424 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Manure_application_in_Maize_field_during_2022.23_season----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 1.6364 0.81818 4.7308 0.01417 *
## Residuals 41 7.0909 0.17295
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.818 0.1254 41 0.565 1.071
## farm_2 0.545 0.0887 41 0.366 0.725
## farm_3 1.000 0.1254 41 0.747 1.253
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.273 0.154 41 1.776 0.2495
## farm_1 - farm_3 -0.182 0.177 41 -1.025 0.9337
## farm_2 - farm_3 -0.455 0.154 41 -2.960 0.0153
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 1.000 0.1254 41 0.747 1.253 1
## farm_1 0.818 0.1254 41 0.565 1.071 12
## farm_2 0.545 0.0887 41 0.366 0.725 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Count_intens_options----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 8.7955 4.3977 7.1861 0.002111 **
## Residuals 41 25.0909 0.6120
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 2.09 0.236 41 1.615 2.57
## farm_2 1.00 0.167 41 0.663 1.34
## farm_3 1.27 0.236 41 0.796 1.75
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 1.091 0.289 41 3.776 0.0015
## farm_1 - farm_3 0.818 0.334 41 2.453 0.0556
## farm_2 - farm_3 -0.273 0.289 41 -0.944 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 2.09 0.236 41 1.615 2.57 1
## farm_3 1.27 0.236 41 0.796 1.75 2
## farm_2 1.00 0.167 41 0.663 1.34 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_pracatice_intercroping.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 0.6136 0.30682 1.6473 0.2051
## Residuals 41 7.6364 0.18625
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.818 0.130 41 0.555 1.081
## farm_2 0.636 0.092 41 0.451 0.822
## farm_3 0.909 0.130 41 0.646 1.172
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.1818 0.159 41 1.141 0.7816
## farm_1 - farm_3 -0.0909 0.184 41 -0.494 1.0000
## farm_2 - farm_3 -0.2727 0.159 41 -1.711 0.2837
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 0.909 0.130 41 0.646 1.172 1
## farm_1 0.818 0.130 41 0.555 1.081 1
## farm_2 0.636 0.092 41 0.451 0.822 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_practice_cover_croping.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 2.4545 1.2273 9.5431 0.0003955 ***
## Residuals 41 5.2727 0.1286
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.6364 0.1081 41 0.4180 0.855
## farm_2 0.0909 0.0765 41 -0.0635 0.245
## farm_3 0.0909 0.1081 41 -0.1275 0.309
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.545 0.132 41 4.119 0.0005
## farm_1 - farm_3 0.545 0.153 41 3.567 0.0028
## farm_2 - farm_3 0.000 0.132 41 0.000 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.6364 0.1081 41 0.4180 0.855 1
## farm_2 0.0909 0.0765 41 -0.0635 0.245 2
## farm_3 0.0909 0.1081 41 -0.1275 0.309 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_practice_integrated_pest_management.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 0.3636 0.18182 0.7593 0.4745
## Residuals 41 9.8182 0.23947
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.727 0.148 41 0.429 1.025
## farm_2 0.545 0.104 41 0.335 0.756
## farm_3 0.727 0.148 41 0.429 1.025
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.182 0.181 41 1.006 0.9607
## farm_1 - farm_3 0.000 0.209 41 0.000 1.0000
## farm_2 - farm_3 -0.182 0.181 41 -1.006 0.9607
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 0.727 0.148 41 0.429 1.025 1
## farm_1 0.727 0.148 41 0.429 1.025 1
## farm_2 0.545 0.104 41 0.335 0.756 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_have_agroforestry_trees_in_your_farm.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 3.2727 1.63636 12.3 6.539e-05 ***
## Residuals 41 5.4545 0.13304
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.727 0.1100 41 0.5052 0.949
## farm_2 0.182 0.0778 41 0.0248 0.339
## farm_3 0.000 0.1100 41 -0.2221 0.222
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.545 0.135 41 4.050 0.0007
## farm_1 - farm_3 0.727 0.156 41 4.676 0.0001
## farm_2 - farm_3 0.182 0.135 41 1.350 0.5534
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.727 0.1100 41 0.5052 0.949 1
## farm_2 0.182 0.0778 41 0.0248 0.339 2
## farm_3 0.000 0.1100 41 -0.2221 0.222 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_have_fruit_trees.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 2.3182 1.1591 6.0434 0.00501 **
## Residuals 41 7.8636 0.1918
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.7273 0.1320 41 0.461 0.994
## farm_2 0.3182 0.0934 41 0.130 0.507
## farm_3 0.0909 0.1320 41 -0.176 0.358
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.409 0.162 41 2.530 0.0461
## farm_1 - farm_3 0.636 0.187 41 3.408 0.0044
## farm_2 - farm_3 0.227 0.162 41 1.405 0.5024
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.7273 0.1320 41 0.461 0.994 1
## farm_2 0.3182 0.0934 41 0.130 0.507 2
## farm_3 0.0909 0.1320 41 -0.176 0.358 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Do_you_own_any_vegetable_garden.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 2.7500 1.37500 8.7961 0.0006628 ***
## Residuals 41 6.4091 0.15632
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.727 0.1192 41 0.4865 0.968
## farm_2 0.136 0.0843 41 -0.0339 0.307
## farm_3 0.182 0.1192 41 -0.0589 0.423
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.5909 0.146 41 4.047 0.0007
## farm_1 - farm_3 0.5455 0.169 41 3.235 0.0072
## farm_2 - farm_3 -0.0455 0.146 41 -0.311 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.727 0.1192 41 0.4865 0.968 1
## farm_3 0.182 0.1192 41 -0.0589 0.423 2
## farm_2 0.136 0.0843 41 -0.0339 0.307 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Count_sust_practices----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 48.545 24.2727 24.655 9.32e-08 ***
## Residuals 41 40.364 0.9845
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 4.36 0.299 41 3.76 4.97
## farm_2 1.91 0.212 41 1.48 2.34
## farm_3 2.00 0.299 41 1.40 2.60
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 2.4545 0.366 41 6.699 <.0001
## farm_1 - farm_3 2.3636 0.423 41 5.587 <.0001
## farm_2 - farm_3 -0.0909 0.366 41 -0.248 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 4.36 0.299 41 3.76 4.97 1
## farm_3 2.00 0.299 41 1.40 2.60 2
## farm_2 1.91 0.212 41 1.48 2.34 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
# Choose a few box-plots to display, or any other visual. Here is just an e.g. for per capita income
boxplot_variable <- function(var_name, var_title){
png(paste0('initial_vars/plot_', var_name, '.png'), height = 7.5, width = 10, units = 'cm', res = 1000)
print(
ggplot(typo_1, aes_string('farm_type', var_name)) +
geom_boxplot() +
labs(x = 'Farm type', y = var_title, title = NULL) +
theme_bw()
)
ggsave(paste0('initial_vars/plot_', var_name, '.png'))
dev.off()
}
boxplot_variable('TotalLand', 'Farm size, ha')
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ā¹ Please use tidy evaluation idioms with `aes()`.
## ā¹ See also `vignette("ggplot2-in-packages")` for more information.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('HH_income_', 'Household income, USD')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('PercFarmIncome', 'Proportion of income derived from farming, %')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('PercentageLegumeArea', 'Share of farm area occupied by legume crops, %')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('TLU', 'Size of livestock, TLU')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('TLU_density', '???? TLU density ????')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('Ngoats', 'Number of goats')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('Nchickens', 'Number of chickens')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('AvgMZ_yield.kgs.', 'Maize yield, kg/ha')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('Manure_application_in_Maize_field_during_2022.23_season', 'Manure application')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('Count_sust_practices', 'Number of sustainable practices')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('HHSize', 'Size of household')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('Count_intens_options', 'Number of intensification options')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('Do_you_pracatice_intercroping.', 'Number of intensification options practised')
## Saving 3.94 x 2.95 in image
## png
## 2
boxplot_variable('Do_you_own_any_vegetable_garden.', 'Presence of vegetable garden')
## Saving 3.94 x 2.95 in image
## png
## 2
Since I was unsure about the variables to include in the PCA, below is a subset of the 27 variables which were used in the above lines of codes. This can be modified, of course. Al related plots are generated in a separate folder named āvars_subsetā
# re-run the PCA according to the subset of variables shared in the email of 2024-10-21
pca_df2 <- pca_df |>
select(HHSize, Age, highestEdu_qualification.HHH.,
HH_income_, PercFarmIncome,
TLU,
TotalLand, PercentageMaizeArea, PercentageLegumeArea, AvgMZ_yield.kgs.,
Manure_application_in_Maize_field_during_2022.23_season, Count_sust_practices)
P00 <- GGally::ggpairs(pca_df2)
png('vars_subset/correlation_matrix2.png', height = 25, width = 20, units = 'cm', res = 1000)
P00
ggsave('vars_subset/correlation_matrix2.png')
## Saving 7.87 x 9.84 in image
dev.off()
## png
## 2
# PCA on initially selected variables
res_pca2 <- FactoMineR::PCA(pca_df2)
# choose how many dimensions to incorporate in the typology
# the more dimensions, the more variability is captured, and the more noise is introduced
res_pca2$eig
## eigenvalue percentage of variance cumulative percentage of variance
## comp 1 3.1209014 26.007512 26.00751
## comp 2 1.8672824 15.560687 41.56820
## comp 3 1.4313861 11.928217 53.49642
## comp 4 1.2280086 10.233405 63.72982
## comp 5 0.9758714 8.132262 71.86208
## comp 6 0.9293140 7.744283 79.60637
## comp 7 0.8324000 6.936666 86.54303
## comp 8 0.4569325 3.807771 90.35080
## comp 9 0.3887543 3.239619 93.59042
## comp 10 0.3263572 2.719643 96.31007
## comp 11 0.2914467 2.428722 98.73879
## comp 12 0.1513455 1.261212 100.00000
# what variables are best represented by each dimension
factoextra::fviz_pca_biplot(res_pca2)
factoextra::fviz_pca_biplot(res_pca2, axes = c(1, 3))
factoextra::fviz_pca_biplot(res_pca2, axes = c(1, 4))
factoextra::fviz_pca_biplot(res_pca2, axes = c(2, 3))
factoextra::fviz_pca_biplot(res_pca2, axes = c(2, 4))
factoextra::fviz_pca_biplot(res_pca2, axes = c(3, 4))
PCA_screeplot <- factoextra::fviz_screeplot(res_pca2, addlabels = T)
ind_plot1 <- factoextra::fviz_pca_ind(res_pca2)
ind_plot2 <- factoextra::fviz_pca_ind(res_pca2, axes = c(1, 3))
ind_plot3 <- factoextra::fviz_pca_ind(res_pca2, axes = c(1, 4))
ind_plot4 <- factoextra::fviz_pca_ind(res_pca2, axes = c(2, 3))
ind_plot5 <- factoextra::fviz_pca_ind(res_pca2, axes = c(2, 4))
ind_plot6 <- factoextra::fviz_pca_ind(res_pca2, axes = c(3, 4))
var_plot1 <- factoextra::fviz_pca_var(res_pca2)
var_plot2 <- factoextra::fviz_pca_var(res_pca2, axes = c(1, 3))
var_plot3 <- factoextra::fviz_pca_var(res_pca2, axes = c(1, 4))
var_plot4 <- factoextra::fviz_pca_var(res_pca2, axes = c(2, 3))
var_plot5 <- factoextra::fviz_pca_var(res_pca2, axes = c(2, 4))
var_plot6 <- factoextra::fviz_pca_var(res_pca2, axes = c(3, 4))
# function to save PCA plots
draw_plot <- function(pp, pp_name){
png(paste0('vars_subset/plot_', pp_name, '.png'), height = 15, width = 20, units = 'cm', res = 1000)
print(pp)
ggsave(paste0('vars_subset/plot_', pp_name, '.png'))
dev.off()
}
draw_plot(PCA_screeplot, 'PCA_screeplot')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(ind_plot1, 'PCA_individuals_01')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(ind_plot2, 'PCA_individuals_02')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(ind_plot3, 'PCA_individuals_03')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(ind_plot4, 'PCA_individuals_04')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(ind_plot5, 'PCA_individuals_05')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(ind_plot6, 'PCA_individuals_06')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(var_plot1, 'PCA_variables_01')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(var_plot2, 'PCA_variables_02')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(var_plot3, 'PCA_variables_03')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(var_plot4, 'PCA_variables_04')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(var_plot5, 'PCA_variables_05')
## Saving 7.87 x 5.9 in image
## png
## 2
draw_plot(var_plot6, 'PCA_variables_06')
## Saving 7.87 x 5.9 in image
## png
## 2
# choose the most relevant variables to describe each dimension
print(res_pca2$var$contrib[, 1:5])
## Dim.1 Dim.2
## HHSize 10.1480742 5.0034421
## Age 0.4763825 29.6653364
## highestEdu_qualification.HHH. 1.9600744 27.2365775
## HH_income_ 19.6869907 0.4865609
## PercFarmIncome 11.0226524 0.4388893
## TLU 2.0555029 0.6467912
## TotalLand 22.8149218 2.2535519
## PercentageMaizeArea 0.2923745 5.7527602
## PercentageLegumeArea 11.0339448 0.4016244
## AvgMZ_yield.kgs. 13.4190003 0.7004005
## Manure_application_in_Maize_field_during_2022.23_season 3.1154513 24.8319155
## Count_sust_practices 3.9746303 2.5821501
## Dim.3 Dim.4
## HHSize 0.1107892 2.491640e+01
## Age 8.8339461 3.366582e-02
## highestEdu_qualification.HHH. 3.3331671 1.160756e+01
## HH_income_ 2.8694579 3.945730e-06
## PercFarmIncome 9.4151064 7.128032e+00
## TLU 0.1051277 3.457151e+01
## TotalLand 4.7540818 2.479862e+00
## PercentageMaizeArea 45.6694886 7.911568e+00
## PercentageLegumeArea 13.0585259 2.554537e+00
## AvgMZ_yield.kgs. 8.7530159 4.587630e-01
## Manure_application_in_Maize_field_during_2022.23_season 1.7158564 8.271573e+00
## Count_sust_practices 1.3814370 6.651715e-02
## Dim.5
## HHSize 0.1607655
## Age 8.1606014
## highestEdu_qualification.HHH. 8.0808391
## HH_income_ 10.6241952
## PercFarmIncome 18.8813926
## TLU 1.3701837
## TotalLand 1.5104011
## PercentageMaizeArea 0.4017049
## PercentageLegumeArea 11.8157565
## AvgMZ_yield.kgs. 23.2121496
## Manure_application_in_Maize_field_during_2022.23_season 0.6818257
## Count_sust_practices 15.1001846
for(i in list(c(1, 2), c(1, 3), c(1, 4), c(2, 3), c(2, 4), c(3, 4))){
for(j in names(pca_df2)){
nb_col <- length(unique(pca_df2[[j]]))
print(factoextra::fviz_ellipses(res_pca2,
habillage = j,
axes = i,
geom = 'text',
addEllipses = T,
palette = pal(nb_col)
)
)
}
}
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
## Warning: Computation failed in `stat_conf_ellipse()`.
## Caused by error in `if (scale[1] > 0) ...`:
## ! missing value where TRUE/FALSE needed
# Hierarchical clustering on the first 4 dimensions that capture 54% of total variability
eg_hc <- res_pca2$ind$coord[, 1:4]
dist_matrix2 <- dist(eg_hc)
hc <- hclust(dist_matrix2, method = 'ward.D') # could be 'complete' or 'average'
plot(hc, main = 'Subset 1 - Dendogram on the first 4 components', xlab = '', sub = '', cex = 0.6)
# decide on the number of farm types to make: 3 or 4
typo_1 <- pca_df2
for(cl in 4:3){
clusters <- cutree(hc, k = cl)
typo_1$farm_type <- paste0('farm_', clusters)
print(paste0('================ Number of farm types = ', cl, ' ================'))
for(i in names(pca_df2)){
res_anova <- lm(typo_1[[i]] ~ typo_1[['farm_type']])
emm0 <- emmeans::emmeans(res_anova,
pairwise ~ farm_type,
type = 'response',
adjust = 'bonferroni')
print(paste0('--------------------', i, '----------------'))
print(anova(res_anova))
print('-----------')
print(emm0)
print(multcomp::cld(emm0, decreasing = T))
}
}
## [1] "================ Number of farm types = 4 ================"
## [1] "--------------------HHSize----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 65.633 21.8776 6.2546 0.001389 **
## Residuals 40 139.913 3.4978
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 5.67 0.441 40 4.78 6.56
## farm_2 7.21 0.500 40 6.20 8.22
## farm_3 5.11 0.623 40 3.85 6.37
## farm_4 9.67 1.080 40 7.48 11.85
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -1.548 0.666 40 -2.322 0.1524
## farm_1 - farm_3 0.556 0.764 40 0.728 1.0000
## farm_1 - farm_4 -4.000 1.166 40 -3.430 0.0085
## farm_2 - farm_3 2.103 0.799 40 2.632 0.0720
## farm_2 - farm_4 -2.452 1.190 40 -2.061 0.2750
## farm_3 - farm_4 -4.556 1.247 40 -3.654 0.0045
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 9.67 1.080 40 7.48 11.85 1
## farm_2 7.21 0.500 40 6.20 8.22 12
## farm_1 5.67 0.441 40 4.78 6.56 2
## farm_3 5.11 0.623 40 3.85 6.37 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Age----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 886.52 295.507 9.4109 7.847e-05 ***
## Residuals 40 1256.02 31.401
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 39.7 1.32 40 37.1 42.4
## farm_2 47.3 1.50 40 44.3 50.3
## farm_3 50.9 1.87 40 47.1 54.7
## farm_4 45.7 3.24 40 39.1 52.2
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -7.56 2.00 40 -3.788 0.0030
## farm_1 - farm_3 -11.17 2.29 40 -4.881 0.0001
## farm_1 - farm_4 -5.94 3.49 40 -1.701 0.5801
## farm_2 - farm_3 -3.60 2.39 40 -1.505 0.8411
## farm_2 - farm_4 1.62 3.57 40 0.454 1.0000
## farm_3 - farm_4 5.22 3.74 40 1.398 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 50.9 1.87 40 47.1 54.7 1
## farm_2 47.3 1.50 40 44.3 50.3 1
## farm_4 45.7 3.24 40 39.1 52.2 12
## farm_1 39.7 1.32 40 37.1 42.4 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------highestEdu_qualification.HHH.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 5.8741 1.95803 8.6037 0.0001578 ***
## Residuals 40 9.1032 0.22758
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1.83 0.112 40 1.606 2.06
## farm_2 1.14 0.127 40 0.885 1.40
## farm_3 1.11 0.159 40 0.790 1.43
## farm_4 2.00 0.275 40 1.443 2.56
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.6905 0.170 40 4.062 0.0013
## farm_1 - farm_3 0.7222 0.195 40 3.708 0.0038
## farm_1 - farm_4 -0.1667 0.297 40 -0.560 1.0000
## farm_2 - farm_3 0.0317 0.204 40 0.156 1.0000
## farm_2 - farm_4 -0.8571 0.304 40 -2.824 0.0441
## farm_3 - farm_4 -0.8889 0.318 40 -2.795 0.0476
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 2.00 0.275 40 1.443 2.56 1
## farm_1 1.83 0.112 40 1.606 2.06 1
## farm_2 1.14 0.127 40 0.885 1.40 2
## farm_3 1.11 0.159 40 0.790 1.43 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------HH_income_----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 5.1274e+13 1.7091e+13 25.145 2.62e-09 ***
## Residuals 40 2.7188e+13 6.7970e+11
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1061000 194323 40 668259 1453741
## farm_2 1537857 220341 40 1092531 1983183
## farm_3 332222 274814 40 -223197 887641
## farm_4 5000000 475991 40 4037986 5962014
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -476857 293788 40 -1.623 0.6745
## farm_1 - farm_3 728778 336577 40 2.165 0.2183
## farm_1 - farm_4 -3939000 514129 40 -7.661 <.0001
## farm_2 - farm_3 1205635 352240 40 3.423 0.0087
## farm_2 - farm_4 -3462143 524517 40 -6.601 <.0001
## farm_3 - farm_4 -4667778 549627 40 -8.493 <.0001
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 5000000 475991 40 4037986 5962014 1
## farm_2 1537857 220341 40 1092531 1983183 2
## farm_1 1061000 194323 40 668259 1453741 23
## farm_3 332222 274814 40 -223197 887641 3
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercFarmIncome----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 0.39230 0.130767 5.6108 0.002623 **
## Residuals 40 0.93226 0.023307
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.901 0.0360 40 0.828 0.974
## farm_2 0.830 0.0408 40 0.748 0.913
## farm_3 0.892 0.0509 40 0.790 0.995
## farm_4 0.521 0.0881 40 0.343 0.700
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.07077 0.0544 40 1.301 1.0000
## farm_1 - farm_3 0.00845 0.0623 40 0.136 1.0000
## farm_1 - farm_4 0.37951 0.0952 40 3.986 0.0017
## farm_2 - farm_3 -0.06232 0.0652 40 -0.955 1.0000
## farm_2 - farm_4 0.30874 0.0971 40 3.179 0.0171
## farm_3 - farm_4 0.37106 0.1018 40 3.646 0.0046
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.901 0.0360 40 0.828 0.974 1
## farm_3 0.892 0.0509 40 0.790 0.995 1
## farm_2 0.830 0.0408 40 0.748 0.913 1
## farm_4 0.521 0.0881 40 0.343 0.700 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------TLU----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 35.65 11.883 0.9951 0.405
## Residuals 40 477.68 11.942
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.351 0.815 40 -1.295 2.00
## farm_2 2.242 0.924 40 0.376 4.11
## farm_3 0.327 1.152 40 -2.001 2.65
## farm_4 1.917 1.995 40 -2.116 5.95
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -1.8910 1.23 40 -1.536 0.7950
## farm_1 - farm_3 0.0244 1.41 40 0.017 1.0000
## farm_1 - farm_4 -1.5656 2.16 40 -0.726 1.0000
## farm_2 - farm_3 1.9155 1.48 40 1.297 1.0000
## farm_2 - farm_4 0.3255 2.20 40 0.148 1.0000
## farm_3 - farm_4 -1.5900 2.30 40 -0.690 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_2 2.242 0.924 40 0.376 4.11 1
## farm_4 1.917 1.995 40 -2.116 5.95 1
## farm_1 0.351 0.815 40 -1.295 2.00 1
## farm_3 0.327 1.152 40 -2.001 2.65 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------TotalLand----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 407.95 135.982 24.733 3.242e-09 ***
## Residuals 40 219.92 5.498
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 4.81 0.553 40 3.69 5.92
## farm_2 6.14 0.627 40 4.88 7.41
## farm_3 3.31 0.782 40 1.73 4.89
## farm_4 16.33 1.354 40 13.60 19.07
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -1.34 0.836 40 -1.600 0.7042
## farm_1 - farm_3 1.50 0.957 40 1.567 0.7500
## farm_1 - farm_4 -11.53 1.462 40 -7.884 <.0001
## farm_2 - farm_3 2.84 1.002 40 2.832 0.0432
## farm_2 - farm_4 -10.19 1.492 40 -6.831 <.0001
## farm_3 - farm_4 -13.03 1.563 40 -8.334 <.0001
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 16.33 1.354 40 13.60 19.07 1
## farm_2 6.14 0.627 40 4.88 7.41 2
## farm_1 4.81 0.553 40 3.69 5.92 23
## farm_3 3.31 0.782 40 1.73 4.89 3
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercentageMaizeArea----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 0.16908 0.056362 3.2248 0.03252 *
## Residuals 40 0.69911 0.017478
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.377 0.0312 40 0.314 0.440
## farm_2 0.518 0.0353 40 0.446 0.589
## farm_3 0.436 0.0441 40 0.347 0.525
## farm_4 0.371 0.0763 40 0.217 0.525
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.14096 0.0471 40 -2.992 0.0284
## farm_1 - farm_3 -0.05954 0.0540 40 -1.103 1.0000
## farm_1 - farm_4 0.00588 0.0824 40 0.071 1.0000
## farm_2 - farm_3 0.08142 0.0565 40 1.442 0.9433
## farm_2 - farm_4 0.14684 0.0841 40 1.746 0.5311
## farm_3 - farm_4 0.06542 0.0881 40 0.742 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_2 0.518 0.0353 40 0.446 0.589 1
## farm_3 0.436 0.0441 40 0.347 0.525 12
## farm_1 0.377 0.0312 40 0.314 0.440 2
## farm_4 0.371 0.0763 40 0.217 0.525 12
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercentageLegumeArea----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 0.44038 0.146793 8.1982 0.0002262 ***
## Residuals 40 0.71622 0.017905
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.438 0.0315 40 0.37432 0.502
## farm_2 0.342 0.0358 40 0.27010 0.415
## farm_3 0.550 0.0446 40 0.45954 0.640
## farm_4 0.161 0.0773 40 0.00442 0.317
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.0957 0.0477 40 2.007 0.3094
## farm_1 - farm_3 -0.1116 0.0546 40 -2.043 0.2858
## farm_1 - farm_4 0.2775 0.0834 40 3.326 0.0114
## farm_2 - farm_3 -0.2073 0.0572 40 -3.626 0.0048
## farm_2 - farm_4 0.1818 0.0851 40 2.136 0.2333
## farm_3 - farm_4 0.3891 0.0892 40 4.362 0.0005
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 0.550 0.0446 40 0.45954 0.640 1
## farm_1 0.438 0.0315 40 0.37432 0.502 12
## farm_2 0.342 0.0358 40 0.27010 0.415 23
## farm_4 0.161 0.0773 40 0.00442 0.317 3
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------AvgMZ_yield.kgs.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 73697709 24565903 8.0428 0.0002601 ***
## Residuals 40 122175605 3054390
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1909 412 40 1077 2742
## farm_2 3345 467 40 2401 4289
## farm_3 981 583 40 -196 2159
## farm_4 6000 1009 40 3961 8039
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -1436 623 40 -2.305 0.1586
## farm_1 - farm_3 928 713 40 1.301 1.0000
## farm_1 - farm_4 -4091 1090 40 -3.754 0.0033
## farm_2 - farm_3 2364 747 40 3.165 0.0178
## farm_2 - farm_4 -2655 1112 40 -2.388 0.1305
## farm_3 - farm_4 -5019 1165 40 -4.308 0.0006
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 6000 1009 40 3961 8039 1
## farm_2 3345 467 40 2401 4289 12
## farm_1 1909 412 40 1077 2742 23
## farm_3 981 583 40 -196 2159 3
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Manure_application_in_Maize_field_during_2022.23_season----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 3.5209 1.17364 9.017 0.00011 ***
## Residuals 40 5.2063 0.13016
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.389 0.0850 40 0.217 0.561
## farm_2 0.929 0.0964 40 0.734 1.123
## farm_3 1.000 0.1203 40 0.757 1.243
## farm_4 1.000 0.2083 40 0.579 1.421
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.5397 0.129 40 -4.198 0.0009
## farm_1 - farm_3 -0.6111 0.147 40 -4.149 0.0010
## farm_1 - farm_4 -0.6111 0.225 40 -2.716 0.0582
## farm_2 - farm_3 -0.0714 0.154 40 -0.463 1.0000
## farm_2 - farm_4 -0.0714 0.230 40 -0.311 1.0000
## farm_3 - farm_4 0.0000 0.241 40 0.000 1.0000
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 1.000 0.2083 40 0.579 1.421 1
## farm_3 1.000 0.1203 40 0.757 1.243 1
## farm_2 0.929 0.0964 40 0.734 1.123 1
## farm_1 0.389 0.0850 40 0.217 0.561 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Count_sust_practices----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 3 10.465 3.4882 1.7787 0.1667
## Residuals 40 78.444 1.9611
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 2.56 0.330 40 1.888 3.22
## farm_2 3.00 0.374 40 2.244 3.76
## farm_3 1.67 0.467 40 0.723 2.61
## farm_4 3.00 0.809 40 1.366 4.63
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.444 0.499 40 -0.891 1.0000
## farm_1 - farm_3 0.889 0.572 40 1.555 0.7672
## farm_1 - farm_4 -0.444 0.873 40 -0.509 1.0000
## farm_2 - farm_3 1.333 0.598 40 2.228 0.1892
## farm_2 - farm_4 0.000 0.891 40 0.000 1.0000
## farm_3 - farm_4 -1.333 0.934 40 -1.428 0.9660
##
## P value adjustment: bonferroni method for 6 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_4 3.00 0.809 40 1.366 4.63 1
## farm_2 3.00 0.374 40 2.244 3.76 1
## farm_1 2.56 0.330 40 1.888 3.22 1
## farm_3 1.67 0.467 40 0.723 2.61 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 4 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "================ Number of farm types = 3 ================"
## [1] "--------------------HHSize----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 41.401 20.7003 5.1705 0.009944 **
## Residuals 41 164.145 4.0035
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 5.67 0.472 41 4.71 6.62
## farm_2 6.39 0.417 41 5.55 7.23
## farm_3 9.67 1.155 41 7.33 12.00
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.725 0.63 41 -1.151 0.7694
## farm_1 - farm_3 -4.000 1.25 41 -3.206 0.0078
## farm_2 - farm_3 -3.275 1.23 41 -2.667 0.0327
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 9.67 1.155 41 7.33 12.00 1
## farm_2 6.39 0.417 41 5.55 7.23 2
## farm_1 5.67 0.472 41 4.71 6.62 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Age----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 815.4 407.70 12.595 5.442e-05 ***
## Residuals 41 1327.2 32.37
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 39.7 1.34 41 37.0 42.4
## farm_2 48.7 1.19 41 46.3 51.1
## farm_3 45.7 3.28 41 39.0 52.3
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -8.97 1.79 41 -5.012 <.0001
## farm_1 - farm_3 -5.94 3.55 41 -1.675 0.3044
## farm_2 - farm_3 3.03 3.49 41 0.867 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_2 48.7 1.19 41 46.3 51.1 1
## farm_3 45.7 3.28 41 39.0 52.3 12
## farm_1 39.7 1.34 41 37.0 42.4 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------highestEdu_qualification.HHH.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 5.8686 2.93429 13.208 3.737e-05 ***
## Residuals 41 9.1087 0.22216
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1.83 0.1111 41 1.609 2.06
## farm_2 1.13 0.0983 41 0.932 1.33
## farm_3 2.00 0.2721 41 1.450 2.55
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.703 0.148 41 4.739 0.0001
## farm_1 - farm_3 -0.167 0.294 41 -0.567 1.0000
## farm_2 - farm_3 -0.870 0.289 41 -3.005 0.0135
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 2.00 0.2721 41 1.450 2.55 1
## farm_1 1.83 0.1111 41 1.609 2.06 1
## farm_2 1.13 0.0983 41 0.932 1.33 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------HH_income_----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 4.3311e+13 2.1655e+13 25.259 7.099e-08 ***
## Residuals 41 3.5151e+13 8.5734e+11
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1061000 218243 41 620248 1501752
## farm_2 1066087 193069 41 676175 1455999
## farm_3 5000000 534585 41 3920384 6079616
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -5087 291386 41 -0.017 1.0000
## farm_1 - farm_3 -3939000 577418 41 -6.822 <.0001
## farm_2 - farm_3 -3933913 568381 41 -6.921 <.0001
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 5000000 534585 41 3920384 6079616 1
## farm_2 1066087 193069 41 676175 1455999 2
## farm_1 1061000 218243 41 620248 1501752 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercFarmIncome----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 0.37103 0.185514 7.9767 0.001186 **
## Residuals 41 0.95354 0.023257
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.901 0.0359 41 0.828 0.974
## farm_2 0.855 0.0318 41 0.790 0.919
## farm_3 0.521 0.0880 41 0.344 0.699
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.0464 0.0480 41 0.967 1.0000
## farm_1 - farm_3 0.3795 0.0951 41 3.991 0.0008
## farm_2 - farm_3 0.3331 0.0936 41 3.558 0.0029
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.901 0.0359 41 0.828 0.974 1
## farm_2 0.855 0.0318 41 0.790 0.919 1
## farm_3 0.521 0.0880 41 0.344 0.699 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------TLU----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 15.55 7.7751 0.6404 0.5323
## Residuals 41 497.78 12.1409
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.351 0.821 41 -1.3075 2.01
## farm_2 1.493 0.727 41 0.0253 2.96
## farm_3 1.917 2.012 41 -2.1461 5.98
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -1.141 1.10 41 -1.041 0.9119
## farm_1 - farm_3 -1.566 2.17 41 -0.720 1.0000
## farm_2 - farm_3 -0.424 2.14 41 -0.198 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 1.917 2.012 41 -2.1461 5.98 1
## farm_2 1.493 0.727 41 0.0253 2.96 1
## farm_1 0.351 0.821 41 -1.3075 2.01 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------TotalLand----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 363.84 181.92 28.25 1.938e-08 ***
## Residuals 41 264.02 6.44
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 4.81 0.598 41 3.60 6.01
## farm_2 5.03 0.529 41 3.96 6.10
## farm_3 16.33 1.465 41 13.37 19.29
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.227 0.799 41 -0.284 1.0000
## farm_1 - farm_3 -11.528 1.582 41 -7.285 <.0001
## farm_2 - farm_3 -11.301 1.558 41 -7.255 <.0001
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 16.33 1.465 41 13.37 19.29 1
## farm_2 5.03 0.529 41 3.96 6.10 2
## farm_1 4.81 0.598 41 3.60 6.01 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercentageMaizeArea----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 0.13277 0.066383 3.7009 0.0333 *
## Residuals 41 0.73543 0.017937
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.377 0.0316 41 0.313 0.441
## farm_2 0.486 0.0279 41 0.430 0.542
## farm_3 0.371 0.0773 41 0.215 0.527
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.10910 0.0421 41 -2.589 0.0398
## farm_1 - farm_3 0.00588 0.0835 41 0.070 1.0000
## farm_2 - farm_3 0.11498 0.0822 41 1.399 0.5084
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_2 0.486 0.0279 41 0.430 0.542 1
## farm_1 0.377 0.0316 41 0.313 0.441 2
## farm_3 0.371 0.0773 41 0.215 0.527 12
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------PercentageLegumeArea----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 0.20493 0.102464 4.4144 0.01835 *
## Residuals 41 0.95167 0.023211
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.438 0.0359 41 0.3655 0.511
## farm_2 0.424 0.0318 41 0.3593 0.488
## farm_3 0.161 0.0880 41 -0.0171 0.338
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.0146 0.0479 41 0.304 1.0000
## farm_1 - farm_3 0.2775 0.0950 41 2.921 0.0170
## farm_2 - farm_3 0.2629 0.0935 41 2.812 0.0226
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_1 0.438 0.0359 41 0.3655 0.511 1
## farm_2 0.424 0.0318 41 0.3593 0.488 1
## farm_3 0.161 0.0880 41 -0.0171 0.338 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------AvgMZ_yield.kgs.----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 43094597 21547299 5.7825 0.006135 **
## Residuals 41 152778717 3726310
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 1909 455 41 990 2828
## farm_2 2420 403 41 1607 3233
## farm_3 6000 1114 41 3749 8251
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -511 607 41 -0.841 1.0000
## farm_1 - farm_3 -4091 1204 41 -3.398 0.0046
## farm_2 - farm_3 -3580 1185 41 -3.021 0.0130
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 6000 1114 41 3749 8251 1
## farm_2 2420 403 41 1607 3233 2
## farm_1 1909 455 41 990 2828 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Manure_application_in_Maize_field_during_2022.23_season----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 3.4930 1.74649 13.68 2.809e-05 ***
## Residuals 41 5.2343 0.12767
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 0.389 0.0842 41 0.219 0.559
## farm_2 0.957 0.0745 41 0.806 1.107
## farm_3 1.000 0.2063 41 0.583 1.417
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 -0.5676 0.112 41 -5.048 <.0001
## farm_1 - farm_3 -0.6111 0.223 41 -2.743 0.0270
## farm_2 - farm_3 -0.0435 0.219 41 -0.198 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 1.000 0.2063 41 0.583 1.417 1
## farm_2 0.957 0.0745 41 0.806 1.107 1
## farm_1 0.389 0.0842 41 0.219 0.559 2
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
## [1] "--------------------Count_sust_practices----------------"
## Analysis of Variance Table
##
## Response: typo_1[[i]]
## Df Sum Sq Mean Sq F value Pr(>F)
## typo_1[["farm_type"]] 2 0.726 0.36276 0.1687 0.8454
## Residuals 41 88.184 2.15082
## [1] "-----------"
## $emmeans
## farm_type emmean SE df lower.CL upper.CL
## farm_1 2.56 0.346 41 1.86 3.25
## farm_2 2.48 0.306 41 1.86 3.10
## farm_3 3.00 0.847 41 1.29 4.71
##
## Confidence level used: 0.95
##
## $contrasts
## contrast estimate SE df t.ratio p.value
## farm_1 - farm_2 0.0773 0.462 41 0.167 1.0000
## farm_1 - farm_3 -0.4444 0.915 41 -0.486 1.0000
## farm_2 - farm_3 -0.5217 0.900 41 -0.580 1.0000
##
## P value adjustment: bonferroni method for 3 tests
##
## farm_type emmean SE df lower.CL upper.CL .group
## farm_3 3.00 0.847 41 1.29 4.71 1
## farm_1 2.56 0.346 41 1.86 3.25 1
## farm_2 2.48 0.306 41 1.86 3.10 1
##
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
## NOTE: If two or more means share the same grouping symbol,
## then we cannot show them to be different.
## But we also did not show them to be the same.
# Choose a few box-plots to display, or any other visual. Here is just an e.g. for per capita income
boxplot_variable <- function(var_name, var_title){
png(paste0('vars_subset/plot_', var_name, '.png'), height = 10, width = 15, units = 'cm', res = 1000)
print(
ggplot(typo_1, aes_string('farm_type', var_name)) +
geom_boxplot() +
labs(x = 'Farm type', title = NULL, y = var_title) +
theme_bw()
)
ggsave(paste0('vars_subset/plot_', var_name, '.png'))
dev.off()
}
boxplot_variable('TotalLand', 'Farm size, ha')
## Saving 5.9 x 3.94 in image
## png
## 2
boxplot_variable('HH_income_', 'Household income, USD')
## Saving 5.9 x 3.94 in image
## png
## 2
boxplot_variable('PercFarmIncome', 'Proportion of income derived from farming, %')
## Saving 5.9 x 3.94 in image
## png
## 2
boxplot_variable('PercentageLegumeArea', 'Share of farm area occupied by legume crops, %')
## Saving 5.9 x 3.94 in image
## png
## 2
boxplot_variable('TLU', 'Size of livestock, TLU')
## Saving 5.9 x 3.94 in image
## png
## 2
boxplot_variable('AvgMZ_yield.kgs.', 'Maize yield, kg/ha')
## Saving 5.9 x 3.94 in image
## png
## 2
boxplot_variable('Manure_application_in_Maize_field_during_2022.23_season', 'Manure application')
## Saving 5.9 x 3.94 in image
## png
## 2
boxplot_variable('Count_sust_practices', 'Number of sustainable practices')
## Saving 5.9 x 3.94 in image
## png
## 2
boxplot_variable('HHSize', 'Size of household')
## Saving 5.9 x 3.94 in image
## png
## 2
boxplot_variable('Age', 'Age of household head')
## Saving 5.9 x 3.94 in image
## png
## 2