私はRの新機能です.GGPLOTにgeom_smooth(method = lm)を使用して回帰直線を適合させようとしています。log-log ggplotの回帰直線勾配のバリエーション
私は、同じデータセットの場合、軸が線形リニアから線形ログに、そしてログログに変更されると、回帰直線の傾きが変更されることに気付きました。相関も真実ではないようだ。
データ(R)の相関共effecientは、私が最初に線形スケール上に自分のデータをプロットした-0.125
conc <- c(1.5188717, 1.8794363, 2.5455899, 1.5810686, 0.4938004, 2.9526288)
absp <- c(6.975519, 2.279606, 2.265391, 1.611868, 1.379097, 1.324827)
mydata <- data.frame(conc, absp)
corr_eqn <- function(x, y) {
corr_coef <- round(cor(x, y), digits=3)
paste("italic(r) == ", corr_coef)
}
value <- data.frame(r=corr_eqn(conc, absp))
1です。ここでy切片は〜3.1
ggplot(mydata, aes(x=conc, y=absp)) +
labs(x="Conc.", y="Absp.") +
scale_x_continuous() +
scale_y_continuous(breaks=c(0,1,2,3,4,5,6,7)) +
geom_point(size=4) +
theme(text = element_text(size=18, face="bold"), legend.position="none")+
geom_smooth(method=lm, se=FALSE) +
geom_text(data=value, aes(x=2, y=6, label=r),
colour="red", size=5, parse=TRUE)
2のように見える。しかし、私はLOG2スケールにy軸を変更して、x軸はリニアに残っている場合、y切片は2〜のように見えます3.
ggplot(mydata, aes(x=conc, y=absp)) +
labs(x="Conc.", y="Absp. (log2)") +
scale_x_continuous() +
scale_y_continuous(trans=log2_trans(),breaks=c(0,1,2,3,4,5,6,7)) +
annotation_logticks(sides="l") +
geom_point(size=4) +
theme(text = element_text(size=18, face="bold"), legend.position="none")+
geom_smooth(method=lm, se=FALSE) +
geom_text(data=value, aes(x=2, y=6, label=r),
colour="red", size=5, parse=TRUE)
3、最終的に、私はLOG2スケールにy及びx軸の両方を変更すると、y切片が2未満に低下し、勾配は今正であるように見えます。
ggplot(mydata, aes(x=conc, y=absp)) +
labs(x="Conc. (log2)", y="Absp. (log2)") +
scale_x_continuous(trans=log2_trans()) +
scale_y_continuous(trans=log2_trans(),breaks=c(0,1,2,3,4,5,6,7)) +
annotation_logticks(sides="lb") +
geom_point(size=4) +
theme(text = element_text(size=18, face="bold"), legend.position="none")+
geom_smooth(method=lm, se=FALSE) +
geom_text(data=value, aes(x=2, y=6, label=r),
colour="red", size=5, parse=TRUE)
私はスロープやy切片がちょうどスケールをログに記録するリニアから軸を変更することで変更することができます方法を理解していないようですか?私はここで何らかの明白な誤りを犯したのでしょうか?助けやアドバイスに感謝します。
ありがとうございますが、問題はまだ対数スケールのためpersits。 – leo1
私は分かりません。まったく同じことがそこで起こります。'2^coef(lm(log2(absp)〜log2(conc)、data = mydata))[1]'は2.075を与え、Conc = 1で見える値です。 – Roland