2013-06-12 55 views
0

這個問題可能聽起來有點奇怪。我想知道如何報告R中R-sqaured值與1:1線的比較。例如,我想比較觀察值和建模值。在理想的情況下,它應該是一條以45度角穿過原點的直線。R平方觀察和建模相對於R中的1:1線

比如我可以在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

我的問題是,如果我們仔細觀察t他的數據是從1:1線。我怎樣才能找到相對於1:1線的R平方?現在我使用的線性模型與指定的線無關。它完全基於所提供的數據。

回答

2

可以計算的殘差,總結它們的平方:

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

如果你想要一個R^2號一樣我想你可以計算出:

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