
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
#5です。
なお、両者の差は、添付図に示すように殆ど差がありません。強引に外挿すると、2.503乗の方が僅かに上を行きます。
差が小さい理由は、もともとの打点が誤差なくきれいに並んでいるからです。誤差が大きいと、どこをなるべく通そうとするかで曲線が違ってきます。
赤・・・a=6.015865, b=2.502520
青・・・a=5.984542, b=2.49476

No.6
- 回答日時:
#5です。
訂正させて下さい。下記が正しいです。
#4では、
①変動係数一定仮定(これは#2さんの結果にほぼ一致)
②等分散仮定(これは#3さんの結果にほぼ一致)
③データ同化(a=1,b=1の初期値を与えて収束させた)→②に一致
を行っています。
ご質問者さんは①に近い結果を得られています。
No.5
- 回答日時:
#4です。
答だけ投稿して、説明を怠り、申し訳ありません。
このような、非線形の関数フィッティングには、主に3つの方法があります。ご質問者は1)の方法を用いられたのであり、間違いではありません。
1)一般線形モデル・・・変数変換して、直線関係に持ち込んで、最小二乗法で解く。
2)一般化線形モデル・・・リンク関数のXの部分に線形式をブチ込んで、最尤法で解く。
3)データ同化・・・理論式のパラメータを変更しながら曲線をデータに近づける(代表的なものがレーベンバーグ・マルカート法)。
1)の欠点は、最小二乗法で行われる回帰だということです。それは、x重心y重心を通り、等分散の仮定で近似線を作ることと同義です。
そのため、ロジスティック曲線のような、0と1に漸近し、そこでは誤差は0である、というような曲線を引くことが出来ません。
2)はそれを解決しています。
今回の累乗関数(べき乗関数ではありません)は、0漸近していますので、(x,y)=(0,0)を通り、そこでは誤差は0であり、xが大きくなるにつれて誤差も増えると思われます。このようなモデルを、ユーザーが与えることができます。
#4では、
①等分散仮定(これは#3さんの結果にほぼ一致)
②変動係数一定仮定(これは#2さんの結果にほぼ一致)
③データ同化(a=1,b=1の初期値を与えて収束させた)→②に一致
を行っています。
ご質問者さんの求めた結果は、一般線形モデルで行って、たまたま②に近い結果が出たのであり、誤差モデルを意図して近似を行ったわけではありません。ここが理論的に弱い部分です。
ここを解決するのが一般化線形モデルなのです。
No.4
- 回答日時:
Rのglm(一般化線形モデル)でやってみました。
もし、Rユーザーの方がいらっしゃったらご参考まで。
①このデータは0漸近するので、変動係数一定モデル(標準偏差がxに比例して大きくなる)で回帰すると、(family = Gamma)
a=5.984542, b=2.49476
②0漸近とか無視して、等分散仮定で回帰すると、(family = gaussian)
a=6.015865, b=2.502520
③ちなみにRのnlsで、原点を通る式で回帰すると、
a=6.01586, b=2.50252
②と③は等しくなります。
以下は実行したスクリプトと出力結果です。
> result <- glm(y ~ log(x), family = Gamma(link = log))
> summary(result)
Call:
glm(formula = y ~ log(x), family = Gamma(link = log))
Deviance Residuals:
Min 1Q Median 3Q Max
-0.075646 -0.005148 0.003347 0.010537 0.043496
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.78918 0.01542 116.0 3.41e-14 ***
log(x) 2.49476 0.01463 170.5 1.57e-15 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Gamma family taken to be 0.001035198)
Null deviance: 17.9195685 on 9 degrees of freedom
Residual deviance: 0.0085018 on 8 degrees of freedom
AIC: -40.069
Number of Fisher Scoring iterations: 3
> exp(result$coefficients[1])
(Intercept)
5.984542
> result <- glm(y ~ log(x), family = gaussian(link = log))
> summary(result)
Call:
glm(formula = y ~ log(x), family = gaussian(link = log))
Deviance Residuals:
Min 1Q Median 3Q Max
-0.031746 -0.010502 -0.002389 0.003920 0.034605
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.794400 0.002898 619.2 < 2e-16 ***
log(x) 2.502520 0.014168 176.6 1.18e-15 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 0.0004324484)
Null deviance: 38.6226900 on 9 degrees of freedom
Residual deviance: 0.0034596 on 8 degrees of freedom
AIC: -45.313
Number of Fisher Scoring iterations: 3
> exp(result$coefficients[1])
(Intercept)
6.015865
> result <- nls(y ~ a * x^b + 0, data = X, start = list(a = 1, b = 1))
> summary(result)
Formula: y ~ a * x^b + 0
Parameters:
Estimate Std. Error t value Pr(>|t|)
a 6.01586 0.01743 345.1 < 2e-16 ***
b 2.50252 0.01417 176.6 1.18e-15 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.0208 on 8 degrees of freedom
Number of iterations to convergence: 6
Achieved convergence tolerance: 4.443e-08
No.3
- 回答日時:
ln(y[i]) = ln(a) + b ln(x[i]) + ε[i]
というモデルで
E = Σ(ε[i]^2)
を最小化したら
a = 5.987872013, b = 2.49578409, RMS = 0.022964813
となった。ここでRMSはroot mean square、すなわち √(E/10)のことです。
よく合ってると思いますが、さらにもうちょっとだけ精度を上げられる。というのは本来なら
y[i] = a x[i]^b + δ[i]
というモデルで
F = Σ(δ[i]^2)
を最小化したいところなのに、対数を取ってfittingしたために、yが大きいほど誤差も大きい、という偏りが生じてしまっている。そこで、
y[i] = (a x[i]^b) (1 + δ[i]/(a x[i]^b))
の対数を取って
ln(y[i]) = ln(a) + bln(x[i]) + ln(1 + δ[i]/(a x[i]^b))
≒ ln(a) + bln(x[i]) + δ[i]/(a x[i]^b)
≒ ln(a) + bln(x[i]) + δ[i]/y[i]
だから、
y[i] ln(y[i]) ≒ ln(a) y[i] + b y[i] ln(x[i]) + δ[i]
である。そこで
y[i] ln(y[i]) = ln(a) y[i] + b y[i] ln(x[i]) + η[i]
というモデルで
G = Σ(η[i]^2)
を最小化するんです。つまりy[i]で重み付けしてfittingする。その結果は
a = 6.022866171, b = 2.505366152, RMS = 0.018365649
(以上の計算はExcelです。)
No.2
- 回答日時:
> ax^b で求まったaの値は5.977 またbの値は2.494でした。
そんなに変な値?
代入すると、もとのyに結構合わない?
まあ、こちらで計算したら、a=5.988、b=2.496になりましたが。
計算過程をお教えいただけますか?
No.1
- 回答日時:
> 正確な値とは言えないような値
a、bはいくつになったの?どこが間違っているのかと言われても
計算過程が分からないから、そこまではできないとしても、
a、bがいくつになったか次第では、何が間違った要因かわかるかも。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
みんなに挑戦してほしい「色彩検定」
これまで多くの方々が受検したが「色彩検定」。その目的や活用法は人それぞれ。今回は、色彩検定に影響を受けた男女3名にインタビュー。
-
指数関数 Y=Aexp(bx) と冪関数 Y=Ax^B の近似直線がどんな式になるのか求める問題を今
統計学
-
どなたか偏差値の計算をお願いいたします。 得点(500点満点) 392 平均点 280 受検者数 2
統計学
-
表裏が1/2ずつの確率で出る硬貨を2人が交互に投げ、初めて表が2回連続で出たときに2回目の表を出した
統計学
-
4
20%というけど
数学
-
5
拙劣な、あまりにも拙劣な、どうしようもない回答が並んでいて、目にした途端、気を失いそうになりました。
数学
-
6
分散の定義について
統計学
-
7
タイミングを予測
数学
-
8
確率で分からない問題があるので解説お願いします 投げられたコインの表裏を検知するロボットAとロボット
統計学
-
9
直前の問題の回答は間違いだと思いますが、皆さんは如何お考えですか。
統計学
-
10
テキストの解答が間違っているのか、私が間違っているのか
統計学
-
11
確立統計の問題がよくわかりません。 教えていただけないでしょうか? [問題] 定員150名のある体育
統計学
-
12
国立の工学部機械工学科を中退しました。どうしても物理が出来なくて諦めました。 そしてこれからなんです
システム科学
-
13
何度も繰り返して試行回数を増やせないような場面では低確率(リスク、不確実性)とどのように向き合うべき
統計学
-
14
あんまり意味がわからないです。何をしてるのかもわかりません。 y = C x^n に直交する曲線族を
数学
-
15
統計問題
統計学
-
16
平均値出すより最頻値の方が統計上意味があると思いませんか?
統計学
-
17
t検定の母集団の考え方 1組と2組の数学テスト平均点の比較について
統計学
-
18
コロナ感染率の検証をしたいです。本日2022009水曜日で、陽性者数3361958人です。これっての
統計学
-
19
統計学に詳しい人がいらっしゃいましたら教えてください。 統計学の母集団の大小について
統計学
-
20
プラスマイナスとは?
数学
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
原爆などで負った酷いやけどの...
-
5
中出しをするとお腹が痛い・・・。
-
6
今朝起きたら、またアザのよう...
-
7
7歳の子供です。 4日程前から顔...
-
8
検便についてです。 便は取れた...
-
9
これはメラノーマの可能性があ...
-
10
胃カメラで腫瘍が見つかりまし...
-
11
舌の裏の痛みのないプツプツの...
-
12
左背中側の赤丸したあたりが痛...
-
13
これって喉仏ですか? 私は女性...
-
14
ファイル名以外でも先頭を数字...
-
15
子宮癌検査後、生理が早まる事...
-
16
口の中に黒い血の塊
-
17
1ヶ月ぐらい前から頬に赤いシ...
-
18
喉の奥の壁にある腫瘍は何なん...
-
19
病院での、診察までの待ち時間...
-
20
新型コロナウイルスの濃厚接触...
おすすめ情報
公式facebook
公式twitter
ax^b で求まったaの値は5.977 またbの値は2.494でした。