The first grape planting materials arrived in Australia in 1788 and settled in white. Today, grapes are grown commercially in all states and territories. Viticulture (wine, raisins and table) is Australia’s largest fruit industry, and its production environment ranges from temperate to tropical. Among the three viticulture industries, wine grape production and wine making are the largest and most important (David n.d.). . According to Australian Wine Grape Production Projections, released by the Australian Bureau of Agricultural and Resource Economics and Sciences (ABARES), production is projected to increase further in 2050 to 2 million tones (Department of Agriculture, Water and the Environment ABARES 2020).
In order to support investors, agricultural operators and decision makers in the decision-making process, we investigated the impact of climate change on the value of agricultural land in AT2B. The value of agricultural land is sufficient for the yield of crops, that is, the yield of tons or hectoliters of product per millimeter of land for any given agricultural commodity. Crop yield is an indicator of the production efficiency of a certain commodity in a given area. Both internal and external factors affect the production of crops. In AT2B, Data Geeks applied a linear regression model to predict the annual crop yield of a given area based on geographic factors, so it is a response variable. The purpose of our analysis is to discover which factors are most influential and how the grape production responds to changes in these factors.
In AT2B, we used model-based selection which is the purely algorithmic selection, and we also used rational-based subset selection where predictor variables were divided into chunks for variables by their nature - rain, temperature, solar radiation and soil. For the rational-based subsets selection we used the diagnostic correlation plots, correlation values, our findings from the EDA and AIC to reduce multicollinearity. The result was acceptable based on previous research question, but there is room can be improved if there was more given time. we could potentially improve regression fit by expressing yield (the response variable) in log units, we could standardize the predictor variables given the range of values vary quite considerably.
In current study, new model structural equation modeling (SEM) will be applied to test grape productivity. Structural equation modelling (SEM) is multivariate quantitative technique employed to describe the relationships among observed variables. The technique helps the researcher to test or validate a theoretical model for theory testing and extension. The multivariate analysis is conducted with an objective to help the researcher for an in-depth explanatory analysis with a required statistical efficiency (Thakkar, J.J 2020). The software package that will be used in this study is Lavvan, which is a structural equation modeling software package for statistical calculations implemented in the R system. Lavaan stands for ‘latent variable analysis’, and its name reveals the long-term goal: to provide a set of tools that can be used to explore, estimate and understand various latent variable models, including factor analysis, structural equations, longitudinal and so on. (Yves, 2012).
Depending on the current performance of the farmer and their response to changes in the external environment, the scope for increasing productivity varies from farm to farm. Productivity is affected by farm drivers, such as farm size, management skills, and financial ability to invest in new technologies. Productivity is also affected by external factors beyond the control of farmers. These factors include seasonal conditions, technological progress, government policies, market conditions and infrastructure usage (ABARES 2020). Due to the limitation of dataset, the current study is to mainly attempt to test how climate variability influences grape yield separately. The research question will be:
To what extent temperature affect grape yield?
To what extent rainfall affect grape yield?
To what extent soil attribute affect grape yield?
Current study continues focusing on the data that we collected in AT2B. Data was collected from a range of publicly available sources and initial analysis was performed to determine the suitability for each set in the model. Table 1 provides a summary of the data that was selected for use in the SEM model. Another reason why I don’t acquire new data is because as per Kenny (2015), for models with about 75 to 200 cases, the chi square test is generally a reasonable measure of fit. Current dataset has fairly good number of observations (222 observations).
Researchers used many different fitting statistics to evaluate their confirmability Factor analysis and structural equation modeling (Stephen n.d.). In current study, as a beginner user, I will mainly summarize the most commonly used fitness statistics and suggested cut-off values indicate fitness, such as CFI, RMSEA & SRMR.
The recent climate change has severely affected the productivity of Australian crops, especially in Southwestern Australia and Southeastern Australia. In Western Australia, climatic conditions between 2000-01 and 2014-15 reduced TFP by an average of 7.7% compared to the long-term average conditions (1914-15 to 2014-15). In New South Wales, climatic conditions after 2000-01 reduced productivity by an average of 6.5% (Hugh & Valle 2017).
## lavaan 0.6-7 ended normally after 31 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of free parameters 26
##
## Number of observations 222
##
## Model Test User Model:
##
## Test statistic 4757.407
## Degrees of freedom 65
## P-value (Chi-square) 0.000
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## rainfall =~
## lu_mean_ran_jn 1.000 0.824 0.826
## lu_mean_ran_fb 1.127 0.060 18.712 0.000 0.929 0.931
## lu_mean_ran_mr 1.027 0.064 15.934 0.000 0.846 0.848
## lu_mean_ran_pr 0.320 0.080 3.978 0.000 0.264 0.264
## lu_mean_ran_my 0.082 0.082 1.003 0.316 0.068 0.068
## lu_mean_ran_jn 0.003 0.082 0.042 0.966 0.003 0.003
## lu_mean_ran_jl 0.127 0.082 1.550 0.121 0.104 0.105
## lu_mean_rain_g 0.408 0.079 5.133 0.000 0.336 0.337
## lu_mean_ran_sp 1.036 0.064 16.151 0.000 0.853 0.855
## lu_mean_ran_ct 1.196 0.057 20.874 0.000 0.985 0.987
## lu_mean_ran_nv 1.096 0.062 17.771 0.000 0.902 0.905
## lu_mean_ran_dc -0.564 0.077 -7.311 0.000 -0.465 -0.466
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## yield ~
## rainfall -0.300 0.081 -3.718 0.000 -0.247 -0.248
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .lu_mean_ran_jn 0.317 0.031 10.106 0.000 0.317 0.318
## .lu_mean_ran_fb 0.133 0.015 9.013 0.000 0.133 0.134
## .lu_mean_ran_mr 0.280 0.028 10.014 0.000 0.280 0.281
## .lu_mean_ran_pr 0.926 0.088 10.522 0.000 0.926 0.930
## .lu_mean_ran_my 0.991 0.094 10.535 0.000 0.991 0.995
## .lu_mean_ran_jn 0.995 0.094 10.536 0.000 0.995 1.000
## .lu_mean_ran_jl 0.985 0.093 10.534 0.000 0.985 0.989
## .lu_mean_rain_g 0.883 0.084 10.512 0.000 0.883 0.887
## .lu_mean_ran_sp 0.268 0.027 9.979 0.000 0.268 0.269
## .lu_mean_ran_ct 0.026 0.008 3.291 0.001 0.026 0.026
## .lu_mean_ran_nv 0.181 0.019 9.551 0.000 0.181 0.182
## .lu_mean_ran_dc 0.780 0.074 10.484 0.000 0.780 0.783
## .yield 0.934 0.089 10.524 0.000 0.934 0.939
## rainfall 0.679 0.090 7.538 0.000 1.000 1.000
## chisq rmsea srmr cfi
## 4757.407 0.570 0.361 0.262
Version 1 of model1 is purely focusing on rainfall climate data. None of indices meets the benchmark which means Version 1 does not fit my data, so I need to monitor my models. After research of investigation on the season for grape planting, it’s advised that grapes are planted in the late winter to early spring months. The plants start to grow in spring and continue to grow throughout the summer season. Grapes ripen in the late summer to early fall, depending on the variety grown. Therefore, I separated rainfall data into summer and winter, and it also because std.all indices for those months are relatively lower than other months.
## lavaan 0.6-7 ended normally after 69 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of free parameters 28
##
## Number of observations 222
##
## Model Test User Model:
##
## Test statistic 3343.420
## Degrees of freedom 63
## P-value (Chi-square) 0.000
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## rainfall_summer =~
## lu_mean_ran_jn 1.000 0.874 0.876
## lu_mean_ran_fb 1.115 0.046 24.468 0.000 0.974 0.977
## lu_mean_ran_mr 0.990 0.054 18.418 0.000 0.865 0.867
## lu_mean_ran_pr 0.277 0.076 3.648 0.000 0.242 0.243
## lu_mean_ran_ct 1.081 0.048 22.564 0.000 0.944 0.946
## lu_mean_ran_nv 1.006 0.053 19.056 0.000 0.879 0.881
## lu_mean_ran_dc -0.492 0.072 -6.784 0.000 -0.430 -0.430
## rainfall_winter =~
## lu_mean_ran_my 1.000 0.981 0.983
## lu_mean_ran_jn 1.007 0.016 62.785 0.000 0.988 0.990
## lu_mean_ran_jl 0.989 0.020 48.661 0.000 0.970 0.972
## lu_mean_rain_g 0.906 0.033 27.246 0.000 0.889 0.891
## lu_mean_ran_sp 0.401 0.063 6.335 0.000 0.393 0.394
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## yield ~
## rainfall_summr -0.276 0.067 -4.102 0.000 -0.242 -0.242
## rainfall_wintr 0.468 0.059 7.908 0.000 0.459 0.460
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## rainfall_summer ~~
## rainfall_wintr 0.014 0.059 0.238 0.812 0.016 0.016
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .lu_mean_ran_jn 0.232 0.024 9.605 0.000 0.232 0.233
## .lu_mean_ran_fb 0.046 0.010 4.712 0.000 0.046 0.046
## .lu_mean_ran_mr 0.247 0.026 9.683 0.000 0.247 0.249
## .lu_mean_ran_pr 0.937 0.089 10.519 0.000 0.937 0.941
## .lu_mean_ran_ct 0.104 0.013 7.843 0.000 0.104 0.105
## .lu_mean_ran_nv 0.223 0.023 9.551 0.000 0.223 0.224
## .lu_mean_ran_dc 0.811 0.077 10.474 0.000 0.811 0.815
## .lu_mean_ran_my 0.033 0.005 6.920 0.000 0.033 0.033
## .lu_mean_ran_jn 0.019 0.004 4.669 0.000 0.019 0.019
## .lu_mean_ran_jl 0.054 0.006 8.555 0.000 0.054 0.054
## .lu_mean_rain_g 0.206 0.020 10.134 0.000 0.206 0.207
## .lu_mean_ran_sp 0.841 0.080 10.517 0.000 0.841 0.845
## .yield 0.730 0.070 10.485 0.000 0.730 0.734
## rainfall_summr 0.763 0.092 8.258 0.000 1.000 1.000
## rainfall_wintr 0.962 0.095 10.182 0.000 1.000 1.000
## chisq rmsea srmr cfi
## 3343.420 0.484 0.320 0.484
In version 2 of model1, after I separated rainfall into difference season, the model is better fit than version 1, although the model still does not fit as all indices are still lower than benchmarks. It could potential because using the proposed cutoff criteria, the ML‐based TLI, Mc, and RMSEA tend to over-reject true‐population models at small sample size and thus are less preferable when sample size is small ((Hu 1999). But, by using package anova(), The model with the two latent ability factors fits the data significantly better than a model with only a single latent factor for general ability, χ2(2)=2100, p<.001.
## lavaan 0.6-7 ended normally after 76 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of free parameters 26
##
## Number of observations 222
##
## Model Test User Model:
##
## Test statistic 6640.612
## Degrees of freedom 65
## P-value (Chi-square) 0.000
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Tempreture =~
## lu_mean_tmp_nv 1.000 0.885 0.887
## lu_mean_tmp_dc -0.308 0.073 -4.188 0.000 -0.272 -0.273
## lu_mean_tmp_jn 0.981 0.051 19.356 0.000 0.867 0.869
## lu_mean_tmp_fb 1.073 0.044 24.315 0.000 0.949 0.951
## lu_mean_tmp_mr 1.130 0.039 28.786 0.000 1.000 1.002
## lu_mean_tmp_pr 1.088 0.043 25.322 0.000 0.962 0.964
## lu_mean_tmp_my 1.016 0.048 21.013 0.000 0.899 0.901
## lu_mean_tmp_jn 0.994 0.050 19.948 0.000 0.879 0.881
## lu_mean_tmp_jl 1.052 0.046 22.976 0.000 0.930 0.932
## lu_mean_temp_g 1.084 0.043 25.044 0.000 0.959 0.961
## lu_mean_tmp_sp 1.058 0.045 23.324 0.000 0.935 0.938
## lu_mean_tmp_ct 1.032 0.047 21.878 0.000 0.913 0.915
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## yield ~
## Tempreture -0.065 0.075 -0.865 0.387 -0.058 -0.058
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .lu_mean_tmp_nv 0.213 0.020 10.693 0.000 0.213 0.214
## .lu_mean_tmp_dc 0.921 0.087 10.540 0.000 0.921 0.926
## .lu_mean_tmp_jn 0.243 0.023 10.673 0.000 0.243 0.244
## .lu_mean_tmp_fb 0.095 0.009 10.822 0.000 0.095 0.095
## .lu_mean_tmp_mr -0.004 0.001 -3.168 0.002 -0.004 -0.004
## .lu_mean_tmp_pr 0.070 0.006 10.836 0.000 0.070 0.070
## .lu_mean_tmp_my 0.188 0.018 10.714 0.000 0.188 0.189
## .lu_mean_tmp_jn 0.223 0.021 10.686 0.000 0.223 0.224
## .lu_mean_tmp_jl 0.130 0.012 10.776 0.000 0.130 0.131
## .lu_mean_temp_g 0.077 0.007 10.836 0.000 0.077 0.077
## .lu_mean_tmp_sp 0.120 0.011 10.789 0.000 0.120 0.121
## .lu_mean_tmp_ct 0.162 0.015 10.740 0.000 0.162 0.162
## .yield 0.992 0.094 10.536 0.000 0.992 0.997
## Tempreture 0.782 0.092 8.483 0.000 1.000 1.000
## chisq rmsea srmr cfi
## 6640.612 0.675 0.128 0.403
## lavaan 0.6-7 ended normally after 91 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of free parameters 28
##
## Number of observations 222
##
## Model Test User Model:
##
## Test statistic 5778.125
## Degrees of freedom 63
## P-value (Chi-square) 0.000
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## summer_Tempreture =~
## lu_mean_tmp_nv 1.000 0.970 0.972
## lu_mean_tmp_dc -0.381 0.064 -5.925 0.000 -0.370 -0.371
## lu_mean_tmp_jn 1.006 0.022 46.354 0.000 0.976 0.978
## lu_mean_tmp_fb 1.030 0.017 62.363 0.000 0.999 1.001
## lu_mean_tmp_mr 0.977 0.027 36.537 0.000 0.948 0.950
## lu_mean_tmp_pr 0.868 0.040 21.952 0.000 0.842 0.844
## lu_mean_tmp_ct 0.989 0.025 39.913 0.000 0.960 0.962
## winter_Tempreture =~
## lu_mean_tmp_my 1.000 0.961 0.963
## lu_mean_tmp_jn 1.010 0.025 40.995 0.000 0.971 0.973
## lu_mean_tmp_jl 1.042 0.018 56.529 0.000 1.002 1.004
## lu_mean_temp_g 1.001 0.026 38.261 0.000 0.962 0.964
## lu_mean_tmp_sp 0.881 0.040 21.993 0.000 0.847 0.849
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## yield ~
## summer_Temprtr -0.971 0.088 -11.096 0.000 -0.942 -0.944
## winter_Temprtr 0.929 0.088 10.525 0.000 0.893 0.895
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## summer_Tempreture ~~
## winter_Temprtr 0.729 0.081 8.960 0.000 0.782 0.782
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .lu_mean_tmp_nv 0.055 0.005 10.345 0.000 0.055 0.055
## .lu_mean_tmp_dc 0.859 0.081 10.539 0.000 0.859 0.863
## .lu_mean_tmp_jn 0.043 0.004 10.130 0.000 0.043 0.043
## .lu_mean_tmp_fb -0.002 0.001 -1.194 0.232 -0.002 -0.002
## .lu_mean_tmp_mr 0.097 0.009 10.559 0.000 0.097 0.098
## .lu_mean_tmp_pr 0.286 0.027 10.575 0.000 0.286 0.287
## .lu_mean_tmp_ct 0.075 0.007 10.498 0.000 0.075 0.075
## .lu_mean_tmp_my 0.072 0.006 11.122 0.000 0.072 0.072
## .lu_mean_tmp_jn 0.053 0.005 10.962 0.000 0.053 0.053
## .lu_mean_tmp_jl -0.008 0.002 -5.130 0.000 -0.008 -0.008
## .lu_mean_temp_g 0.070 0.006 11.115 0.000 0.070 0.070
## .lu_mean_tmp_sp 0.278 0.026 10.851 0.000 0.278 0.279
## .yield 0.625 0.058 10.732 0.000 0.625 0.628
## summer_Temprtr 0.941 0.094 9.969 0.000 1.000 1.000
## winter_Temprtr 0.924 0.094 9.807 0.000 1.000 1.000
## chisq rmsea srmr cfi
## 5778.125 0.639 0.143 0.481
In model2, I mainly focus on temperature data. In the version 1 of Model2, it appears similar result with version 1 of Model1, then I applied same logic with Model1 which separated data into difference seasons. As result of version 2, although rmsea is remains relatively high, but srmr and cfi become better that version 1. However, the rmsea, srmr & cfi are 0.616, 0.098 and 0.561 respectively. It tells that temperature does not play an important role in facilitating the grape yield within this dataset.
## lavaan 0.6-7 ended normally after 53 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of free parameters 32
##
## Number of observations 222
##
## Model Test User Model:
##
## Test statistic 4762.745
## Degrees of freedom 88
## P-value (Chi-square) 0.000
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## summer_Tempreture =~
## lu_mean_tmp_nv 1.000 0.982 0.984
## lu_mean_tmp_dc -0.412 0.063 -6.566 0.000 -0.404 -0.405
## lu_mean_tmp_jn 0.996 0.018 54.756 0.000 0.978 0.980
## lu_mean_tmp_fb 1.011 0.014 70.821 0.000 0.992 0.995
## lu_mean_tmp_mr 0.950 0.027 35.233 0.000 0.932 0.935
## lu_mean_tmp_pr 0.831 0.041 20.417 0.000 0.816 0.817
## lu_mean_tmp_ct 0.991 0.019 51.304 0.000 0.973 0.975
## rainfall_summer =~
## lu_mean_ran_jn 1.000 0.862 0.864
## lu_mean_ran_fb 1.113 0.050 22.403 0.000 0.959 0.961
## lu_mean_ran_mr 0.990 0.057 17.398 0.000 0.853 0.855
## lu_mean_ran_pr 0.267 0.077 3.442 0.001 0.230 0.230
## lu_mean_ran_ct 1.115 0.050 22.533 0.000 0.961 0.963
## lu_mean_ran_nv 1.042 0.054 19.289 0.000 0.898 0.900
## lu_mean_ran_dc -0.518 0.073 -7.044 0.000 -0.446 -0.447
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## yield ~
## summer_Temprtr -0.432 0.065 -6.611 0.000 -0.424 -0.425
## rainfall_summr -0.462 0.077 -5.992 0.000 -0.398 -0.399
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## summer_Tempreture ~~
## rainfall_summr -0.302 0.062 -4.842 0.000 -0.357 -0.357
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .lu_mean_tmp_nv 0.032 0.004 8.492 0.000 0.032 0.032
## .lu_mean_tmp_dc 0.832 0.079 10.524 0.000 0.832 0.836
## .lu_mean_tmp_jn 0.039 0.004 8.929 0.000 0.039 0.039
## .lu_mean_tmp_fb 0.011 0.002 4.742 0.000 0.011 0.011
## .lu_mean_tmp_mr 0.126 0.012 10.116 0.000 0.126 0.127
## .lu_mean_tmp_pr 0.330 0.032 10.415 0.000 0.330 0.332
## .lu_mean_tmp_ct 0.048 0.005 9.279 0.000 0.048 0.048
## .lu_mean_ran_jn 0.253 0.026 9.645 0.000 0.253 0.254
## .lu_mean_ran_fb 0.076 0.012 6.640 0.000 0.076 0.077
## .lu_mean_ran_mr 0.268 0.028 9.713 0.000 0.268 0.269
## .lu_mean_ran_pr 0.943 0.090 10.519 0.000 0.943 0.947
## .lu_mean_ran_ct 0.072 0.011 6.401 0.000 0.072 0.072
## .lu_mean_ran_nv 0.190 0.021 9.231 0.000 0.190 0.190
## .lu_mean_ran_dc 0.797 0.076 10.461 0.000 0.797 0.800
## .yield 0.778 0.074 10.461 0.000 0.778 0.781
## summer_Temprtr 0.964 0.094 10.203 0.000 1.000 1.000
## rainfall_summr 0.742 0.092 8.069 0.000 1.000 1.000
## chisq rmsea srmr cfi
## 4762.745 0.489 0.242 0.474
| Latent Factor | Indicator | B | SE | Z | p-value | Beta |
|---|---|---|---|---|---|---|
| summer_Tempreture | lu_mean_temp_nov | 1.000 | 0.000 | NA | NA | 0.984 |
| summer_Tempreture | lu_mean_temp_dec | -0.412 | 0.063 | -6.566 | 0.000 | -0.405 |
| summer_Tempreture | lu_mean_temp_jan | 0.996 | 0.018 | 54.756 | 0.000 | 0.980 |
| summer_Tempreture | lu_mean_temp_feb | 1.011 | 0.014 | 70.821 | 0.000 | 0.995 |
| summer_Tempreture | lu_mean_temp_mar | 0.950 | 0.027 | 35.233 | 0.000 | 0.935 |
| summer_Tempreture | lu_mean_temp_apr | 0.831 | 0.041 | 20.417 | 0.000 | 0.817 |
| summer_Tempreture | lu_mean_temp_oct | 0.991 | 0.019 | 51.304 | 0.000 | 0.975 |
| rainfall_summer | lu_mean_rain_jan | 1.000 | 0.000 | NA | NA | 0.864 |
| rainfall_summer | lu_mean_rain_feb | 1.113 | 0.050 | 22.403 | 0.000 | 0.961 |
| rainfall_summer | lu_mean_rain_mar | 0.990 | 0.057 | 17.398 | 0.000 | 0.855 |
| rainfall_summer | lu_mean_rain_apr | 0.267 | 0.077 | 3.442 | 0.001 | 0.230 |
| rainfall_summer | lu_mean_rain_oct | 1.115 | 0.050 | 22.533 | 0.000 | 0.963 |
| rainfall_summer | lu_mean_rain_nov | 1.042 | 0.054 | 19.289 | 0.000 | 0.900 |
| rainfall_summer | lu_mean_rain_dec | -0.518 | 0.073 | -7.044 | 0.000 | -0.447 |
In Model3, I decided to only select to Summer rainfall and temperature data and created latent variables for summer rainfall and summer temperature. By checking the Factor loading table, we can tell that the latent variable is highly correlated with chosen indicators, but the latent variables does not have significant contribution to the grape yield, especially for latent variable of summer temperature which only can explain 0.154 of population.
## lavaan 0.6-7 ended normally after 119 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of free parameters 40
##
## Number of observations 222
##
## Model Test User Model:
##
## Test statistic 4429.309
## Degrees of freedom 95
## P-value (Chi-square) 0.000
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## summer_Tempreture =~
## lu_mean_tmp_nv 1.000 0.993 0.998
## lu_mean_tmp_dc -1.135 0.046 -24.559 0.000 -1.127 -0.704
## lu_mean_tmp_jn 1.096 0.011 102.576 0.000 1.089 0.979
## lu_mean_tmp_fb 0.982 0.014 69.936 0.000 0.976 0.979
## lu_mean_tmp_mr 1.035 0.024 43.927 0.000 1.029 0.912
## lu_mean_tmp_pr 0.814 0.038 21.342 0.000 0.809 0.776
## lu_mean_tmp_ct 0.986 0.013 77.305 0.000 0.980 0.983
## rainfall_summer =~
## lu_mean_ran_jn 1.000 0.770 0.821
## lu_mean_ran_fb 1.241 0.046 27.126 0.000 0.956 0.956
## lu_mean_ran_mr 1.128 0.047 23.802 0.000 0.869 0.867
## lu_mean_ran_pr 0.440 0.074 5.943 0.000 0.339 0.332
## lu_mean_ran_ct 1.261 0.043 29.090 0.000 0.972 0.972
## lu_mean_ran_nv 1.113 0.055 20.085 0.000 0.857 0.880
## lu_mean_ran_dc -0.874 0.055 -15.917 0.000 -0.673 -0.594
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## yield ~
## summer_Temprtr -0.438 0.059 -7.439 0.000 -0.435 -0.454
## rainfall_summr -0.383 0.077 -4.956 0.000 -0.295 -0.308
## lu_ph -0.257 0.055 -4.677 0.000 -0.257 -0.267
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .lu_mean_temp_jan ~~
## .lu_mean_ran_jn -0.100 0.011 -9.179 0.000 -0.100 -0.817
## .lu_mean_temp_feb ~~
## .lu_mean_ran_fb 0.002 0.005 0.464 0.642 0.002 0.036
## .lu_mean_temp_mar ~~
## .lu_mean_ran_mr 0.166 0.020 8.452 0.000 0.166 0.717
## .lu_mean_temp_apr ~~
## .lu_mean_ran_pr 0.343 0.048 7.079 0.000 0.343 0.541
## .lu_mean_temp_oct ~~
## .lu_mean_ran_ct -0.005 0.004 -1.457 0.145 -0.005 -0.128
## .lu_mean_temp_nov ~~
## .lu_mean_ran_nv 0.012 0.003 3.653 0.000 0.012 0.473
## .lu_mean_temp_dec ~~
## .lu_mean_ran_dc 0.856 0.091 9.437 0.000 0.856 0.824
## summer_Tempreture ~~
## rainfall_summr -0.260 0.056 -4.673 0.000 -0.340 -0.340
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .lu_mean_tmp_nv 0.003 0.001 2.874 0.004 0.003 0.003
## .lu_mean_tmp_dc 1.296 0.123 10.516 0.000 1.296 0.505
## .lu_mean_tmp_jn 0.052 0.005 9.854 0.000 0.052 0.042
## .lu_mean_tmp_fb 0.041 0.004 9.955 0.000 0.041 0.041
## .lu_mean_tmp_mr 0.215 0.021 10.432 0.000 0.215 0.169
## .lu_mean_tmp_pr 0.432 0.041 10.505 0.000 0.432 0.398
## .lu_mean_tmp_ct 0.033 0.003 9.780 0.000 0.033 0.033
## .lu_mean_ran_jn 0.288 0.029 10.015 0.000 0.288 0.327
## .lu_mean_ran_fb 0.086 0.011 8.025 0.000 0.086 0.086
## .lu_mean_ran_mr 0.248 0.025 9.802 0.000 0.248 0.247
## .lu_mean_ran_pr 0.929 0.088 10.508 0.000 0.929 0.890
## .lu_mean_ran_ct 0.055 0.008 6.455 0.000 0.055 0.055
## .lu_mean_ran_nv 0.214 0.022 9.723 0.000 0.214 0.226
## .lu_mean_ran_dc 0.833 0.080 10.412 0.000 0.833 0.648
## .yield 0.664 0.063 10.499 0.000 0.664 0.723
## summer_Temprtr 0.987 0.094 10.507 0.000 1.000 1.000
## rainfall_summr 0.593 0.067 8.886 0.000 1.000 1.000
## chisq rmsea srmr cfi
## 4429.309 0.453 0.317 0.518
Based on research done in AT2B, I also would like to test how soil attributes affect grape yield. However, there is an error message appears which might due to lack of soil data in the dataset. So, I decide to add single variable lu_ph into regression formula, which leads my model4. Surprisingly, lu_ph has the highest std.all indices which is 0.528.
Within the simple SME model 1 and model 2, both version 2 are better fit that version 1 after removing insignificant indicators.However, the upgraded version still does not fit the model very well which leads a possibility, that is the mean of rainfall and temperature might not be the best option to run with SEM model. It could be better if we could have captured prolonged period of high/low temperature and rainfall which was suggested by teaching team in AT2B. Lack of expert domain knowledge and repeated testing of hypothesis are the main limitations of the model. Other than climates factors, there are plenty of other factors that have significant impact on agriculture productive. The factors compromise the size of vineyards, farmer management skills, types of fertilizes, method of irrigation and so on.Those other factors should be also to be considered in the future analysis.
Broader literature should have been reviewed with more time given to achieve a better model, not only the SEM and R package knowledge, but also the domain knowledge which would give me a better idea of how to structure data collection and create SEM model in this particular field. I have replied on the work we done in AT2 quite a lot which might have limited the exploration of advanced model. This report could be directed to a whole new and interesting dimension if above limitations could have done differently.
ABARES 2020, Productivity drivers, Department of Agriculture, Water and the Environment, https://www.agriculture.gov.au/abares/research-topics/productivity/productivity-drivers view 5 Nov 2020 David, O n.d. Grape Production in Australia, http://www.fao.org/3/x6897e/x6897e04.htm view 01 Nov 2020 Hu, L. & Bentler, P.M. 1999, ‘Cutoff criteria for fit indexes in covariance structure analysis: Conventional criteria versus new alternatives’, Structural Equation Modeling: A Multidisciplinary Journal, vol. 6, no. 1, pp. 1–55.
Hughes, N, Lawson, K & Valle, H 2017, Farm performance and climate: Climate-adjusted productivity for broadacre cropping farms, Canberra, April. http://data.daff.gov.au/data/warehouse/9aas/2017/FarmPerformanceClimate/FarmPerformanceClimate_v1.0.0.pdf viewed 3 Nov 2020
Kenny, D. A. 2015. SEM: Fit, viewed 1 Nov 2020, http://davidakenny.net/cm/fit.htm
Stephen.P n.d. Fit Indices commonly reported for CFA and SEM, Cornell Statistical Consulting Unit, viewed at 2 Nov 2020
Thakkar, Jitesh J.. Structural Equation Modelling : Application for Research and Practice (with AMOS and R), Springer Singapore Pte. Limited, 2020. ProQuest Ebook Central, http://ebookcentral.proquest.com/lib/uts/detail.action?docID=6134018. Viewed 1 Nov 2020
Yves, R 2012, lavaan: An R Package for Structural Equation Modeling, Journal of Statistical Software, Volume 48, Issue 2, viewed 5 Nov 2020