Я разработал пакет R для оценки параметров фармакометрических моделей. Эти модели предсказывают концентрацию лекарства в организме человека с течением времени. Я сейчас разрабатываю хорошую библиотеку для этого.
Мой идеальный API выглядел бы очень похоже на ggplot
. Первоначальное определение данных и последующие слои для добавления графических элементов.
ggplot(model, observed=observations, treatment=paracetamol) +
stat_observations(geom="point") +
stat_prediction(geom="line") +
stat_prediction_se(geom="ribbon", level=0.95, nsimulations=500)
Я могу создавать новые объекты Stat (например, StatPrediction
), которые создают правильный data.frame для прохождения через базовый geom. Однако этому объекту Stat необходим доступ к исходной модели для имитации новых данных! Я изо всех сил пытаюсь выбрать лучший способ реализовать это ...
- Используйте
fortify()
для создания «бога» data.frame со всей информацией, которая нам когда-либо может понадобиться. Я мог бы использовать broom::tidy()
и для этого. Это неуклюже однако; Я не знаю аргумента nsimulations
заранее, поэтому не знаю, сколько симуляций модели я должен выполнить.
- Используйте
fortify()
, чтобы создать «фальшивый» data.frame, и используйте attr(data, "model") <- model
, чтобы добавить мою оригинальную модель в data.frame. Используйте функцию computeLayer
, чтобы вернуть этот оригинальный объект в объект StatPrediction
. Это кажется «хакерским»; ggplot предназначен для работы с верным data.frame
, а не с моей собственной версией одного ...
- Реализация
ggplot.myModel
, которая создает специальный объект ggplot
со слотом для модели. Реализуйте ggplot_add.StatPrediction(object, plot, object_name)
, так как это единственный способ получить оригинальный объект plot
и найти модель.
Кто-нибудь еще выполнял чистую реализацию подобной проблемы?