大滝本4.21最小二乗法を用いて回帰式を求めるについて

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
文系高校生さん  
(No.1)
文系です。問題についている解説を読んでもよくわからなかったので、そもそも最小二乗法がわからない私にもわかるように、簡単に教えてもらえませんか?

手続regressionEquationが引数として受け取る、実数型の配列xDataと配列yDataの要素数は観測点数と同じであり、配列xDataには観測値xiが、配列yDataには観測値xyが格納されている。

[プログラム]
〇regressionEquation(実数型の配列: xdata, //観測値xiが格納された配列

実数型の配列: ydata, //観測値yiが格納された配列

整数型: n)      //観測点数
 実数型: sx ← 0, sy ← 0, sxx ← 0, sxy ← 0,
 実数型: mx, my, a, b
 整数型: i
 for(i を 1 から n まで 1 ずつ増やす)
  sx ← sx + xData[i]
  sy ← sy + yData[i]
 endfor
 mx ← sx ÷ n
 my ← sy ÷ n
 for(i を 1 から n まで 1 ずつ増やす)
  sxx ← sxx + (xData[i] - mx) × (xData[i] - mx)
  sxy ← sxy +【  a  】
 endfor
 a ←【  b  】
 b ← my - a × mx
 aの値、及びbの値 を出力

解答は、
【a】が (xData[i] - mx) × (yData[i] - my)
【b】が sxy ÷ sxx
です。
2025.07.13 18:19
電タックさん 
FE ブロンズマイスター
(No.2)
私も数学的なプログラミングは極めて苦手で求められているコメントではないことを承知の上で記載します。

明日にでも数学の先生に最小二乗法とはどういうものなんですか?と聞いてください。
せっかく学生という立場で使えるリソースが目の前にあるのに使わないのはただ単に損です。

その際プログラムなんかは見せる必要はありません。
あくまで最小二乗法とはそもそも何なのか?xy座標の数点から求めているようですが何がしたいのか?これが求まることで何がわかるのか?
等が聞ければいいです。
ここがわからない段階で歯抜けのプログラムをいくら眺めても答えなんて絶対に見つかりません。
2025.07.13 21:14
文系高校生さん  
(No.3)
電タックさん
ありがとうございました。
今日学校に行ったら聞いてみますね。
2025.07.14 04:45
jjon-comさん 
FE プラチナマイスター
(No.4)
最小二乗法でどんな結果が得られるかを知りたいなら
「最小二乗法 Excel グラフ 残差」でGoogle画像検索するとイメージが分かります。

どのようなプログラムでそれを実現できるかを知りたいならChatGPTに次のように問いかけてみてください。
Luaは配列の添字を1から始めるので、そのコードを情報処理技術者試験の擬似言語に対応させやすいです。


Luaプログラミング言語で「最小二乗法」のアルゴリズムを実装したサンプルコードを提示してください。
また、そのコードが具体的にどのような処理をしているのか、一つひとつわかりやすく説明してください。
2025.07.14 08:42
文系高校生さん  
(No.5)
jjon-comさん
AIを活用するアイデアは思いつきませんでした!
ありがとうございます。参考にしてみますね。
2025.07.14 14:48

返信投稿用フォーム

スパム防止のためにスレッド作成日から40日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop