グラフを作成しようと思っています。


持っている数字は(X, Y)7つで、(3.5, 27), (6.5, 170), (10, 620), (12.5, 1000), (15, 1780), (17.5, 2520), (20, 3200)となります。
これらの数字から、Xの値が2.5~20(0.5単位)までのグラフを作成しようとしております。
Excelで試してみた所、「多項式近似(次数2)」が非常に理想的な線になりました。

そこで、今回Excelで出てきたのと同等な線をプログラムで作成したいと思っており、計算方法を調べています。計算式など色々と見つけましたが、知識が足らず良くわかりません。

計算式とともに、実際に上の数字を使って、計算したサンプルをどなたかお願いできないでしょうか。

回答の条件
  • 1人5回まで
  • 登録:2008/08/05 13:52:51
  • 終了:2008/08/05 23:51:03

ベストアンサー

id:Mook No.3

Mook回答回数1312ベストアンサー獲得回数3912008/08/05 19:43:51

ポイント60pt

下記のサイトで2次の近似式に関する計算手順の詳細が紹介されており、参考になるかと思います。

http://aoki2.si.gunma-u.ac.jp/lecture/mb-arc/arc038/00020.html


上記の最後の部分で提示されている計算手順を今回のデータに当てはめた結果が下記のとおりです。

[f:id:Mook:20080805192527j:image]


一度ご自身で、数値を当てはめながら計算を確かめてみてはどうでしょうか。

プログラムとしてどうするかは、その計算の流れをコードに置き換えればよいでしょう。


コードの提示も可能ですが((他の方が回答されるかもしれませんが)、自分で作成したものは

ご自身の力として身につきますので、一度トライされることをお勧めします。

id:Phynel

理想的なご回答ありがとうございます。

おかげ様で求めていたグラフが作成できました

1つ質問ですが、参考にされているサイトでは、(1)^2, (2)^2の値の合計を利用されていた様ですが、

今回は平均値で出されている様です。

理由まではわからなかったのですが、後学のために、ご教示頂けると助かります

2008/08/05 23:49:24

その他の回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/08/05 15:30:15

ポイント20pt

Excelグラフの近似曲線(多項式)は、回帰分析によって多項式の係数を決定しています。

まずは、Excelの回帰分析ツールを使って、係数が決まる過程を確認してください。


実際に係数を求めるには、最小二乗法を使うのが手っ取り早いでしょう。

線形最小二乗法について勉強するシステム」で丁寧に説明しています。

FORTRANを読むことができれば、「Fortran―最小二乗法」のソースが読みやすいでしょう。


参考サイト

id:Phynel

ありがとうございます。

しかしながら、私には線系近似しかできませんでした…

2008/08/05 23:43:26
id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692008/08/05 18:54:46

ポイント20pt

Excelで近似曲線を追加するときに、[オプションのグラフに数式を表示する]と

[グラフにR-2乗値を表示する]にチェックをいれるとエクセルが求めた近似曲線の数式がわかります。

R-2乗値は実際の値にどれだけ近いかを表し1に近いほど正確になります。


エクセルが求めた多項式近似の数式は以下です。

次数2

y = 10.188x2 - 40.976x + 20.841 

R2 = 0.9963


次数3

y = -0.3785x3 + 23.595x2 - 179.02x + 400.24

R2 = 0.9977


次数4

y = -0.08594 + 3.6753x3 - 41.991x2 + 239.2x - 445.11

R2 = 0.999


次数5

y = -0.0092x5 + 0.4581x4 - 8.3496x3 + 80.543x2 - 324.78x + 469.59

R2 = 0.9992


実際に数式で求められる値は以下です。

X Y 次数2 次数3 次数4 次数5
3.5 27 2.2 46.5 22.4 25.4
6.5 170 184.9 129.6 191.6 179.4
10 620 629.9 591.0 564.1 587.5
12.5 1000 1100.5 1110.0 1064.9 1063.3
15 1780 1698.5 1746.4 1750.4 1745.2
17.5 2520 2423.8 2464.8 2522.0 2568.3
20 3200 3276.5 3229.8 3200.9 3250.4
id:Phynel

ありがとうございます。

ですが、その次数の求め方が、良くわからないままになってしまいました

2008/08/05 23:45:12
id:Mook No.3

Mook回答回数1312ベストアンサー獲得回数3912008/08/05 19:43:51ここでベストアンサー

ポイント60pt

下記のサイトで2次の近似式に関する計算手順の詳細が紹介されており、参考になるかと思います。

http://aoki2.si.gunma-u.ac.jp/lecture/mb-arc/arc038/00020.html


上記の最後の部分で提示されている計算手順を今回のデータに当てはめた結果が下記のとおりです。

[f:id:Mook:20080805192527j:image]


一度ご自身で、数値を当てはめながら計算を確かめてみてはどうでしょうか。

プログラムとしてどうするかは、その計算の流れをコードに置き換えればよいでしょう。


コードの提示も可能ですが((他の方が回答されるかもしれませんが)、自分で作成したものは

ご自身の力として身につきますので、一度トライされることをお勧めします。

id:Phynel

理想的なご回答ありがとうございます。

おかげ様で求めていたグラフが作成できました

1つ質問ですが、参考にされているサイトでは、(1)^2, (2)^2の値の合計を利用されていた様ですが、

今回は平均値で出されている様です。

理由まではわからなかったのですが、後学のために、ご教示頂けると助かります

2008/08/05 23:49:24
  • id:Mook
    平均を使ったために混乱させてしまったようで、すみません。

    全体の計算を考えればわかると思いますが、合計と平均のどちらで考えても、
    結果として計算結果は同じになります。

    平均は合計の(1/n)ですが、合計で計算した逆行列を A^-1 とすると、
    平均で計算した逆行列は nA^-1 です。
    これに共変動ベクトルの平均(1/n)をかけるので、結果的にどちらも正しい
    偏回帰係数ベクトルとなります。

    EXCELでの計算は
    http://aoki2.si.gunma-u.ac.jp/lecture/Regression/mreg/mreg1.html
    での計算を表に展開したものですので、一度この内容をトレースすると
    理解ができるかと思います。
  • id:Phynel
    ご丁寧な説明ありがとうございます。

    はやり、まだまだ理解が足りていない様なので、
    さっそく、トレースしようと思います。

    ご教示、ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません