プロが教えるわが家の防犯対策術!

実験データを,
Y = A * TAN( 2 * PI() * X / B )
Y・・・目的変数
X・・・説明変数
A, B ・・・係数
TAN() ・・・タンジェント
PI() ・・・円周率

というモデルの回帰式に当てはめたいと考えているのですが,
A,Bの値をどのように求めればいいのかが,よく分かりません.

対数線形回帰分析のようにこのモデルを,
Y = A * X + B
といった線形モデルに変形することは可能なのでしょうか.
不可能な場合は,どのようにしてA,Bを求めればいいのでしょうか.
回帰分析に詳しい方,よろしくお願いします.

このQ&Aに関連する最新のQ&A

A 回答 (4件)

No.2 です。


>得られたAとBをそのまま元の式
>y = A tan(Bx)
>に代入しても,欲しいような式は得られませんでした.

a,b から A,B に変換すると、A^2 = a/b, B^2 = ab なので, 線型回帰からab<0 の答えが得られると、実数のA,Bではなくなります。こういうケースでしょうか?
もしそうならば、aかbが統計変動かdy/dxの作り方がよくないために0付近で負の値が出てしまったと思われます。
また、dy/dxの作り方が良くないと最適値とはかけ離れたa, bが求められてしまうことがあります。
まず、dy/dx(=Y) 対 y^2(=X) のグラフはどのようになったでしょうか?きれいに直線状になったでしょうか?それともがたがたでしょうか?
もとのデータにもよりますが、がたがたなようであればdy/dxの作り方を工夫する必要があるでしょう。また、もとのデータで曲線から大きく外れたようなデータ点は除外しないと非線型最小二乗法でもこの方法でも解は不安定になります。そういうデータ点をdy/dxを作るときに含めると、dy/dxデータとして大きく外れた点を与えてしまい、a, b の解を大きく変えてしまいます。
どのように作ったか補足してくださればアドバイスできるかもしれません。

もしもとのデータがそもそも Atan(BX) のように見えにくいほど変動の大きいデータなのであればこの方法はあまり良くないかもしれません。その判定はやはりdy/dx対y^2がきれいな直線状になるかどうかです。
    • good
    • 0

データを見てないので、明確な助言はできませんが、tanを当てはめるときの難しい点として、


1.周期関数であること。
2.π/2, 3π/2, 5π/2,...に特異点をもつこと
があります。今の場合、周期性は関係ないと想像しますが、π/2における特異性が問題です。このとき、全データがx<B/4でなければならず、また、xがB/4の付近では、tanの値はxの変化に極めて鋭敏なので、特異点の付近の値だけでほぼ係数A,Bが決まってしまい、そのために他の点ではあまり当てはまらなくなる、ということが起ります。
そういう場合の処理のしかたは、特異点の付近のデータを取り除いて(あるいは適当なウェイトをかけて)、最小2乗法をx<B/4の条件のもとで適用して、係数を決定することが考えられます。数学的には、x,yを適当に変数変換して、x<B/4の条件の下での最小2乗解を求めることになるのですが、どうすればうまくいくか、データとにらめっこして、いろいろ試すしかないでしょう。データを変数変換しただけで、A,Bの値が変わってきます。データのフィッティングというのは、結局のところ主観によりますから。
    • good
    • 0

ご参考までに。


y = A tan(Bx)
は微分方程式、
dy/dx = a + by^2、 a=AB、b=B/A
を満たします。
データから何らかの方法で dy/dx を求め、それをデータとして Y とおき、y^2 = X とおけば、
Y = a + bX
の線型回帰式になります。

元データからそれらの (X、Y) のあらたなデータの組を作る方法はいろいろありますが、もし元データが多く曲線にそって密集しているなら適当にxを区分に分割し区分ごとにyの平均値を取り、それから区分ごとにdy/dx を計算するのが簡単です。元データが散逸的で、曲線補間できるようなものであれば、単に (y[n]-y[n-1])/(x[n]-x[n-1]) のようにして dy/dx[n]を計算してもいいでしょう。多項式補間を行ってそれを微分してdy/dxを求める方法もあります。

このような方法による結果は、またもとのtanの式を用いて直接に非線型最小二乗法などを用いるときの良い初期値を与えます。非線形最小二乗法にはニュートン法やLevenberg-Marquardt法が用いられますが、パラメータの良い初期値がわかっている場合はニュートン法でも精度良く求める事ができます。Levenberg-Marquardt法は非線形効果を扱うのですが、ニュートン法にあるパラメータを導入しただけの非常にシンプルな方法で、アルゴリズムはニュートン法そのものであり、初期値が解より遠い場合でも威力を発揮します。

この回答への補足

ご回答ありがとうございます.

Y = a + bX
の線形回帰式から a, b, A, Bを導出することができました.
ただ,得られたAとBをそのまま元の式
y = A tan(Bx)
に代入しても,欲しいような式は得られませんでした.
(何度も確認したので計算ミスではないと思うのですが・・・)

ここで求めた,AとBは解そのものではなく
非線形最小二乗型等で分析を行うときの初期値に用いるために求めたものなのでしょうか.
よろしくお願いします.

補足日時:2009/02/01 19:37
    • good
    • 0

「当てはめたい」が、どのように当てはめたいという希望なのか


によって話は異なる。 よくあるのは、「最小二乗法」という奴。
実験データ (X,Y) = (x_1,y_1), (x_2,y_2), (x_3,y_3), … に対して、
誤差二乗和 E = Σ{ y_k - A tan(2π x_k / B) }^2 が最小になる
ような A, B を求めて満足しようという方法。 どのような条件をみたす
A, B に満足するかは、主観的な問題なので、計算を始める前によく考えて
決めておく必要がある。

最小二乗法で行こう!ということであれば、E の極小値を与える A, B
を求めればよい。それは、非線形連立方程式
0 = ∂E/∂A = Σ{ y_k - A tan(2π x_k C) } tan(2π x_k C),
0 = ∂E/∂C = Σ{ y_k - A tan(2π x_k C) } (A 2π x_k) / cos^2 (2π x_k C),
C = 1/B.
の解である。

この式から A を消去して、C の方程式
Σ{ y_k tan(2π x_k C) }・Σ{ x_k tan(2π x_k C) / cos^2 (2π x_k C) }
= Σ{ tan^2 (2π x_k C) }・Σ{ (x_k・y_k) / cos^2 (2π x_k C) }
が得られるが、こんなものは解きようもない。
厳密解は諦めて、近似解を求めることを考えよう。
左辺 - 右辺 = f(C) と置き、f(C) = 0 となる C の近似解を求める。

ニュートン法が簡明だろう。
0 ≒ f(C_{n+1}) ≒ f(C_n) + f ' (C_n)・(C_{n+1} - C_n) という近似から、
漸化式 C_{n+1} = C_n - f(C_n) / f ' (C_n) によって近似解を逐次改良してゆく
方法である。 f ' の式を展開するだけでタメイキが出るが…
    • good
    • 0
この回答へのお礼

やはり,これを解かないとだめなんですかね・・・
参考にさせていただきます.
ありがとうございました.

お礼日時:2009/02/01 21:20

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q波長(nm)をエネルギー(ev)に変換する式は?

波長(nm)をエネルギー(ev)に変換する式を知っていたら是非とも教えて欲しいのですが。
どうぞよろしくお願いいたします。

Aベストアンサー

No1 の回答の式より
 E = hc/λ[J]
   = hc/eλ[eV]
となります。
波長が nm 単位なら E = hc×10^9/eλ です。
あとは、
 h = 6.626*10^-34[J・s]
 e = 1.602*10^-19[C]
 c = 2.998*10^8[m/s]
などの値より、
 E≒1240/λ[eV]
となります。

>例えば540nmでは2.33eVになると論文には書いてあるのですが
>合っているのでしょうか?
λに 540[nm] を代入すると
 E = 1240/540 = 2.30[eV]
でちょっとずれてます。
式はあっているはずです。

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。

Q積分のエクセル計算式を教えて下さい。

微積分の計算するにはエクセルでどの関数を使いどのような式を作ればよいのでしょうか。

Aベストアンサー

エクセルでの積分計算は、関数f(x)のx=aからbまでの定積分を求める式を作ればよいので、
[(b-a)/n]×Σf(xi) (i=0からn-1)
ですから、
f(xi)をセルで計算してi=0からn-1の合計を計算して[(b-a)/n]をかければ、近似計算が出来ます。

マクロが使えるのなら、ルンゲ・クッタ方をエクセルのマクロで計算する方法が正確です。参考になる書籍の「本書の例題ファイル」をダウンロードして参考にすると良いと思います。

参考URL:http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06673-8

Q近似曲線の数式を手計算で出したい。

エクセルを用いずに、近似曲線の数式をエクセルを用いずに算出したいです。

資料となるデータはあるし、計算機もあるのですが、エクセルは手元にないという状態です。

手計算で近似曲線のy=ax+bという数式を出すには、どのような計算をしたら算出できるのか、ご存じの方いらっしゃったら、どうか詳しく計算過程を教えて下さい。お願いします。

Aベストアンサー

線形近似においては、最小二乗法による推定が最も優れている(不偏かつ分散が小さい)ことがガウス=マルコフ定理によって証明されています。
最小二乗法とはデータが(X1,Y1),(X2,Y2),・・・(Xi,Yi)のように示されていると思うので、そのもとで
Σ(Yi-aXi-b)^2   (i=1,2,3・・・)
を最小化するようなa,bの組を見つけるという方法です。a,bの偏微分によって求めます。
具体的な式としては、Xの平均をX'、Yの平均をY'とし、データ数(標本数)をnとすると、
a=(ΣXiYi-nX'Y')/(ΣXi^2-nX'^2), b=Y'-aX'   (i=1,2,3・・・)
を得ます。
なお、ΣXiYiというのはX1・Y1+X2・Y2+・・・を意味し、ΣXi^2とはX1^2+X2^2+・・・を意味します。

例えば(X,Y)=(10,6),(12,9),(14,10),(16,10)というデータを考えると、標本数は4、Xの平均は13、Yの平均は8.75、ΣXi^2=696、ΣXiYi=468なので、これを代入して
a=(468-4×13×8.75)/(696-4×13^2)=0.65, b=8.75-0.65×13=0.3となり、
求める式はy=0.65x+0.3となります。

線形近似においては、最小二乗法による推定が最も優れている(不偏かつ分散が小さい)ことがガウス=マルコフ定理によって証明されています。
最小二乗法とはデータが(X1,Y1),(X2,Y2),・・・(Xi,Yi)のように示されていると思うので、そのもとで
Σ(Yi-aXi-b)^2   (i=1,2,3・・・)
を最小化するようなa,bの組を見つけるという方法です。a,bの偏微分によって求めます。
具体的な式としては、Xの平均をX'、Yの平均をY'とし、データ数(標本数)をnとすると、
a=(ΣXiYi-nX'Y')/(ΣXi^2-nX'^2), b=Y'-aX'   (i=1,2...続きを読む


人気Q&Aランキング