質問編集履歴

1

書いてみたコードの追加

2021/09/05 07:40

投稿

biginn
biginn

スコア0

test CHANGED
@@ -1 +1 @@
1
- pythonでの回帰分析につ
1
+ pythonでフィッティングできな (コード記載しました。)
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  初心者なのですがpythonで積分関数を用いた回帰分析を行いたく、web上に掲載されているコードを参考にいくつか検証してみたのですが、まったく歯が立ちませんでした。お詳しい方のアドバイスをいただきたいです。以下の式(2)の左辺のφ(Θ)と右辺のsinΘの実測データがあります。このデータを式(2)により回帰分析をしたいです。λは固定値です。回帰パラメータは式(1)のφ∞、φO、εになります。一日中にらめっこして力尽きました。。。
6
6
 
7
-
7
+ 例などを参考に作成したコードを追記しました。エラーもでるのですが、アプローチがそもそも正しいのかも分かっていません。
8
8
 
9
9
  ![![イメージ説明](532f3651fb0767a6de0700464925c426.png)](02ce41367579ce13fee6a791ebd69f44.png)
10
10
 
@@ -23,6 +23,76 @@
23
23
 
24
24
 
25
25
  ### 該当のソースコード
26
+
27
+ import matplotlib.pyplot as plt
28
+
29
+ import pandas as pd
30
+
31
+ import numpy as np
32
+
33
+
34
+
35
+ df=pd.read_csv('C:/data.csv', encoding='shift=jis')
36
+
37
+ plt.scatter(df['fs'],df['sin'])
38
+
39
+
40
+
41
+ x=np.array(df['sin'])
42
+
43
+ y=np.array(df['fs'])
44
+
45
+
46
+
47
+
48
+
49
+ import sympy
50
+
51
+
52
+
53
+ sympy.init_printing()
54
+
55
+ sympy.var('a b c x z')
56
+
57
+ fz = (a+(a-b)*sympy.exp(-z/c))*sympy.exp(-z/0.3/x)
58
+
59
+ integ = sympy.integrate(fz, (z,0,np.inf))
60
+
61
+ display(integ)
62
+
63
+
64
+
65
+ import scipy.optimize
66
+
67
+ def func(parameter, xs,ys):
68
+
69
+ a=parameter[0]
70
+
71
+ b=parameter[1]
72
+
73
+ c=parameter[2]
74
+
75
+ fxs=integ
76
+
77
+ residual=ys-fxs
78
+
79
+ return residual
80
+
81
+
82
+
83
+ parameter0=[1,1,1]
84
+
85
+ result = optimize.leastsq(func, parameter0, args=(x,y))
86
+
87
+ print(result)
88
+
89
+
90
+
91
+ plt.scatter(x, y, 'o')
92
+
93
+ plt.plot(x, fit, '-')
94
+
95
+ plt.show()
26
96
 
27
97
 
28
98
 
@@ -49,3 +119,5 @@
49
119
 
50
120
 
51
121
  ここにより詳細な情報を記載してください。
122
+
123
+ コードを追記しました。