Saya mencoba membuat garis regresi untuk grafik ini, mengapa kode di bawah ini tidak berfungsi?

Setelah melakukannya, saya perlu membuat legenda khusus dengan label: titik hitam bernama 'aktual' dan tanda hubung biru (sesuai dengan garis) bernama 'diprediksi'

library(ggplot2)
d1 <- c(20,30,40,50,60,70)
d2 <- c(23, 32,41,53,60,69)

df <- data.frame(d1, d2)


ggplot(df,aes(x=d1,y=d2)) +
  geom_point(size=1.1)+
  geom_smooth(method = "glm", 
              method.args = list(family = "binomial"), 
              se = FALSE)  
r
0
Achilles 6 Juli 2020, 01:20

1 menjawab

Jawaban Terbaik

Karena rentang nilai untuk variabel dependen dalam bagan tidak antara 0 dan 1, dalam geom_smooth() keluarga tidak boleh binomial, seperti yang dicatat oleh pesan kesalahan dari ggplot():

`geom_smooth()` using formula 'y ~ x'
Warning message:
Computation failed in `stat_smooth()`:
y values must be 0 <= y <= 1 

Jika kita menggunakan nilai default untuk family=, garis regresi akan dicetak.

library(ggplot2)
d1 <- c(20,30,40,50,60,70)
d2 <- c(23, 32,41,53,60,69)

df <- data.frame(d1, d2)


ggplot(df,aes(x=d1,y=d2)) +
     geom_point(size=1.1)+
     geom_smooth(method = "glm", 
                 se = FALSE)  

enter image description here

Salah satu cara untuk membubuhi keterangan plot adalah dengan menambahkan garis regresi dan informasi R^2. Kita dapat melakukannya dengan paket ggpubr dan fungsi stat_regline_equation()-nya.

library(ggpubr)
ggscatter(df, x = "d1", y = "d2", add = "reg.line",
          add.params = list(color = "blue", fill = "lightgray")) +
     stat_cor(label.x = 3, label.y = 70) +
     stat_regline_equation(label.x = 3, label.y = 66)

 

...dan outputnya:

enter image description here

1
Len Greski 5 Juli 2020, 23:47