11

欠損値の 30% を含む 679 行 16 列の巨大なデータセットがあります。そこで、この欠損値をパッケージ impute の関数 impute.knn で代入することにしました。679 行 16 列のデータセットを取得しましたが、欠損値はありませんでした。

しかし、RMSE を使用して精度を確認したいので、次の 2 つのオプションを試しました。

  1. パッケージをロードして関数hydroGOFを適用するrmse
  2. sqrt(mean (obs-sim)^2), na.rm=TRUE)

2 つの状況で、エラーが発生しました。errors in sim .obs: non numeric argument to binary operator.

これは、元のデータ セットに値が含まれているために発生していNAます (一部の値が欠落しています)。

欠損値を削除した場合、RMSE はどのように計算できますか? それobsからsimと は異なるサイズになります。

4

2 に答える 2

18

単純にどう...

sqrt( sum( (df$model - df$measure)^2 , na.rm = TRUE ) / nrow(df) )

明らかに、データフレームが呼び出され、 Ndfを決定する必要があると仮定します(つまり、データが欠落している 2 つの行が含まれます。これらをN観測から除外しますか? はい、おそらく代わりに使用したいと思います) または、@ Joshuaをフォローするだけnrow(df)nrow(df)sum( !is.na(df$measure) )

sqrt( mean( (df$model-df$measure)^2 , na.rm = TRUE ) )
于 2013-07-17T14:56:15.137 に答える