相对于R中的1:1线观察和建模的R平方

时间:2013-06-12 23:51:31

标签: r

这个问题可能听起来有点奇怪。我想知道如何报告R中的R-sqaured值与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))

Correlation plot

我的问题是,如果仔细观察,数据是从1:1线开始的。如何找到相对于1:1线的R平方?现在我使用的线性模型与指定的线无关。它纯粹基于提供的数据。

1 个答案:

答案 0 :(得分:2)

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

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

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

 R2like <- 1 - resid2/ with(corsen, sum( sensitivity^2))