Я делал анализ данных о наборе данных по раку простаты.
Я хотел увидеть прогнозы и остатки, основанные на статусе пациента и причине смерти.
Итак, я сначала вложил набор данных, сделал модели, сопоставил модель с вложенным набором данных и создал прогнозы и остатки.
Я хочу визуализировать прогнозы и остатки, используя ggplot2
и, к сожалению, Я получил ошибку.
Не знаю, как автоматически выбрать масштаб для объекта типа grouped_df/tbl_df/tbl/data.frame
. По умолчанию для непрерывного. Ошибка:
Эстетика должна иметь длину 1 или совпадать с данными (502): y
Я вижу, что в y
имеется 502 элемента , Я понятия не имею, как визуализировать этот массивный набор данных. Набор данных прикреплен в виде снимка экрана (извините, не знаю, как загрузить файл).
#load libraries
install.packages("broom")
install.packages("purrr")
install.packages("ggplot2")
library(purrr)
library(tidyr)
library(dplyr)
library(broom)
library(modelr)
library(ggplot2)
library(tibble)
library(rlang)
#preparing data-nesting
#grouping my categorical variable
#interested in death cause and status
by_deathcause<-prostate_data_clean %>%
group_by(cause_of_death, status_) %>%
nest()
##building models
model1<-function(df){
lm(serum_hemoglobin~sdate, df)
}
#nesting and modelling
by_deathcause<-by_deathcause %>%
mutate(mdls=map(data,model1)) %>%
mutate(resids= map2(data, mdls, add_residuals),
pred=map2(data, mdls, add_predictions))
#unnest prediction
pred<-unnest(by_deathcause, pred)
resids<-unnest(by_deathcause, resids)
#plot the prediction
pred %>%
ggplot(aes(sdate, pred, group=status_))+
geom_line()+
geom_smooth()
#want clearer view on each cause of death!
pred %>%
ggplot(aes(sdate, pred, group=status_))+
geom_line()+
facet_wrap(~status_)
#plot the residual !!!!!!!!!!!!
resids %>%
ggplot(aes(sdate, resids, group=cause_of_death))+
geom_line()+
geom_smooth(se=FALSE)
#model 2
model2<-function(df){
lm(diastolic_bp~sdate, df)
}
#nesting and modelling
by_deathcause_dia<-by_deathcause %>%
mutate(mdls=map(data,model2)) %>%
mutate(resids= map2(data, mdls, add_residuals),
pred=map2(data, mdls, add_predictions))
#unnest prediction
pred2<-unnest(by_deathcause_dia, pred)
resids2<-unnest(by_deathcause_dia, resids)
#plot the prediction
ggplot(data=pred2, mapping=aes(sdate, pred2))+
geom_line(aes(group=status_))+
geom_smooth(se=FALSE)
#want clearer view on each cause of death!
ggplot(data=pred2, mapping=aes(sdate, pred2, group=cause_of_death))+
geom_line()+
facet_wrap(~status_)
#plot the residual !!!!!!!!!!!!
resids2 %>%
ggplot(aes(sdate, resids2, group=cause_of_death))+
geom_line()+
geom_smooth(se=FALSE)