2017-06-05 3 views
0

Ich möchte in einem Diagramm die Korrelation zwischen pred x Obs, der RMSE und Rsquared drucken. Wenn ich mit "postResample" berechne, bekomme ich beide Werte zusammen, aber ich möchte sie getrennt. Also, wenn ich R frage, plottet es alles zusammen. Könnte jemand helfen, es getrennt zu planen?Plotting RMSE und RSquared separat mit PostResample

## Ploting residuals 
axisRange <- extendrange(c(observed, predicted)) 
plot(observed, predicted, 
ylim = axisRange, 
xlim = axisRange, 
ylab = 'Predicted', 
xlab = 'Observed', las=1) 

## correlation predicted x observed 
inform = as.character(round(cor(predicted, observed), digits = 2)) 
text(x=10,y=46, paste('Corr =', inform)) 
text(x=10,y=43, paste('RMSE =', inform)) 
text(x=10,y=40, paste('RSquared =', inform)) 

## Adding reference line 
abline(0, 1, col = "darkgrey", lty = 2) 

## Calculating Rsquared and RMSE 
postResample(predicted, observed) 
+1

Sie benötigen ein Beispiel zu liefern; lies das: [Wie man ein großartiges reproduzierbares Beispiel in R macht?] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – Masoud

Antwort

0

Sie können die [] verwenden, um die erste (RMSE) und der zweiten (R quadriert) Elemente der Ausgang der Funktion postResample() zuzugreifen. Hier

ein Beispiel:

postResample(1:10,9:18)[1] 

postResample(1:10,9:18)[2] 

So in Ihrem Code:

## Ploting residues 
axisRange <- extendrange(c(observed, predicted)) 
plot(observed, predicted, 
ylim = axisRange, 
xlim = axisRange, 
ylab = 'Predicted', 
xlab = 'Observed', las=1) 

## correlation predicted x observed 
inform = as.character(round(cor(predicted, observed), digits = 2)) 
text(x=10,y=46, paste('Corr =', inform)) 
text(x=10,y=43, paste('RMSE =', postResample(predicted, observed)[1])) 
text(x=10,y=40, paste('RSquared =', postResample(predicted, observed)[2])) 

## Adding reference line 
abline(0, 1, col = "darkgrey", lty = 2)