この質問は少し奇妙に聞こえるかもしれません。R の R 二乗値を 1:1 ラインと比較して報告する方法を知りたいです。たとえば、観測値とモデル化された値を比較したいとします。理想的なケースでは、原点を 45 度の角度で通過する直線である必要があります。
たとえば、https://www.dropbox.com/s/71u2vsgt7p9k5cl/correlationcsvにあるデータがあります。
私が書いたコードは次のとおりです。
> corsen<- read.table("Sensitivity Runs/correlationcsv",sep=",",header=T)
> linsensitivity <- lm(data=corsen,sensitivity~0+observed)
> summary(linsensitivity)
Call:
lm(formula = sensitivity ~ 0 + observed, data = corsen)
Residuals:
Min 1Q Median 3Q Max
-0.37615 -0.03376 0.00515 0.04155 0.27213
Coefficients:
Estimate Std. Error t value Pr(>|t|)
observed 0.833660 0.001849 450.8 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.05882 on 2988 degrees of freedom
Multiple R-squared: 0.9855, Adjusted R-squared: 0.9855
F-statistic: 2.032e+05 on 1 and 2988 DF, p-value: < 2.2e-16
プロットは次のようになります。
ggplot(corsen,aes(observed,sensitivity))+geom_point()+geom_smooth(method="lm",aes(color="red"))+
ylab(" Modeled (m)")+xlab("Observed (m)")+
geom_line(data=oneline,aes(x=onelinex,y=oneliney,color="blue"))+
scale_color_manual("",values=c("red","blue"),label=c("1:1 line","Regression Line"))+theme_bw()+theme(legend.position="top")+
coord_cartesian(xlim=c(-0.2,2),ylim=c(-0.2,2))
私の質問は、よく見ると、データが 1:1 の線から外れているということです。1:1 ラインに対する R-squared を見つけるにはどうすればよいですか? 現在、私が使用した線形モデルは、指定された線に関係ありません。それは純粋に提供されたデータに基づいています。