--- title: "dematel" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{dematel.Rmd} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` This demonstration is prepared to give information about the usage of dematel package. ```{r setup} library(dematel) ``` This package contains `execute_dematel()`, `normalize()`, `total_relationship_matrix()`, `relationships_between_criteria()`, `visualize()`, `threshold_value()`, and `compare_criteria()` functions. * `execute_dematel()` function runs dematel technique at once and reports the results. * `normalize()` function normalizes the direct relationship decision matrix. * `total_relationship_matrix()` returns the total relationship matrix of direct relationship decision matrix. * `relationships_between_criteria()` returns a `data.frame` that contains total relationships between criteria. * `visualize()` function visualizes the Causal Relations among the Criteria. * `threshold_value()` function returns the threshold value of direct relationship decision matrix. * `compare_criteria()` function returns relation results that exceed threshold value of direct relationship decision matrix. There are 3 data sets in the package named `hospitaldata`, `nurseselection` and `medicaldevice` respectively. These data sets gathered from book of authors "Celikbilek Y., Ozdemir M. Multi-Criteria Decision Making Methods with Annotated and Comparative Health Sciences Practices, NOBEL Academic Publication, Ankara, 2020". In this demonstration `medicaldevice` data will be used. Medical Device Selection Data variables as follows; * K1 - Numeric values of price * K2 - Numeric values of ease of use * K3 - Numeric values of 24/7 technical support * K4 - Numeric values of technical service speed * K5 - Numeric values of electrode quality and the data set; ```{r} my_data = dematel::medicaldevice my_data ``` With this data set, we can easily perform analysis using the functions included in the dematel package. The first function to use is the function called `normalize_data()`. `normalize_data()` has two parameters; first one is *data* and the second one is a *logical value* that checks whether data is matrix format. if data is not matris format then the function will not overwrite the names attribution as _C*_. The `medicaldevice` data set which has the structure of `data.frame` still can be used. ```{r} normalize_data(my_data, data_control = F) ``` if `data_control` parameter of the function is set to `TRUE` than the function will transform data to matrix format and overwrite names attribute as _C*_. ```{r} normalize_data(my_data, data_control = T) ``` The second step of the dematel technique is to obtain the total direct relationship matrix by using the normalized matrix. The function `total_relationship_matrix()` is used to get the total direct relationship matrix.It is important that `data_control` parameter of the function should set to `TRUE`, otherwise function throws and error. ```{r} total_relationship_matrix(my_data, data_control = T) ``` `data_control` parameter of the function is pre-defined as `TRUE`. ```{r} total_relationship_matrix(my_data) ``` The third stage of the dematel tecnique is to obtain the relationship matrix between criteria. The `relationships_between_criteria()` is used to obtain the relationship matrix between criteria. By means of this function, the importance of the criteria and the situations of influence between each other are determined. `(c+r)` serves to determine the importance of the criteria. `(c-r)` is used in determining the impact of the criteria. If `(c-r) <0` for a criterion, it is determined that it is affected by other criteria. Unlike; If `(c-r)> 0` for a criterion, it is determined that it has an effect on other criteria. `relationships_between_criteria()` returns a `data.frame`. Also this function has two parameters as aformentioned above `data` and `data_control`. `data_control` parameter of the function is pre-defined as `TRUE`. ```{r} relationships_between_criteria(my_data, data_control = T) ``` The causal diagram is used to see and examine the significance and impact of the criteria more clearly. The causal diagram can be obtained with the `visualize()` function in the package. Also this function has two parameters as aformentioned above `data` and `data_control`. `data_control` parameter of the function is pre-defined as `TRUE`. ```{r} visualize(my_data) ``` In the diagram above, the criteria below the zero line of y axis for $c_i-r_i$ are the criteria **C2, and C3**, affected by the **C1, C4, and C5**. The criteria above the zero line of y axis for $c_i-r_i$ are the criteria **C1, C4, and C5** that predominantly affect **C2, and C3** criteria. On the $c_i+r_i$ axis the importance of the criterion increases as you move away from zero. The next step in the dematel technique is to create the network structure. The `threshold_value()` function is used to determine the threshold value. Also this function has two parameters as aformentioned above `data` and `data_control`. `data_control` parameter of the function is pre-defined as `TRUE`. ```{r} threshold_value(my_data) ``` The last step of the dematel technique is to obtain comparisons. With the `compare_criteria()` function, relationships that exceed the threshold value in the total relationship matrix can be revealed ```{r} compare_criteria(my_data) ``` When the results are compared, values equal to or above the threshold value, indicate which criterion has an effect on which criteria. For instance the criterion `C2` has affect on `C1` with the value of 0.4110676. dematel package has one more function called `execute_dematel()`. This function This function executes all functions, conducts dematel analysis at once and returns - a `matrix` that contains data, - a `matrix` that contains normalized data, - a `matrix` that contains normalized initial direct-relation matrix, - a `data.frame` that contains relationships between criteria, - a `graph`, - a `num` that contains threshold value, - a `list` of criteria comparisons. `execute_dematel()` function has one parameter `x`. it automatically checks data type. if the data type is not matrix format then it converts it to matrix and renames the names attributes as _C*_. ```{r} execute_dematel(my_data) ```