• ベストアンサー

エクセル等で、散布図にある2つの系の境界線は描けますか?

現在、エクセルのグラフ<散布図>上に、2つの性質の異なる系(A群、B群)のデータがプロットされ、表示されています。 これらの系の境界を求めたいのですが、やり方がどうにもわかりません。 ここで私が境界と言っているのは、グラフを何らかの数式で2分割して「これより上はAに属して、これより下はBに属す」というような境界です。 言葉だとなかなか説明しずらいのですが・・・作図の仕方、あるいは、境界線を求める分析の方法をご存知の方がいらっしゃったら、教えていただけないでしょうか。 グラフからは境界線は指数関数だと予測できます。もちろん実験のデータなので近似的なものになると思いますが・・・。 ちなみにA、B群の中でX、Yが同値なデータはありません。ばらばらです。 ●二つの系でそれぞれ近似曲線は描けますが、境界がだせません。。 ●判別分析を試みましたが、指数関数での判別関数の出し方がわかりませんでした。。

質問者が選んだベストアンサー

  • ベストアンサー
  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.4

ANo.3のコメントについてです。 > 判別関数というのは、元のグラフの座標軸と関係なく、y<0、0<yで二つの群を分けるための式なんですよね・・・ ここで仰る "y" というのは、(もとのグラフの座標軸に使っているx,yのうちのyのことではなくて)x,yを使って計算される別の値でしょ?だから区別して"z"と書く事にしましょう。すると、"z"の計算方法は z = xとyの式 という格好をしている筈です。で、z<0、0<zで二つの群を分けるのですから、境目は z = 0 つまり xとyの式 = 0 というのが、判別関数の式なんです。これをプロットすれば良い。

acrux7
質問者

お礼

できました! 無事に結果を導くことが出来ました! ご丁寧に教えてくださって本当にありがとうございます。 助かりました。

acrux7
質問者

補足

早速のお返事、ご親切にありがとうございます! 助かります(>_<。) そうです、zについての式を、y=aX+bのような形に直したかったのです。 やってみます! いよいよ出来そうな気がしてきました!

その他の回答 (3)

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.3

 指数関数に見えると仰るのが確かであれば、 データ(x[i],y[i]) (i=1,2,…)から、z[i] = log(y[i])を計算して、(x[i], z[i]) (i=1,2,…)の二次元散布図を描くと直線で分けられる形になるでしょう。もし、やってみたけどどうもこれでは直線で分けられるようにならない、ということであれば、 z[i] = log(y[i]+c) (cは適当な定数) なんてのを試してみる手もあります。(cをいろいろ変えてやってみる。)  首尾よく、直線で分けられそうな格好になったとしましょう。で、その線形判別関数を決めるには、ご質問にある通り判別分析(つまりパーセプトロンの構成)をやっても良いでしょう。けれど、なにしろ二次元なんですから、このグラフをプリントして紙の上でえいやっ!と直線を引く(あるいはExcelのグラフ上にグラフィックツールで直線をひく)のが一番簡単です。そしてグラフの目盛りを読み取って直線の方程式を作り、念のためにこの直線のグラフも、excel上で先のグラフと一緒にプロットしてみればいいでしょう。得られた直線の方程式   z = A x + B は   y = exp(A x + B) - c でxとyの式に直せます。  No.2さんの仰るSupport Vector Machine は、「散布図が毎日沢山発生して来て全部手で処理するのは大変で、しかもいつも指数関数っぽくなるとは限らない」というような事情であれば、検討に値すると思います。結構古い技法だけれど、直線で分けられないものも扱える、非常に高次元のデータまで扱える、「文字列の類似性」のような数値的でないものまで扱える、結構速く収束する。こりゃartificial neural networkよりいいんじゃないか、というので何年か前にリバイバルした、といったところです。フリーソフトや公開されているソースプログラムを手に入れるのは容易ですが、ガッツリ勉強しないと使いこなせないかも。

acrux7
質問者

補足

大変参考になるご意見をありがとうございます! 現在、何度か試して、(x,z)座標で両群が見た目直線で分けられるところまで来ました。 ただ、自分でグラフに直線を引くとなると少しずらせば何通りも引けそうで、しかも信頼性がなくなってしまうのではと思い、判別分析で出そうとしております。 ただ、私の知識不足か、判別関数をグラフの上に描ける形に落とせません、、、 判別係数、標準化判別係数、定数項は出るのですが・・・。 判別関数というのは、元のグラフの座標軸と関係なく、y<0、0<yで二つの群を分けるための式なんですよね・・・ 座標軸に乗せる式に出来たら、後は教えてくださった方法で、(x,y)に戻そうと思うのですが。

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2

どこまで本気でやるかにもよりますが、 こういう識別学習の問題は、最近は、Support Vector Machine(SVM)ていうのが、大流行しています。 http://www.google.com/search?q=Support+Vector+Machine もし、分割線が指数関数と予測できてるなら、(X,logY)にすれば分割線は直線になるので、SVNのアルゴリズムがそのまま使えるでしょう。

acrux7
質問者

お礼

ありがとうございました。 教えてただいて、いろいろ調べてみたのですが、今回は使えませんでした。 ですがこんなものがあるとは知らなかったので、勉強になりました! どうもありがとうございました。

  • inara
  • ベストアンサー率72% (293/404)
回答No.1

A群とB群はどちらも指数関数的な分布ですか(縦軸を対数表示にすると直線的なグラフになりますか)? そうであれば以下の方法を試してください。 A群とB群をそれぞれ指数関数で近似して係数(a1,b1,a2,b2)を求める(やり方はわかりますね?) A群:y=a1*e^(b1*x) B群:y=a2*e^(b2*x) 指数関数的にA群とB群のちょうど中間に来る関数は以下の式で表わされます。 y=√(a1*a2)*e^((b1+b2)*x/2) y=sqrt(a1*a2)*exp((b1+b2)*x/2) --- excelの式形式 この関数の数値列(xとyの組)をシート上に作ってプロットすれば、A群とB群のちょうど中間に来る指数関数が描けます。 こういうことでしょうか?

acrux7
質問者

補足

どうもありがとうございます! ただ、残念なことに、各系はそこまで指数状に並んでいるわけではないんです・・・。 バラバラにそれぞれのエリアに散布されていて、その境界が指数と予測されるに過ぎません。 データがそれぞれのエリアに分散している場合、境界を出す方法は無いでしょうか・・。 ただ、この先どうしてもできなかった場合、inara様のおっしゃるようにやって、各近似線の中間の線を擬似的な境界としたいと思います。丁寧に式まで載せてくださってありがとうございます。助かります!

関連するQ&A

  • エクセル 散布図が表示されない

    エクセル2003にて、ある表のデータの散布図と近似曲線(線形)10項目が作成されています。 その表にもう10項目のデータを追加したく、表を拡大して、グラフをコピーで二つにしました。 グラフの「元のデータ」で参照先などを変更しましたが、コピーしたグラフには、散布図がプロットされません。参照先などは、間違っていないのですが、どうしてプロットされないのか解りません。 教えて下さい。

  • エクセル、散布図でデータの一部のみの近似直線を書きたい

    (1、5)、(2,8)、(3、16)、(4、25)、(5、37)というグラフをかきました。 ここでグラフのプロットは全てのデータについて表示されたままで、(3、16)、(4、25)、(5、37)だけについての近似直線を描き、式やR2値を表す方法は無いものでしょうか。 (1、5)、(2,8)というデータを消せば目的の式は得られるのですが、(1、5)、(2,8)というプロットをグラフに残したままにしたいのです。 どうぞよい知恵をお貸し下さい。

  • エクセルの散布図について

    超入門者です。 2つのデータ(例えば、ある学校のあるクラスの期末テストにおける国語と社会の2科目の得点状況)の散らばりをグラフで見るのに、皆さん散布図を使うと思います。この際ですが、データの量が多すぎると(例えば、一つのクラスではなくセンター試験のように何万人もの受験者を母集団とすると)、国語と社会のように、おそらくは正の相関があるであろう科目同士の組み合わせでも、逆に、国語と数学のようにあまり相関はないであろう科目同士の組み合わせでも、結局散布図にしてしまうと、グラフ上ではプロットが全体に散らばってしまい(結局どちらも無相関であるかのような形状)、そのプロットの散らばり具合から視覚的に相関の有無を判別できないと思います(同じ得点の組み合わせの受験者が1人しかいなくても30人いても、プロットとしては1つの「点」になってしまうため)。 例えばのイメージですが、天気予報のアメダスなどでは、集中豪雨地帯は「赤」、本降り地帯は「青」、小雨地帯は「水色」と色で区別していますが、エクセルの散布図でも、この例のように何かしら上手いこと表現できないものでしょうか? でなかったら、1点刻みの得点を四捨五入で10点刻みのグループにある程度くくってから、ピボットテーブルを使って「グラフ」ではなく「表」であらわすぐらいでしょうか? よろしく教えてください。 (なお、このほかにも近似直線で相関関係をみることについても承知はしています。プロットの散らばり具合からビジュアルに確認できないものかなぁ、というのが今回の疑問です。)

  • エクセル 図

    エクセルで散布図のグラフを作りたいのですが、詳しい方どうぞ宜しくお願いします。 例えば1群(女性)データをx軸に身長Y軸に体重で、プロットをうつのはできるのですが、そこに1群(女性)、2群(男性)と色分けして同じ一つのグラフにプロットをうちたいのです。 どなたか・・・助けてください。

  • エクセルの散布図について

    教えて!gooの先生方、いつもお世話になっておりますm(_ _)m 以下のような図を作成したいと思っています。  xの値 yの値 A群 30 31 A群 45 47 A群 60 62 A群 90 96 B群 30 36 B群 45 57 B群 60 73 B群 90 95 C群 32 30 C群 42 45 C群 47 60 C群 66 90 D群 42 30 D群 51 45 D群 59 60 D群 76 90 そこで、散布図を作成し、点を一つずつ選択して、A群はA群で線になるように、B群はB群になるように、点を繋げてグラフを作りました。 それが添付ファイルのjpgです。 なんとなくそれっぽい形にはなりましたが、点の選択が非常に難しく、すぐに全体が選択されてしまい、端っこの点などが選択できません。(端っこの点の色と大きさを変更したいのですが) 他の点は、何度も繰り返しクリックしているうちに奇跡的に、たまたまその点が選択されるというやり方で、なんとか色と大きさを変更しました。 散布図の点を簡単に選択する方法はないもんでしょうか? あるいは他にもっと賢いやり方があったら教えてください。 よろしくお願いします。

  • エクセルについての質問

    エクセルでデータをグラフ化して、散布図で表示するとします。するといくつかのプロットが出てきます。そのプロットを右クリックすると近似曲線を表示するコマンドに移ります。そこで近似曲線を表示するとき、たとえば直線的なプロットの場合直線近似を選択するのは分かりますが、そのほか(累乗近似、指数近似等)は似たような近似なのでどれを選べばいいのか分からなくなってしまいます。みなさんはどのような基準で近似曲線を選んでいますか。そのあたりを詳しく教えていただければ幸いです。

  • Excelで指数近似ができない

    時間とともに液滴の振動が小さくなっていくような実験をし、 横軸に時間、縦軸に大きさの数値(中心からの距離の値です) を指定して散布図でグラフを書きました。 理想状態だと、振動は指数関数的に減衰していくハズなので、 指数関数で近似を行いました。 ほとんどのデータでは指数近似が行えたのですが、 ひとつだけ、指数近似が"選べない"データがありました。 確かにデータを見ると、その時のデータはあまり指数関数っぽくない 減衰をしてしまっているので、近似できなくても仕方がないのかなぁと 思いはしたのですが、なぜ出来ないのか、分かりますでしょうか?

  • 近似直線の傾きとSlope関数で求めた傾きについて

    近似直線の傾きとSlope関数で求めた傾きについて Excelでxとyについてのプロットデータに近似直線を追加しグラフにしました。そのときグラフ上にy=aX+bのような近似式を表示することができます。 ことのきの近似式の傾きaと、同じプロット点を使いSlope関数で求めたときの傾きとは別物なのでしょうか。同じになると思っていたのですが、同じ値にならないもので・・・。

  • 近似式。

    xとyからなるデータを複数とって、グラフ上にプロットすると、点が散在しながらも、なにがしかのまとまりがあって、そのデータを何かの曲線y=f(x)に近似したくなったとします。 しかし、何に近似していいかは分かりません。 何かの関数に近似したくても、何に近似するべきか分からないときは、どうしたらいいですか。 例えば、直線に近似しようと思っても2次式に近似しようと思っても、指数関数に近似しようと思っても、最小二乗法を使えば、それに近似されます。 このように、この種類の関数に近似させてやる!ということを決めていれば、それに近似されますが、近似させる関数の種類を限定したくないけど、何かの関数にしたいと思ったら、どうしますか。

  • Excelで近似曲線の数値をセルに反映させたい

    エクセルでグラフを作って近似曲線を引いたときの間の数値をセル上に反映させたいのですが、方法はないのでしょうか。 例えば、 A B 10 0 11 12 5 13 14  15 16 15 17 18 といったような表をAをX軸、BをY軸でグラフにすると、3点のプロットのみが表示されて、それに近似曲線を入れることができると思います。 この近似曲線のデータをセルの空白の部分にプロットしていきたいのですが、方法がわかりません。 よろしくお願いします。