Wednesday, November 13, 2024

x̄ - > Root cause analysis fish bone technique using R programming

 The fishbone diagram, also known as the Ishikawa or cause-and-effect diagram, is a powerful tool for root cause analysis. In R, you can create this diagram to visualize causes leading to a particular problem. Here’s a straightforward way to approach it.


### 1. **Install and Load Required Packages**


First, we’ll use the `DiagrammeR` or `ggplot2` package to create a fishbone diagram in R, but note that these packages are more flexible than dedicated fishbone tools.


To get started:

```R

# Install necessary packages if you haven't already

install.packages("DiagrammeR")  # For making graphs

library(DiagrammeR)


# Or install ggplot2 for a custom approach

install.packages("ggplot2")

library(ggplot2)

```


### 2. **Structure Your Data**


Decide on the primary "bones" or main cause categories of your fishbone diagram. For example, common categories are *People*, *Methods*, *Machines*, *Materials*, *Measurements*, and *Environment*.


Example structure:

```R

causes <- list(

  People = c("Lack of training", "High turnover"),

  Methods = c("No standard process", "Manual errors"),

  Machines = c("Outdated tools", "Frequent breakdowns"),

  Materials = c("Poor quality", "Delayed shipments"),

  Measurements = c("Inaccurate data", "Infrequent checks"),

  Environment = c("Noisy workspace", "Poor lighting")

)

```


### 3. **Create a Fishbone Diagram with DiagrammeR**


Using `DiagrammeR`, you can manually add each bone and sub-cause. DiagrammeR is flexible but does not have a built-in fishbone function, so you’ll structure it like a decision tree:


```R

library(DiagrammeR)


graph <- grViz("

digraph Fishbone {

  graph [layout = dot, rankdir=LR]


  Problem [label = 'Problem', shape = ellipse, style = filled, fillcolor = coral]


  People [label = 'People', shape = box]

  Methods [label = 'Methods', shape = box]

  Machines [label = 'Machines', shape = box]

  Materials [label = 'Materials', shape = box]

  Measurements [label = 'Measurements', shape = box]

  Environment [label = 'Environment', shape = box]


  Problem -> People

  Problem -> Methods

  Problem -> Machines

  Problem -> Materials

  Problem -> Measurements

  Problem -> Environment


  # Add sub-causes

  sub1 [label = 'Lack of training', shape = plaintext]

  sub2 [label = 'High turnover', shape = plaintext]

  People -> sub1

  People -> sub2


  sub3 [label = 'No standard process', shape = plaintext]

  sub4 [label = 'Manual errors', shape = plaintext]

  Methods -> sub3

  Methods -> sub4


  # Continue for other categories

}

")

graph

```


### 4. **Alternative: Custom Fishbone Using ggplot2**


This requires more manual plotting but allows for more customization. You’ll set the coordinates for each bone and label. Here’s a simple base template:


```R

library(ggplot2)


# Example of a basic plot structure with ggplot2

ggplot() +

  geom_segment(aes(x = 0, xend = 10, y = 0, yend = 0), size = 1.5, lineend = "round") +  # Main line

  geom_segment(aes(x = 2, xend = 2, y = 0, yend = 2), size = 1) +  # Example bone

  geom_text(aes(x = 2, y = 2.2, label = "People")) +

  geom_segment(aes(x = 4, xend = 4, y = 0, yend = 2), size = 1) +  # Another bone

  geom_text(aes(x = 4, y = 2.2, label = "Methods")) +

  theme_void() +

  ggtitle("Fishbone Diagram")

```


### Conclusion


Creating a detailed fishbone diagram in R requires some customization. `DiagrammeR` offers a structured approach but requires scripting each cause. For more flexibility and control over design, `ggplot2` allows custom plotting with coordinate settings for each bone. Dedicated visualization tools (like PowerPoint or specialized software) might be faster if you need advanced fishbone diagrams.

No comments:

Meet the Authors
Zacharia Maganga’s blog features multiple contributors with clear activity status.
Active ✔
πŸ§‘‍πŸ’»
Zacharia Maganga
Lead Author
Active ✔
πŸ‘©‍πŸ’»
Linda Bahati
Co‑Author
Active ✔
πŸ‘¨‍πŸ’»
Jefferson Mwangolo
Co‑Author
Inactive ✖
πŸ‘©‍πŸŽ“
Florence Wavinya
Guest Author
Inactive ✖
πŸ‘©‍πŸŽ“
Esther Njeri
Guest Author
Inactive ✖
πŸ‘©‍πŸŽ“
Clemence Mwangolo
Guest Author

Followers

Support This Blog
Tap Donate now here to donate or go to donate on top menu to scan QR and support this site.
Donate Now