タイトル通り、スピアマンの順位相関係数の関数化ができずに困っています。
統計ソフトのRを使っています。本来ならcor(a,b)で0.02857143とでます。これを関数化せよ、ということです。
自分で以下のようにやってみましたが上手くいきません。どこが違って、どのようにしたらいいか、アドバイスをお願いします。
> a <- c(3,2,1,5,4,6)
> b <- c(2,6,3,5,1,4)
> n <- length(a)
> test <- function(a,b,n){ 1-(6*sum(a-b)^2)/
(n*(n+1)*(n-1))}
No.1
- 回答日時:
sum(a-b)^2 とすると sum(a-b) の方が先に計算されて
sum(a-b)^2 = (sum(a-b))^2 = 0
になるようです。(a-b)^2 を先に計算するために
sum((a-b)^2)
としたらうまく行きました。なお、下記URLにはRのスピアマン相関係数の計算には欠測値の処理に問題があること、およびその対策があります。
参考URL:http://aoki2.si.gunma-u.ac.jp/R/spearman.html
この回答への補足
ありがとうございます^^
上の書き方で上手く動いたんですか?私は上のように書いて、> test とやっても結果が表示されずにtest<-function・・・ が出てしまいます。表示の仕方が悪いのでしょうか・・?
No.2ベストアンサー
- 回答日時:
> test
とだけ入力するとtestの定義を表示することになります。testを実行するためには関数に渡すオブジェクトを指定する必要があります。下に実際にRで実行した結果を示します。
> x <- c(3,2,1,5,4,6)
> y <- c(2,6,3,5,1,4)
> k <- length(x)
> test <- function(a,b,n) {1-6*sum((a-b)^2)/(n*(n+1)*(n-1))}
> test(x,y,k)
[1] 0.02857143
function(a,b,n)でのa,b,nは関数を定義するための変数なので、関数を実行する時にa,b,nに代入されるオブジェクトを指定します。
オブジェクトを指定しないとだめなんですね!勉強になりました。>test(a,b,n)としたところ、きちんと実行されました。ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 ダミー変数での相関係数の算出にやり方(疫学の分析手法について) 14 2023/03/17 11:46
- Excel(エクセル) RANK.EQとCOUNTIFSの組み合わせで同ポイントの場合、違う条件を加えて順位を付けたい。 1 2022/08/30 19:49
- PHP 【スプレッドシート】順位のつけ方 2 2022/08/17 13:27
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Excel(エクセル) Excel2016 行間を詰めたい&同じカテゴリなら上位2つだけを表示したい 5 2022/06/03 12:19
- 経済 日本の世界競争力が34位ですね。 ヨーロッパが出した統計なのでヨーロッパが有利にされてるとは思うんで 3 2022/07/25 10:43
- 統計学 直線の傾き(回帰係数)から相関係数を計算できるのでしょうか? 2 2022/09/16 19:28
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Google Drive スプレッドシートの時間(分、秒)の足し算SUM関数がうまくいきません。 3 2022/09/08 16:39
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
30パーセントオフで371円だった...
-
eのマイナス無限大乗
-
公共工事の現場管理費率(%)...
-
10進法で時間の計算で30分が0.5...
-
分数の計算で分子が0になったら...
-
(x^2-x+1)^10の展開式におけるx...
-
プール計算って何ですか?
-
一個当たり15秒の製品を1時間で...
-
普及率の計算方法について
-
楕円の円周の長さの計算の仕方...
-
映画を1.3倍速で見た時の時間計...
-
「割る」と「割りかえす」の違い
-
2割負担の計算。
-
積分のエクセル計算式を教えて...
-
1/6n(n+1)(2n+1)+1/2n(n+1) の...
-
小学校の算数で登場する□の読み方
-
中学生の数学を習う順番に並べ...
-
0.8=1あるいは0.8進法
-
2の12乗、32乗・・・とい...
-
1Mとか1Gのデータ量は新聞...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
30パーセントオフで371円だった...
-
公共工事の現場管理費率(%)...
-
「割る」と「割りかえす」の違い
-
eのマイナス無限大乗
-
中学生の数学を習う順番に並べ...
-
10進法で時間の計算で30分が0.5...
-
楕円の円周の長さの計算の仕方...
-
計算手順について
-
袋のサイズから容量を計算する方法
-
面積から辺の長さを出す計算式
-
2割負担の計算。
-
プール計算って何ですか?
-
一個当たり15秒の製品を1時間で...
-
金利の計算方法を教えてくださ...
-
クリストッフェル記号
-
分数の計算で分子が0になったら...
-
ラプラス変換に関して
-
半径の計算方法を教えてください。
-
映画を1.3倍速で見た時の時間計...
-
積分のエクセル計算式を教えて...
おすすめ情報