R for HTA 2024 Workshop - Robert Smith & Tom Ward - AssertHE

R-HTA consortium
16 Jul 202420:18

Summary

TLDRThe speaker introduces the 'CT H' package developed for model review in health economics, emphasizing the shift from spreadsheets to script-based languages. The package includes checks for model validation and a visualization tool for understanding the model's function network. It also features a unique summary generation using large language models to explain individual functions. The presentation highlights the importance of communication, efficiency, and adaptability in model development, inviting contributions and feedback on the open-source tool.

Takeaways

  • πŸ™Œ The presentation introduces the CT H package developed for model review, emphasizing the transition from spreadsheet software to script-based programming languages like R.
  • πŸ“ The speaker expresses gratitude to contributors who have helped in the development of the package, including those who have tested bugs and contributed to the manuscript.
  • πŸ”„ The overarching aim is to shift the modeling pipeline to a more integrated system for statistical work, model development, visualization, reporting, and application creation.
  • πŸ“ˆ The importance of usability, communication, efficiency, adaptability, and future-proofing in model development is highlighted, with a focus on the need for intuitive interfaces and effective communication of complex clinical pathways.
  • πŸ€– The potential of large language models in health economic modeling is mentioned as a future direction, emphasizing the need for models to be adaptable and incorporate advanced technologies.
  • πŸ” The assertHR package is introduced as a tool to help modelers review and build models, offering a series of checks and functionalities to ensure models are working as intended.
  • πŸ“Š The package includes functionality for visualizing the structure of a model through a function network plot, which helps in understanding how different functions within a model relate to each other.
  • πŸ› οΈ The visualization tool allows for the identification of functions, their documentation, corresponding tests, and code coverage, providing a quick overview of the model's structure and testing status.
  • πŸ”— The use of interactive HTML outputs for model visualization is discussed, enabling easy sharing and communication of the model structure with stakeholders.
  • πŸ”‘ The potential for generating summaries of model functions using large language models is explored, offering a way to understand individual components of a model in layman's terms.
  • πŸ” The script concludes with a call for contributions and feedback on the CT H package, emphasizing the open-source nature of the project and the community's role in its development and improvement.

Q & A

  • What is the primary goal of the CT H package being discussed?

    -The primary goal of the CT H package is to shift the modeling pipeline from spreadsheet software like Excel to script-based programming languages, enabling a more integrated and efficient process for statistical work, model development, data visualization, reporting, and app creation.

  • Why is there a focus on moving away from Excel to script-based programming languages in model development?

    -The focus is on improving usability, communication, efficiency, adaptability, and future-proofing. Script-based languages allow for better code management, testing, and integration with other tools, which is essential for complex health economic models.

  • What does the speaker mean by 'shift the modeling pipeline'?

    -Shifting the modeling pipeline refers to transitioning from using multiple disparate tools like Excel, VBA, and PowerPoint to a unified system where all aspects of model development, analysis, and reporting are handled within script-based programming languages.

  • What is the significance of the assertHR package in the context of this presentation?

    -The assertHR package is significant as it provides a set of tools for modelers to review and build models more effectively. It includes functionality for conducting checks on model components and visualizing the structure of a model through function networks.

  • How does the assertHR package help in reviewing models?

    -The assertHR package helps in reviewing models by providing a series of checks that can be applied to model components, ensuring they meet certain criteria, and by visualizing the model's function network, which aids in understanding the relationships and flow between different parts of the model.

  • What is the role of the 'visualize project' function in the assertHR package?

    -The 'visualize project' function in the assertHR package allows users to plot the function network of a model, which helps in understanding how different functions within the model are interconnected and how they contribute to the overall model structure.

  • How can the assertHR package be used to improve communication about a model's development?

    -The assertHR package can be used to improve communication by generating summaries of model functions, identifying test coverage, and providing an interactive visualization of the model's structure. This makes it easier for stakeholders with varying levels of technical knowledge to understand the model.

  • What is the potential future direction for the assertHR package mentioned in the script?

    -The potential future direction includes expanding the testing functionality, integrating a chat-bot for interactive questions about model functions, fine-tuning a large language model for better function summaries, and possibly submitting the package for peer review and publication.

  • How does the speaker address concerns about the limitations of the assertHR package in verifying model accuracy?

    -The speaker acknowledges that the assertHR package is not a substitute for full verification checks and that it may not catch all errors, such as incorrect transition probabilities. However, it is intended to nudge modelers towards better testing practices and provide a starting point for identifying potential issues.

  • What is the current status of the assertHR package in terms of availability and contribution?

    -The assertHR package is currently available as an open-source development version on GitHub. The speaker encourages contributions, testing on various models, and feedback to improve the package further.

Outlines

00:00

πŸ“ˆ Shifting the Modeling Pipeline to Script-Based Languages

The speaker begins by expressing gratitude for the contributions to the development of the CT H package, which is aimed at enhancing model review. The overarching goal is to transition the modeling pipeline from spreadsheet software like Excel to script-based programming languages, with a focus on improving communication, efficiency, adaptability, and future-proofing. The speaker highlights the importance of usability and communication in health economic models and the need to cater to diverse audiences with varying levels of technical knowledge. The presentation also touches on the use of shiny apps and markdown files for automation and the structure of cost-effectiveness model packaging in R.

05:02

πŸ” Introducing the assertHR Package for Model Review and Development

The speaker discusses the challenges of reviewing complex models with nested functions and numerous scripts, drawing a comparison with the clarity of Excel files. To address this, the assertHR package has been developed to assist modelers in reviewing and building models. The package offers a series of checks to ensure the model's correctness, as well as functionality to visualize the structure of a model. The speaker emphasizes the benefits of having a centralized package for common checks, rather than each modeler writing their own, and introduces the 'visualize.project' function for plotting the function network of a model.

10:02

πŸ› οΈ Visualizing and Summarizing Model Structure with assertHR

The speaker elaborates on the visualization feature of the assertHR package, which allows users to plot the network of functions within a model, helping to understand the relationships between functions. The package scans the project folder, identifies functions, documentation, and corresponding tests, and presents this information in an HTML output. This visualization aids in quickly identifying untested functions and understanding the model's structure. The speaker also introduces the use of a large language model to generate summaries of individual functions, providing a layperson's understanding of what each function does.

15:06

πŸ“š Case Studies and Future Developments of the assertHR Package

The speaker shares examples of case studies where the assertHR package has been applied, including models from GSK and others, and acknowledges the contributions and feedback from the community. They outline future plans for the package, such as expanding testing functionality, integrating a chat-bot for interactive questioning about functions, and potentially fine-tuning a large language model for better responses. The speaker also invites contributions and feedback on the open-source software and mentions a linked open-access publication for further information.

20:06

πŸ€” Addressing Concerns and Future Considerations for assertHR

In the final paragraph, the speaker addresses a concern raised about the limitations of the package in providing a false sense of security, as it does not replace full verification checks. They acknowledge that while the package aids in visualization and some testing, it cannot catch all errors. The speaker also dismisses the idea of making the visualization an R Studio add-in, stating that there are no current plans for such integration.

Mindmap

Keywords

πŸ’‘CT H package

The 'CT H package' refers to a specific software package being developed for model review in the context of health economics. It is designed to facilitate the transition from spreadsheet-based modeling to script-based programming languages. The package includes functionalities for testing and visualizing models, which is central to the video's theme of improving the modeling pipeline and ensuring quality control.

πŸ’‘Modeling pipeline

The 'modeling pipeline' is the process of developing, reviewing, and implementing health economic models. The video emphasizes the goal of shifting this pipeline from spreadsheet software like Excel to script-based programming languages, which can enhance efficiency, adaptability, and communication of complex models.

πŸ’‘Shiny apps

Shiny apps are interactive web applications built using the R programming language. In the context of the video, they represent a tool for creating intuitive interfaces that can communicate the modeling process to diverse audiences, from clinicians to patients.

πŸ’‘Markdown

Markdown is a lightweight markup language used for formatting text. In the script, it is mentioned as a method for automating reporting in conjunction with Shiny apps, which helps in the documentation and communication of health economic models.

πŸ’‘Health economic models

Health economic models are analytical tools used to evaluate the costs and health outcomes of different interventions or treatments. The video discusses the importance of these models in communicating complex clinical pathways and the impact of new interventions.

πŸ’‘Usability

Usability in the context of the video refers to the ease of use and intuitiveness of the tools and interfaces developed for health economic modeling. It is one of the key considerations for the developers to ensure that the models can be understood and utilized by a wide range of audiences.

πŸ’‘Efficiency

Efficiency in the script highlights the importance of improving computation time and streamlining the process of model development and review. It is tied to the goal of moving from multiple software applications to a unified package for health economic modeling.

πŸ’‘Adaptability

Adaptability refers to the ability of the modeling tools to be flexible and easily modified to suit different needs or incorporate new features. The video discusses the importance of this concept in ensuring that models remain relevant and can incorporate future advancements, such as large language models.

πŸ’‘Code coverage

Code coverage is a measure of how much of a codebase is tested by automated tests. In the video, it is used to assess the quality of the health economic models, indicating whether all parts of the model have been adequately tested and reviewed.

πŸ’‘Large language models

Large language models are AI systems capable of generating human-like text based on input data. The video discusses the potential of integrating these models into health economic models for future-proofing and improving the summarization and understanding of complex functions within the models.

Highlights

Development of the CT H package for model review, aiming to shift from spreadsheet software to script-based programming languages.

Introduction of a package that allows for model quality checks and communication of the QC process.

The importance of model communication for various audiences, including modelers, clinicians, patients, and payers.

Key considerations for model development: usability, communication, efficiency, adaptability, and future-proofing.

The use of Shiny apps and markdown files for automating reporting in health economic models.

Overview of the assertHR package, designed to help modelers review and build models with a focus on quality checks.

The visualization of a model's function network to understand how functions fit together within the codebase.

The ability to generate a summary of any function using a large language model for better understanding.

Use of the 'visualize project' function to plot the function network and assess model structure.

The interactive nature of the HTML output, allowing users to explore function details and test locations.

Plans for future enhancements, including expanding testing functionality and integrating a chat-bot for function inquiries.

Open-source nature of the project, encouraging contributions and testing on various models.

Potential for fine-tuning a large language model with teaching material for improved function summaries.

The CT H package's role in nudging the industry towards better testing practices in health economic modeling.

The limitation that the package does not replace full verification checks and the need for clear communication of this.

No current plans to make the visualization an R Studio add-in, but openness to contributions for such development.

Transcripts

play00:00

uh so everyone um thank you thank you

play00:02

for coming um yeah I've been a bit busy

play00:04

today so apologies if there's uh there's

play00:06

a few uh last minute issues um okay so

play00:10

first of all so we're going to talk

play00:11

through the the CT H package uh which

play00:14

we've been uh developing uh for our

play00:18

model

play00:19

review and wanted to say start by saying

play00:22

uh thank you to to a lot of people who

play00:23

contributed to this um either in kind of

play00:26

contributing to the the manuscript which

play00:27

is in progress and I'll share a a link

play00:29

to the kind of draft on on the progress

play00:32

uh in this presentation but also people

play00:34

who who've directly um tested bugs and

play00:37

things in the package and contributed to

play00:38

the package

play00:39

itself um so the overarching aim and I

play00:42

guess the overarching aim here in

play00:44

general and I I start a lot of

play00:45

presentations with this slide is to

play00:47

shift the the modeling pipeline uh from

play00:49

spreadsheet software msxl to to script

play00:52

based programming languages so from the

play00:54

you know your survival analysis through

play00:57

uh your say VBA code for a model

play01:00

um to excel plots word outputs and

play01:03

PowerPoint we want to shift that

play01:04

pipeline that whole pipeline through to

play01:06

a system where we are able to uh perform

play01:10

our our stats work our model our Pops

play01:13

and visuals our reports and our apps so

play01:15

that's kind of like the big picture uh

play01:17

kind of where can we get

play01:19

to so uh through various Publications a

play01:24

lot with uh with Paul and and well in

play01:25

the past we've worked with how do you

play01:28

build these shinies up shiny apps How do

play01:30

automate some of this reporting in in

play01:31

markdown files uh and then last year at

play01:34

our HDA we presented on packaging of

play01:37

cost effectance model so a structure by

play01:39

which you can create a package for a

play01:40

model uh in a set format and that kind

play01:43

of um provides a structure and a

play01:45

template for how to to encode uh models

play01:48

in R um and that looks generally quite

play01:51

similar to what most of the models that

play01:53

I've see in in our and view INR uh end

play01:56

up being like and so often we'll get

play01:58

models where we have you know a big

play02:02

folder with a load of functions a folder

play02:03

with a load of tests Etc so we'll come

play02:06

to that in a second so that's kind of

play02:08

the the background of the the

play02:09

introduction to where we're we're

play02:10

starting

play02:11

from yeah and um so before um Rob talks

play02:15

about the the interesting stuff um I

play02:17

wanted to give just a quick uh

play02:19

perspective on why we're particularly

play02:21

interested um in shifting towards R um

play02:24

from a a farmer perspective so um for

play02:27

any individual asset we work on we just

play02:29

have a huge range of potential models uh

play02:32

that might get built throughout the um

play02:34

the assets development timeline um but

play02:36

the thing I really want to focus on

play02:38

there is not the breadth of the models

play02:40

but the breadth of the audiences um that

play02:42

we work with both during the development

play02:44

phase and the output phase of the models

play02:47

um you know we talk to modelers uh

play02:49

clinicians patients payers uh people

play02:53

with lots of technical knowledge people

play02:54

with very little technical knowledge um

play02:57

and one of the things we really value um

play03:00

in those experiences is being able to

play03:01

communicate the modeling process um so

play03:03

you know when we build Health economic

play03:05

models the whole idea behind it is that

play03:07

we're building these models to uh

play03:10

communicate a complicated clinical

play03:13

pathway and um the impact and new

play03:15

intervention might have on that pathway

play03:18

um and so it's really important for us

play03:20

um that we're able to communicate to the

play03:21

right people at the right time um and

play03:23

this just brings me on to guess what the

play03:26

couple of the key considerations for us

play03:28

so usability communication um just you

play03:31

know the ability to develop intuitive

play03:34

app style interfaces using things like

play03:35

our shiny um and um you know ours focus

play03:38

on data visual visualization sorry is um

play03:42

is a huge bonus for us as we communicate

play03:44

these ideas um the other two things

play03:47

efficiency adaptability uh slightly more

play03:50

more obvious obviously it's uh it's

play03:52

great to have um an improvement in

play03:54

computation time and you know as Rob

play03:56

said pull everything under one package

play03:59

rather than having to look at word excel

play04:01

PowerPoint and kind of pull things in

play04:03

and out of things um and then you know I

play04:05

guess the last one touches on being

play04:07

future proof um you know so we're

play04:09

working um with a lot of large language

play04:11

models these days and being able to

play04:14

include those within Health economic

play04:15

models is clearly going to be a future

play04:17

direction for for modeling in general um

play04:20

and so I'll hand back up I think he's

play04:23

gonna uh talk through um uh this this

play04:27

package of tools which hopefully will

play04:28

help us not only QC models but also

play04:31

communicate that um QC process which I

play04:33

think is really

play04:35

important thanks and thanks in

play04:37

particular to to Tom and and YY who are

play04:39

here who've been uh helping internally

play04:42

to test some of what I'm going to talk

play04:43

about on in some internal models so

play04:44

we're testing it not only on some open

play04:46

source models but some internal models

play04:48

as well which has been really useful and

play04:50

valuable so um you might imagine

play04:52

somebody says can you review my model um

play04:56

so it might be that you've got uh your

play04:58

big our model and they go to an ERG or

play05:01

uh it's a MTA and then you go to to

play05:05

Industry and somebody needs to review

play05:07

that that model and so those of you who

play05:09

who have reviewed one of these quite

play05:11

more complicated complex side of

play05:13

modeling type models will know that you

play05:16

end up with a whole ton of nested

play05:17

functions it's very very hard you've got

play05:19

a load of scripts and it's very very

play05:21

hard to even start like where do you

play05:22

start with this this process just

play05:24

understanding where things fit together

play05:26

once you get to the code you're kind of

play05:29

you're right it's how do I even start to

play05:31

approach this problem so quite often you

play05:34

end up with you know tons of ask scripts

play05:36

like what do I do with all this stuff

play05:38

and this is probably one of well this is

play05:40

one of the biggest criticisms of R

play05:42

versus Excel because everybody opens an

play05:43

Excel file and yes you've got a lot of

play05:47

tabs but they're kind of Fairly clearly

play05:49

labeled and you can kind of Click

play05:50

through and see how things fit together

play05:53

to some extent even if I think generally

play05:55

it's it's

play05:57

harder so often feel like this

play06:00

so and then after panicking for a while

play06:02

you kind of start moving through the

play06:03

code trying to understand uh the code

play06:05

base um but what would be really handy

play06:07

to have is something that allows you to

play06:09

help review that code and ensure it's

play06:11

working as you you intend and as it as

play06:12

it says in the

play06:14

documentation so we built uh the assert

play06:17

HR package and the idea of this is to

play06:19

help modelers review uh and build

play06:22

because obviously building a model you

play06:23

should be kind of reviewing the model as

play06:25

you're going along making sure it's it's

play06:27

uh working as you intend uh you might

play06:29

have internal reviewers in your your

play06:31

organization and you might also want to

play06:32

convey the model to other people and

play06:34

explain it and so having tools that

play06:35

allow you to do that are really useful

play06:37

so there's two bits of functionality

play06:38

that we uh that we really focus on so

play06:41

first is a whole series of checks so

play06:44

those of you that have built models in

play06:45

our will know as you're writing your

play06:47

code you'll often add in a line that's

play06:49

just a check line after you built

play06:50

something so you create a transition

play06:52

probability Matrix and you then have a

play06:54

line that says do all the rows of this

play06:55

Su to one you create a trace do all the

play06:58

rows some to one is this a numic is you

play07:00

know is this the right type of object is

play07:02

it the right dimensions all these little

play07:04

tests that everybody writing

play07:05

independently makes no sense whatsoever

play07:08

what makes much much more sense is just

play07:10

to have one package where we just have a

play07:12

function which says check mark of Trace

play07:15

check transition probability Matrix and

play07:17

that's how this this um um kind of

play07:20

project started was rather than

play07:21

everybody writing their own checks let's

play07:23

pull our resources we can all contribute

play07:25

to this package which just then you just

play07:27

install package check Trace check

play07:30

transition proper to Matrix check that

play07:32

run off PSAs all of that kind of thing

play07:35

uh that everybody's kind of doing anyway

play07:37

uh gets put on a package but then I got

play07:39

really carried away and uh and then

play07:41

number two started which is how to

play07:43

summarize and visualize the structure of

play07:44

a model so uh what this does is it

play07:47

allows you to plot the function Network

play07:50

um so any model in R if it's well

play07:53

constructed should be a network of

play07:55

functions so some functions are going to

play07:57

call other functions um other functions

play08:00

will be kind of Standalone um but often

play08:02

you'll have nested functions where um

play08:06

you have you know a whole chain of

play08:07

functions so function one calls function

play08:08

two which call function three which

play08:10

calls function four and so understanding

play08:11

how all those fit together uh is really

play08:13

important so what we've done is built

play08:15

this package which allows you to to pass

play08:17

through your project folder for your

play08:20

pack uh for your model and it will then

play08:23

recognize it it will take a folder for

play08:25

the functions and a folder for your

play08:27

tests and it will will Loop through all

play08:30

of the code and identify where the

play08:32

functions are so exactly which line

play08:35

they're specified on they're created um

play08:39

and identify where the documentation for

play08:41

that function is and identify if there's

play08:44

a corresponding test in a test

play08:47

folder and so as I said there's two

play08:49

different ways to use this so at the

play08:50

moment it's just on GitHub not Crown um

play08:53

as a development version so you can just

play08:54

do Dev tools install GitHub um and then

play08:58

Library H and then somewhere in your

play09:01

code so you've got all your model code

play09:02

and then somewhere in your code you

play09:03

might want to you know check that your

play09:05

transition properties to array complies

play09:07

to load rules and so if you look at the

play09:09

that the documentation for that function

play09:11

you'll see all of the the things that

play09:13

we're checking there and so you can say

play09:15

well I'm happy with this um this is what

play09:17

you know lots of other people are using

play09:19

so these these checks fine with me and

play09:21

then it just Flags if there's any errors

play09:22

so in this case uh there's an error with

play09:25

this uh array and so it tells you the

play09:27

transition probabilities are not valid

play09:29

for these different Health States at

play09:30

these different Cycles um so this has

play09:32

been done before and it's just an

play09:34

adaptation on on on all work um but

play09:37

probably the more interesting bit is

play09:39

what I'm going to talk about for most of

play09:40

the rest of the session U which is to

play09:42

visualize a network of functions and

play09:45

there's a single function that you can

play09:46

call here called visualize

play09:48

project and what you have to give that

play09:50

function is a project path so this is

play09:53

the project directory top level where

play09:56

are the functions the functions are in

play09:58

here the r folder

play09:59

where are the tests the tests are in the

play10:02

test test that folder you could have

play10:04

them in somewhere else you could have a

play10:05

function folder called functions or a

play10:07

test folder called tests whatever you

play10:09

want to call it uh and then you just

play10:12

need to uh say whether you want to run

play10:15

coverage of of of functions to see what

play10:17

the code coverage is like on those

play10:19

functions so those are different kind of

play10:21

arguments to the um the

play10:24

function uh as I said there's a lot so

play10:26

on on the first side there's there's a

play10:27

lot of these different checks and

play10:28

they're all kind of included in

play10:30

documentation um yeah like they're

play10:32

useful everyone's writing them don't

play10:35

think that's super super interesting but

play10:37

it's something that as a group I really

play10:39

strongly believe that we should all be

play10:40

pulling uh together so if you do want to

play10:43

contribute a check that you're using

play10:44

internally in your organization and

play10:46

you're just you know you're using it

play10:48

routinely uh then please uh send me a

play10:50

pull request or send the code and we can

play10:53

build it in and So eventually we'll have

play10:54

a whole Lo of these checks for different

play10:56

types of models So currently we just

play10:57

have uh markup models that we could have

play10:59

you know checks for um PSM for um b um

play11:05

you know any type of model uh all in one

play11:07

place so that everyone's kind of

play11:09

validated these this bit of

play11:12

code but probably more useful is is the

play11:16

model review so the visualization so

play11:19

this is what uh gets spit out in HTML

play11:21

from the um from from the reviewer

play11:24

function and so this is the Run six

play11:27

model and the Run six model has five sub

play11:29

functions so this the function in the

play11:32

middle calls those five so the arrow

play11:34

denotes that that function exists or is

play11:36

called by the the function which the

play11:38

arrow is pointing to and this is a very

play11:40

simple model so these five functions are

play11:42

called sequentially so there's a parent

play11:44

and then five children and these two

play11:46

functions here are not called by run six

play11:49

model they used somewhere else in the

play11:50

code base um but what we can see is that

play11:53

that very quickly that those um six

play11:57

functions in the middle all have test

play11:59

associated with them so it's gone

play12:00

through and it's recognized these are

play12:02

our functions um these are the names and

play12:05

these ones have tests they denoted in

play12:07

green uh the one that's orange uh is

play12:11

orange because has a test but its code

play12:13

coverage is between 20 and 80% and the

play12:16

one in red doesn't have a test so we can

play12:18

very quickly see were our functions um

play12:21

and do they have tests and how they how

play12:23

do they fit together now obviously

play12:24

that's a very simple model um but we can

play12:28

click on any one of the nodes so any of

play12:30

our functions and we see the function

play12:32

name we see where the function is

play12:34

located in our code base we see where

play12:36

the test is located and we see the

play12:38

coverage so that's kind of a like

play12:40

summary of every constituent part of the

play12:44

model within this HTML um output we can

play12:48

create new functions so just for

play12:50

discussion purposes so say we had a

play12:52

meeting internally and we run this

play12:54

visualizer we get this output for our

play12:56

model and we say right we want to build

play12:59

in this new part of the model or this

play13:01

new algorithm into the model we can

play13:03

construct our own nodes just in this

play13:05

visualizer as a communication atol to

play13:08

say you know now we're going to build

play13:10

this new function that does this new

play13:11

thing and that gets called by an

play13:13

existing function and that that's our

play13:15

kind of plan going forward so it's also

play13:16

useful as a kind of planning tool for

play13:18

your your modeling

play13:20

work but what's um kind of really

play13:23

interesting from a future proofing

play13:25

perspective is we can generate a summary

play13:28

of any of these these uh these functions

play13:31

so the I symbol basically takes

play13:36

you yes so the I symbol basically takes

play13:38

you uh produces a popup which displays

play13:41

the function code uh the uh this symbol

play13:44

basically takes you to our studio to

play13:46

that location the function as you expect

play13:48

but this robot symbol basically uh it

play13:51

generates a large language model summary

play13:53

of the function so as um as we talked

play13:57

about already large language models is

play13:59

not very good if you provide thousands

play14:01

of lens of code uh and tell it to

play14:04

summarize it or tell it to talk about it

play14:06

but if you provide it five lenses of

play14:08

code suddenly it gets a lot better so if

play14:10

you have a model that's built up of lots

play14:11

of small algorithms and you send those

play14:13

to be summarized suddenly uh you get a

play14:16

much better uh output and result so

play14:19

rather than getting you know sending

play14:21

your entire model to be summarized

play14:23

what's going on we just we want to

play14:25

understand in Lay person summary what

play14:26

does this one function do and so then it

play14:29

it generates a a two paragraph summary

play14:33

so just a short bit of text summarizing

play14:35

what this function

play14:36

does and the way this works is is that

play14:39

when that button pressed the function

play14:41

data is extracted so we take um the body

play14:44

of the function the arguments and the RO

play14:46

code store that all data uh create that

play14:50

like pass that all together into a

play14:51

prompt and then send that VI an API

play14:53

request uh at the moment to open AI um

play14:57

and receive a response reform format it

play14:59

and then show it in the the

play15:01

mod so it looks like this so from your

play15:05

um clicking that button you then just

play15:07

get this this short summary

play15:11

um and so we've run this as a few case

play15:13

studies um so we've done the nice RCC

play15:16

model so thank you to to D and Darren

play15:18

that we heard earlier uh first

play15:20

presentation um we've done the six s

play15:22

pack teaching model that we we published

play15:24

on a couple of times um we've done the

play15:26

cdx2 ca model Fernando published back in

play15:30

2022 uh which is an our package uh and

play15:32

and several others described there uh

play15:35

and then um the GSK team have been doing

play15:38

some internally and several of you have

play15:40

contacted me and thank you very much for

play15:42

implementing those internally and and

play15:44

telling me about all the bugs in this

play15:45

software uh it's been really handy and

play15:47

for those of you have sent PO requests

play15:49

um to to help improve it that's

play15:52

fantastic um so the code for this is is

play15:55

completely open source so here's an

play15:56

example of one this is the the CDX to

play15:59

biomarking biomarker testing um output

play16:02

so you can see the the function network

play16:04

is actually slightly bigger than that

play16:06

and then a summary of one of the

play16:07

functions generated this is the um uh

play16:12

the the cheff micro simulation model um

play16:15

that's built by D poad so this is kind

play16:17

of what that looks like and then you can

play16:19

see a summary here of where the function

play16:20

is function location test location and

play16:22

this is is is fully interactive um and

play16:25

the same for the nice RCC Pathways pilot

play16:30

so use coup more

play16:36

minutes I don't know where I put it I'm

play16:38

just trying to find

play16:42

the okay that's

play16:44

fine so yeah if you want um I can send

play16:47

some some examples so render HTML output

play16:50

um and so what that means is that you

play16:51

can then share that visualization via

play16:54

email to whoever you want to to share it

play16:55

with um so in terms of next steps

play16:59

um we welcome contributions testing the

play17:01

software on your own models the software

play17:03

is fully open source so you can just

play17:04

download it from from GitHub and test it

play17:06

on your models what we'd request is if

play17:08

you do use it please let us know how it

play17:11

went either say fine no problems or um

play17:14

tell us what the the issues are so we

play17:16

can help kind of improve this going

play17:17

forward um we're going to expand some of

play17:20

the the the testing functionality that

play17:23

it does provide and also integrate so at

play17:25

the moment uh it returns a two paragraph

play17:27

summary of the of each function uh when

play17:29

you click on there what we could do is

play17:31

build in sort of a almost like a chat

play17:33

bot so you can ask questions about the

play17:35

function and and respond back and

play17:36

forward which really cool uh and then

play17:39

also we're looking at whether we can

play17:40

fine-tune a l large language model

play17:43

because we have a lot of teaching

play17:44

material uh and so we can take that

play17:46

teaching material and the code and then

play17:48

fine-tune the large language model so

play17:49

that it gives a better response than the

play17:52

the model just developed by by open AI

play17:54

um or you'd Hope anyway uh and then

play17:57

finally uh submission at some

play18:01

point so if you are interested in in

play18:04

having a look and commenting or you do

play18:06

have any comments I'm Consciousness late

play18:07

and we want to get to the fob have a

play18:09

look at the the Open Access publication

play18:12

that's Linked In it's linked here and on

play18:13

GitHub um and and just let us know feel

play18:16

free to make comments on

play18:18

there yeah

play18:24

[Applause]

play18:29

conscious that obviously everybody wants

play18:30

to go to Pub so probably will limit this

play18:32

to two questions so fingers

play18:36

first have we got who wants to ask

play18:39

one go ahead Rob so obviously love the

play18:42

package the unit testing visualization

play18:44

is great but my main concern would be

play18:46

giving users a FSE sense of security

play18:48

because this wouldn't pick this is not

play18:50

equivalent to a full verification check

play18:52

so it wouldn't pick up if the wrong

play18:54

transition probabilities have been

play18:55

pushed in the wrong place or the

play18:56

treatment are being commuted

play18:58

sorts of things so there could be

play19:00

something massively wrong with the

play19:02

model 100% pass so I think that caveat

play19:06

needs to be much clear communting this

play19:08

to absolutely yeah no so I mean if your

play19:11

code is wrong it's still wrong right

play19:13

like this is for visualizing the model

play19:15

um it won't it won't necessarily Find

play19:17

the Errors I guess what I would say is

play19:19

as an industry we probably aren't very

play19:22

good at testing our own code and like

play19:25

people from software development would

play19:26

probably come in and look at Health

play19:27

econic models and be like like you guys

play19:29

aren't doing a hell of a lot of testing

play19:31

and so maybe this will nudge people

play19:32

towards at least writing some tests even

play19:34

if the tests don't pick up everything at

play19:37

least there's some um Le a start so yeah

play19:42

um do we have any questions on the

play19:48

chat that one

play19:53

yeah well that's brutal

play19:55

from thanks John

play20:00

okay so are are there any plans to make

play20:02

your visualization in R Studio add in no

play20:05

no I I don't think yeah to be rooted

play20:07

honest

play20:08

no I think that'd be great if I asked

play20:10

you to call me up and want me to come

play20:12

come come work on it then then great but

play20:14

no not

play20:16

currently yeah

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
Health EconomicsModel ReviewR PackageScriptingModeling PipelineSoftware DevelopmentCode TestingFunction VisualizationModel CommunicationOpen Source