質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

解決済

[R言語]ポアソン分布乱数を使った2変数サンプル十万個(サイズ9)の相関係数

tamtam_kaz
tttadbjh

総合スコア1

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

1回答

1グッド

0クリップ

481閲覧

投稿2022/11/30 08:52

編集2022/11/30 08:59

前提

R言語での計算です。

実現したいこと

ポアソン分布乱数を使って、xとyという2つの変数のサンプルサイズ9のサンプルを十万個生成し、サンプルの相関係数の平均と分散を計算したい。

発生している問題・エラーメッセージ

警告メッセージ: cor(x1,y1)で、標準偏差が0です。

該当のソースコード

R

1kN1<-(9) #サンプルサイズ 2kNs<-(100000) #サンプル数 3lamda<-(2) #ポアソン分布パラメータ 4cors<-numeric(kNs) 5for(i in seq(kNs)){ 6+x1<-rpois(kN1,lamda) 7+y1<-rpois(kN1,lamda) 8+cors[i]<-cor(x1,y1)} 9mean(cors) #相関係数の平均 10sd(cors) #相関係数の分散

試したこと

サンプル数(kNs)が1000,10000,50000のケースは計算が可能であった。

補足情報(FW/ツールのバージョンなど)

オープンソースのフリーソフトウェアR

tttadbjh👍を押しています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

NamerikawaR

2022/12/01 10:47 編集

単純に、xとy両方にc(1,1,1,1,1)みたいなのがたまたま出た際にエラーが出てるように思います。サンプルサイズが大きいと、全部同じ数値というのはなかなか起こらないので通るのでは。 ♯サンプルサイズとサンプル数を間違えてたので修正しました
tamtam_kaz

2022/12/01 05:55

一様分布乱数では十万のサンプル数で相関係数が計算できたことから、ポアソン分布によって生成される乱数に何か特徴があるのではないかと思った。

回答1

1

ベストアンサー

サンプル数とサンプルサイズを混同したコメントを残して申し訳ないです。
options(warn = 2) を設定するとそこで止まるので、変数の中身を見ることができます。
この場合、y1が全部1なので、標準偏差がゼロとなり相関係数が計算できないとなります。

一様分布であればほぼ確実に同じ値にはならないため動きます。
サンプルサイズを大きくしても、すべて同じ数値になりにくくなるため、計算できるようになると思います。
サンプル数が小さい場合は、たまたま全部同じ数値にならなかったというだけで、何回か動かせばwarningは出ると思います。
サンプルコードを書くので、参考にしてください。

R

1set.seed(0) 2options(warn = 2) 3 4kN1 <- (9) 5kNs <- (100000) 6lamda <- (2) 7cors <- numeric(kNs) 8for(i in seq(kNs)){ 9 x1 <- rpois(kN1,lamda) 10 y1 <- rpois(kN1,lamda) 11 cors[i] <- cor(x1,y1)} 12 13x1 14y1 # 1 1 1 1 1 1 1 1 1 が返ってくる

投稿2022/12/01 10:46

NamerikawaR

総合スコア58

tttadbjh😄を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

tamtam_kaz

2022/12/02 03:52

納得しました。 ありがとうございました。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。