「自分の手で」データを感じるのは長い間機能しませんでしたが、空き時間があり、Rで武装して出発しました。
d = read.csv("data.csv", sep = ";") # names(d) <- c("time","oil", "gold", "iron", "logs", "maize", "beef", "chicken", "gas", "liquid_gas", "tea", "tobacco", "wheat", "sugar", "soy", "silver", "rice", "platinum", "cotton", "copper", "coffee", "coal", "aluminum") # # () - . # R , : gm_mean = function(x, na.rm=TRUE){ exp(sum(log(x[x > 0]), na.rm=na.rm) / length(x)) } d.gm = apply(d[,2:23], 2, gm_mean) # dt = d[,2:23]/d.gm # apply(dt, 2, shapiro.test) # cor.m = cor(dt, method = "spearman") #
重要な点は、すべての商品の正規化された価格の分布が通常とは異なることです(Shapiro-Wilk基準のp値は0.001を大きく下回っています)。これは、比較的「良い」ピアソン相関係数を使用して相関を検索できないという事実に容赦なくつながります。 幸いなことに、ノンパラメトリックな対応物-スピアマンのテストがあります。
したがって、相関行列が取得されます。 彼女を見てください:
さて、相関関係はあるべき場所を持っていますが、ロー値はすでに小さくなっています。 最高レベルを見つけて、その重要性を確認します。
out <- data.frame(X1 = rownames(cor.m)[-1], X2 = head(colnames(cor.m), -1), Value = cor.m[row(cor.m) == col(cor.m) + 1]) for(x in 1:length(out$X1)) { print( cor.test( dt[as.character(out[x,1])][[1]], dt[as.character(out[x,2])][[1]], method = "sp")$p.value) }
スペースを節約するために、検出されたすべての相関関係について、p値は0.0001未満であり、これは統計的に有意な現象を示しています。 相関行列は次のとおりです。
1ゴールドオイル0.2451402
2鉄金0.2503873
3丸太鉄0.2446200
4トウモロコシログ0.2547667
5牛肉トウモロコシ0.2398418
6チキンビーフ0.2385301
7ガスチキン0.2481030
8液体ガスガス0.2544752
9茶液ガス0.2367907
10たばこ茶0.2416664
11小麦たばこ0.2553935
12砂糖小麦0.2505641
13大豆糖0.2440920
14銀大豆0.2589974
15米銀0.2403048
16プラチナ米0.2418105
17コットンプラチナ0.2343923
18銅綿0.2498545
19コーヒー銅0.2321891
20石炭コーヒー0.2482226
21アルミニウム石炭0.2423581
ご覧のとおり、得られたrhoは0.3を超えていません。これは、結合強度が弱いことを示しています(チェドックスケールによる)。 実際、このようなデータを操作することは可能ですが、1つの製品の価格変動が相関関係の「パートナー」の価格に10%を超える影響を与えないことを常に理解する必要があります。
他の奇妙な相関関係の分析には同様の推論の線を使用すべきであることに注意したい。 数字は私たちと悪戯をすることができます。
数字で遊ぶ理由を教えてくれたjatxに感謝します!