5

相関を計算するときに R に外れ値を削除するように指示するにはどうすればよいですか? 散布図から潜在的な外れ値を特定し、この値がある場合とない場合の相関関係を比較しようとしています。これは入門統計コース用です。相関関係と外れ値を理解し始めるために、このデータをいじっているだけです。

私のデータは次のようになります。

"Australia" 35.2 31794.13
"Austria" 29.1 33699.6
"Canada" 32.6 33375.5
"CzechRepublic" 25.4 20538.5
"Denmark" 24.7 33972.62
...

など、26 行のデータの場合。1 番目と 2 番目の数値の相関関係を見つけようとしています。

はこの質問を読みましたが、ポイントのパーセンテージではなく、単一のポイントのみを削除しようとしています。これを行うRのコマンドはありますか?

4

5 に答える 5

6
于 2012-10-12T03:40:24.303 に答える
4

両方のベクトルに同じ条件式を適用すると、その「ポイント」を除外できます。

cor( DF[2][ DF[2] > 100 ],   # items in 2nd column excluded based on their values
   DF[3][ DF[2] > 100 ] )  # items in 3rd col excluded based on the 2nd col values
于 2012-10-12T03:51:40.463 に答える
2

すべてのデータをデータ フレームに配置することは理にかなっており、処理が容易になります。私は常に、データ フレームに余分な列 (この場合は B) を使用して外れ値を追跡したいと考えています。

df       <-  data.frame(A=c(1,2,3,4,5), B=c(T,T,T,F,T))

そして、優れた分析作業に入る前に、不要なデータを除外します。

myFilter <-  with(df, B==T)
df[myFilter, ]

このようにして、外れ値を見失うことがなく、必要に応じてそれらを管理できます。

編集:

上記の私の答えを改善して、条件を使用して外れ値を定義することもできます。

df  <-  data.frame(A=c(1,2,15,1,2))
df$B<-  with(df, A > 2)
subset(df, B == F)
于 2012-10-12T12:59:10.183 に答える
2

以下では、あなたがその単一の外れ値を視覚的に (つまり、グラフから) 識別したという仮定 (行間を読んだ) に基づいて作業しました。限られたデータ セットから、その値に基づいてそのポイントを特定するのはおそらく簡単です。より多くのデータ ポイントがある場合は、このようなものを使用できます。

tmp <- qqnorm(bi$bias.index)
qqline(bi$bias.index)
(X <- identify(tmp, , labels=rownames(bi)))
qqnorm(bi$bias.index[-X])
qqline(bi$bias.index[-X])

あなたのサンプルコードから作業できなかったため、自分のコードをコピーしただけであることに注意してください。こちらも事前チェック?identify

于 2012-10-12T10:05:20.517 に答える
1

ここでいくつかの素晴らしい有益な回答を得ていますが、それらはより複雑な質問への回答のようです. 私が間違っている場合は修正してください。ただし、手動で単一の観測を削除したいだけのようです。そのインデックスのマイナスを指定すると、それが削除されます。

データフレームが A で、列が V1 と V2 であると仮定します。

WithAus <- cor(A$V1,A$V2)
WithoutAus <- cor(A$V1[-1],a$V2[-1])

または、いくつかのインデックスを削除できます。1、5、20 としましょう

ToRemove <- c(-1,-5,-20)
WithAus <- cor(A$V1,A$V2)
WithoutAus <- cor(A$V1[ToRemove],a$V2[ToRemove])
于 2012-10-13T22:36:24.883 に答える