私は、指定された範囲内の2つのデータリスト間で最良の相関(すなわち、最高r 2乗値)を見出そうとしています対応する「y」値を持つ)。基本的に私はデータの線形範囲を探しています。ここでデータの2つのベクトルの間に最良の相関関係を見つける
#Example data - actually have a much more complicated data set
x <- c(1,2,3,4,5,6,7,8,9)
y <- c(0.25,1.5,3,4,5,6,6.5,7,7.5)
data.range <- 0 #create a new variable which will contain the
r.sq <- 0
for (i in 1:length(x)) {
r.sq[i] <- round(cor(x[i:(i+5)], y[i:(i+5)],4)
data.range[i] <- paste(x[i], x[i+5], sep = " - ")
output <- data.frame(na.omit(cbind(data.range, r.sq)))
}
#Example read out
head(output)
data.range r.sq
1 - 6 0.9963
2 - 7 0.9906
3 - 8 0.9885
4 - 9 0.9839
、私は出力が私に関連した「Y」と相関している「x」のデータの範囲を含むデータフレーム、およびCORを与えるように設定している(これは私がこれまで持っているものです)値に対応する。今は5点(したがってi + 5)を使って 'x'と 'y'の相関関係を投影していますが、最終的に直線範囲が広がる可能性があるため「5」を定義する必要はありません6または8ポイント。だから私は 'x'と 'y'のすべての可能な相関を行い、対応するcor()値(r.sq)でデータ範囲(data.range)のリストを得たいと思う。
data.range r.sq
1 - 4 0.9999
1 - 5 0.9808
1 - 6 0.9805
1 - 7 etc...
1 - 8
1 - 9
2 - 5
2 - 6
2 - 7
2 - 8
etc....
アドバイスは歓迎です!
すでにループを使用しています。範囲内の2番目の値にネストループを使用しないのはなぜですか? – jwells
私はそれが解決策だと思っていますが、私はコードを動作させるように見えません。私はRにはかなり新しいです、あなたは私にそれがどのように見えるかの考えを与えてもらえますか? – Dorton