1

这个问题可能听起来有点奇怪。我想知道如何报告 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 平方?现在我使用的线性模型与指定的线无关。它完全基于提供的数据。

4

1 回答 1

2

您可以计算残差并求和它们的平方:

 resid2 <- with( corsen, sum( sensitivity-observed)^2 ))

如果你想要一个类似 R^2 的数字,我想你可以计算:

 R2like <- 1 - resid2/ with(corsen, sum( sensitivity^2))
于 2013-06-13T00:21:02.917 回答