予測名人の心臓部、重回帰クラスの使い方 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
●はじめに |
|
|
|
|
|
|
●準備 |
|
|
|
|
|
|
●クラスインスタンスの取得 |
|
|
|
|
|
|
●簡単な使用例 |
|
|
|
|
|
|
●元データの形式 |
|
|
|
|
|
|
●推定値(.Estimation) |
|
|
|
|
|
|
●計算結果概略(.OutputSummary) |
|
|
|
|
|
|
●計算結果全て(.OutputAll) |
|
|
|
|
|
|
●計算結果個別取得例(.Value) |
|
|
|
|
|
|
●残差の表示(.Residual) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.Calculate メソッド |
|
|
|
|
|
◆クラス.Estimation メソッド |
|
|
|
|
|
◆クラス.Estimate, EstimateU, EstimateL プロパティ |
|
|
|
|
|
◆クラス.ErrorMessage プロパティ |
|
|
|
|
|
◆クラス.OutputSummary プロパティ |
|
|
|
|
|
◆クラス.OutputAll プロパティ |
|
|
|
|
|
◆クラス.Dimension メソッド |
|
|
|
|
|
◆クラス.Value メソッド |
|
|
|
|
|
◆クラス.Residual プロパティ |
|
|
|
|
|
◆クラス.DataSetName プロパティ |
|
|
|
|
|
◆クラス.Labels プロパティ |
|
|
|
|
|
◆クラス.OriginalData プロパティ |
|
|
|
|
|
◆クラス.Tag プロパティ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
●はじめに |
|
|
|
|
|
|
|
Top |
|
現在公開している重回帰分析ソフトである「予測名人」ですが、マニュアルには記載してありませんが |
|
実はその心臓部である重回帰クラスは、外部から使用できるように公開しています。 |
|
|
|
以下でその使用方法をご紹介します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
●準備 |
|
|
|
|
|
|
|
|
Top |
|
対象のブックから予測名人(重回帰.xlam/prjMultipleRegression)を参照設定します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
●クラスインスタンスの取得 |
|
|
|
|
|
|
Top |
|
クラスcMultipleRegressionは、GetMultipleRegressionメソッドで取得します。 |
|
|
|
Dim cMR As
cMultipleRegression |
|
|
|
|
|
|
|
Set cMR =
prjMultipleRegression.GetMultipleRegression |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
●簡単な使用例 |
|
|
|
|
|
|
|
Top |
|
元データを配列で与え、推定値と信頼区間95%の値を得る例 |
|
|
|
|
|
Sub Sample0() |
|
|
|
|
|
|
|
|
|
Dim cMR As
cMultipleRegression |
|
|
|
|
|
|
|
Dim X(1 To 3, 0 To 1) As
Double '元データ |
|
|
|
|
|
|
Dim X1(1 To 1) As
Double
'推定用(新たなX) |
|
|
|
|
|
|
Dim Est As String |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'Y値 |
|
|
|
|
|
|
|
|
|
|
X(1, 0) = 1 |
|
|
|
|
|
|
|
|
|
X(2, 0) = 2 |
|
|
|
|
|
|
|
|
|
X(3, 0) = 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'X値 |
|
|
|
|
|
|
|
|
|
|
X(1, 1) = 2 |
|
|
|
|
|
|
|
|
|
X(2, 1) = 3.9 |
|
|
|
|
|
|
|
|
|
X(3, 1) = 5.6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'新たなX |
|
|
|
|
|
|
|
|
|
X1(1) = 6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'重回帰クラスのインスタンス取得 |
|
|
|
|
|
|
|
Set cMR =
prjMultipleRegression.GetMultipleRegression |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'重回帰計算 |
|
|
|
|
|
|
|
|
|
If cMR.Calculate(X,
Limits:=95, Confidence:=True) Then |
|
|
|
|
|
'推定計算 |
|
|
|
|
|
|
|
|
|
If
cMR.Estimation(X1) Then |
|
|
|
|
|
|
|
Est = cMR.Estimate & "(推定値)" |
|
|
|
|
|
|
Est = Est & vbCrLf & cMR.EstimateU & "(上限)" |
|
|
|
|
|
Est = Est & vbCrLf & cMR.EstimateL & "(下限)" |
|
|
|
|
|
MsgBox Est, vbInformation |
|
|
|
|
|
|
|
Else |
|
|
|
|
|
|
|
|
|
|
MsgBox cMR.ErrorMessage, vbExclamation |
|
|
|
|
|
|
End If |
|
|
|
|
|
|
|
|
|
Else |
|
|
|
|
|
|
|
|
|
|
MsgBox cMR.ErrorMessage, vbExclamation |
|
|
|
|
|
|
End If |
|
|
|
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
●元データの形式 |
|
|
|
|
|
|
|
Top |
|
二次元配列で一列目が従属変数Y、二列目以降が独立変数Xです。 |
|
|
|
|
一行目に項目名は無しで、一行目からデータです。 |
|
|
|
|
|
|
(※クラス内での各変数はY,X1,X2,…と表現されます。) |
|
|
|
|
|
例1 |
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
|
|
|
|
|
|
|
|
2 |
3.9 |
|
|
|
|
|
|
|
|
|
3 |
5.6 |
|
|
|
|
|
|
|
|
|
例2 |
|
|
|
|
|
|
|
|
|
|
419.3784 |
5.2 |
46 |
|
|
|
|
|
|
|
|
-570.924 |
0.2 |
49 |
|
|
|
|
|
|
|
|
1192.994 |
9.1 |
75 |
|
|
|
|
|
|
|
|
221.7575 |
5 |
86 |
|
|
|
|
|
|
|
|
1723.209 |
6.9 |
6 |
|
|
|
|
|
|
|
|
-189.429 |
1.4 |
30 |
|
|
|
|
|
|
|
|
1173.989 |
8.5 |
80 |
|
|
|
|
|
|
|
|
1731.319 |
9.9 |
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.Calculate メソッド |
|
|
|
|
|
|
Top |
|
重回帰計算を実行します。計算結果はクラス内に保持されます。 |
|
|
|
|
正常終了するとTrueを、エラーがあった時はFalseを返します。 |
|
|
|
|
|
引数 |
|
|
|
|
|
|
|
|
|
|
X 計算元データ、二次元配列で指定します。 |
|
|
|
|
|
|
Logs 各変数の対数指定、一次元配列(True,
False)で指定します。省略可能です。 |
|
|
|
Limits 推定の幅を%で指定します。省略時は95%です。 |
|
|
|
|
|
Confidence Trueとすると「信頼区間」の指定になります。省略時はFalse「予測区間」です。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.Estimation メソッド |
|
|
|
|
|
Top |
|
推定値を計算します。結果は.Estimate,
.EstimateU, .EstimateL プロパティに保持されます。 |
|
|
正常終了するとTrueを、エラーがあった時はFalseを返します。 |
|
|
|
|
|
引数 |
|
|
|
|
|
|
|
|
|
|
X 推定に使用する新たなXを一次元配列で指定します。配列インデックスは1から独立変数Xの数までです。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.Estimate, EstimateU, EstimateL プロパティ |
|
|
|
Top |
|
推定値、推定幅上限(信頼区間or予測区間)、推定幅下限(信頼区間or予測区間)を返します。 |
|
|
(※信頼区間か予測区間かは、Calculateメソッドの引数、Confidenceで指定します。) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.ErrorMessage プロパティ |
|
|
|
|
|
Top |
|
エラーメッセージを返します。 |
|
|
|
|
|
|
|
|
(CalculateまたはEstimationメソッドのエラーメッセージが保持されています。) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
★使用例の共通プロシージャ |
|
|
|
|
|
|
|
|
以下の使用例でCallしている共通プロシージャです。 |
|
|
|
|
|
|
A1のアクティブセル領域を元データとして計算し、結果をクラスインスタンスとして返しています。 |
|
Function
MRCalc() As cMultipleRegression |
|
|
|
|
|
|
Dim cMR As
cMultipleRegression |
|
|
|
|
|
|
|
Dim RR As Range |
|
|
|
|
|
|
|
|
|
Dim VV As Variant |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'元データ(Y,X1,X2,...の順、項目名無しデータのみ) |
|
|
|
|
|
Set RR =
Range("A1") |
|
|
|
|
|
|
|
|
Set RR = RR.CurrentRegion |
|
|
|
|
|
|
|
|
'タイトル行を除く |
|
|
|
|
|
|
|
|
|
Set RR = Intersect(RR,
RR.Offset(1)) |
|
|
|
|
|
|
|
VV = RR.Value |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'重回帰クラスのインスタンス取得 |
|
|
|
|
|
|
|
Set cMR =
prjMultipleRegression.GetMultipleRegression |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'計算 |
|
|
|
|
|
|
|
|
|
|
If cMR.Calculate(VV,
Array(0, 0, 0)) Then |
|
|
|
|
|
|
Set MRCalc = cMR |
|
|
|
|
|
|
|
|
Else |
|
|
|
|
|
|
|
|
|
|
Debug.Print cMR.ErrorMessage |
|
|
|
|
|
|
|
Stop |
|
|
|
|
|
|
|
|
|
|
End If |
|
|
|
|
|
|
|
|
|
|
End Function |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
●推定値(.Estimation) |
|
|
|
|
|
|
Top |
|
Sub
CallSample1() |
|
|
|
|
|
|
|
|
|
Dim cMR As
cMultipleRegression |
|
|
|
|
|
|
|
Dim X(1 To 2) As Double |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'重回帰計算 |
|
|
|
|
|
|
|
|
|
Set cMR = MRCalc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X(1) = 5.2: X(2) = 46 '推定に使用するX値を指定する |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
With cMR |
|
|
|
|
|
|
|
|
|
If
.Estimation(X) Then |
|
|
|
|
|
|
|
|
Debug.Print .EstimateL, .Estimate, .EstimateU |
|
|
|
|
|
Else |
|
|
|
|
|
|
|
|
|
|
Debug.Print .ErrorMessage |
|
|
|
|
|
|
|
End If |
|
|
|
|
|
|
|
|
|
End With |
|
|
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
●計算結果概略(.OutputSummary) |
|
|
|
|
|
Top |
|
Sub
CallSample2() |
|
|
|
|
|
|
|
|
|
Dim cMR As
cMultipleRegression |
|
|
|
|
|
|
|
Dim Res As Variant, V As
Variant |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'重回帰計算 |
|
|
|
|
|
|
|
|
|
Set cMR = MRCalc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'計算結果概略 |
|
|
|
|
|
|
|
|
|
Res = cMR.OutputSummary |
|
|
|
|
|
|
|
|
For Each V In Res |
|
|
|
|
|
|
|
|
|
Debug.Print V |
|
|
|
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
|
|
|
Debug.Print |
|
|
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.OutputSummary プロパティ |
|
|
|
|
|
Top |
|
計算結果の概略を一次元配列で返します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
●計算結果全て(.OutputAll) |
|
|
|
|
|
|
Top |
|
Sub
CallSample3() |
|
|
|
|
|
|
|
|
|
Dim cMR As
cMultipleRegression |
|
|
|
|
|
|
|
Dim VV As Variant |
|
|
|
|
|
|
|
|
Dim T As String, V As
Variant |
|
|
|
|
|
|
|
Dim P As Integer |
|
|
|
|
|
|
|
|
|
Dim Dm As Long |
|
|
|
|
|
|
|
|
|
Dim i As Long, j As Long,
K As Long |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'重回帰計算 |
|
|
|
|
|
|
|
|
|
Set cMR = MRCalc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'計算結果詳細の取得({Title,Value}の配列) |
|
|
|
|
|
|
VV = cMR.OutputAll |
|
|
|
|
|
|
|
|
P = cMR.Value(独立変数Xの数p) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For i = 0 To UBound(VV) |
|
|
|
|
|
|
|
|
T
= VV(i, 0): V = VV(i, 1)
'T:Title V:Value |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'Valueの次元で分岐 |
|
|
|
|
|
|
|
|
Dm
= cMR.Dimension(V) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'配列以外の時 |
|
|
|
|
|
|
|
|
|
If
Dm = 0 Then |
|
|
|
|
|
|
|
|
|
If TypeName(V) = "Double" Then |
|
|
|
|
|
|
|
Debug.Print T, CSng(V) |
|
|
|
|
|
|
|
Else |
|
|
|
|
|
|
|
|
|
Debug.Print T, V |
|
|
|
|
|
|
|
|
End If |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'一次元配列の時 |
|
|
|
|
|
|
|
|
ElseIf Dm = 1 Then |
|
|
|
|
|
|
|
|
Debug.Print T |
|
|
|
|
|
|
|
|
If T = "標準残差" Then |
|
|
|
|
|
|
|
|
For j = LBound(V) To UBound(V) |
|
|
|
|
|
|
Debug.Print j, CSng(V(j)) |
|
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
|
|
ElseIf TypeName(V) = "Double()" Then |
|
|
|
|
|
|
For j = LBound(V) To P |
|
|
|
|
|
|
|
Debug.Print CSng(V(j)), |
|
|
|
|
|
|
|
Next: Debug.Print |
|
|
|
|
|
|
|
|
Else |
|
|
|
|
|
|
|
|
|
For j = LBound(V) To P |
|
|
|
|
|
|
|
Debug.Print V(j), |
|
|
|
|
|
|
|
|
Next: Debug.Print |
|
|
|
|
|
|
|
|
End If |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'二次元配列の時 |
|
|
|
|
|
|
|
|
ElseIf Dm = 2 Then |
|
|
|
|
|
|
|
|
Debug.Print T |
|
|
|
|
|
|
|
|
For j = LBound(V) To P |
|
|
|
|
|
|
|
|
For K = LBound(V, 2) To P |
|
|
|
|
|
|
|
Debug.Print CSng(V(j, K)), |
|
|
|
|
|
|
|
Next: Debug.Print |
|
|
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
|
|
End If |
|
|
|
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Debug.Print |
|
|
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.OutputAll プロパティ |
|
|
|
|
|
Top |
|
クラス内に保持している計算結果全てを二次元配列で返します。 |
|
|
|
|
データ形式は、第0列がタイトル、第1列が値で、値には配列以外、一次元配列、二次元配列があります。 |
|
|
|
|
|
|
|
|
|
|
|
第0列 |
第1列 |
|
|
|
|
|
|
独立変数Xの数p |
2 |
|
|
|
|
|
|
データ数n |
8 |
|
|
|
|
|
|
信頼区間 |
FALSE |
|
|
|
|
|
|
推定幅 |
95 |
|
|
|
|
|
|
対数指定 |
FALSE |
FALSE |
FALSE |
|
|
|
|
|
|
相関係数 |
1 |
0.920143 |
-0.05887 |
|
|
|
|
|
|
0.920143 |
1 |
0.309671 |
|
|
|
|
|
|
-0.05887 |
0.309671 |
1 |
|
|
|
|
|
|
標準回帰係数 |
1.037904 |
-0.38028 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.Dimension メソッド |
|
|
|
|
|
Top |
|
引数の次元を返します。 |
|
|
|
|
|
|
|
|
-1 未初期化配列 |
|
|
|
|
|
|
|
|
|
0 配列以外 |
|
|
|
|
|
|
|
|
|
1 一次元配列 |
|
|
|
|
|
|
|
|
|
2 二次元配列 |
|
|
|
|
|
|
|
|
|
3 三次元以上の配列 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
●計算結果個別取得例(.Value) |
|
|
|
|
|
Top |
|
Sub
CallSample4() |
|
|
|
|
|
|
|
|
|
Dim cMR As
cMultipleRegression |
|
|
|
|
|
|
|
Dim V As Variant |
|
|
|
|
|
|
|
|
|
Dim P As Integer |
|
|
|
|
|
|
|
|
|
Dim i As Long, j As Long |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'重回帰計算 |
|
|
|
|
|
|
|
|
|
Set cMR = MRCalc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'値が配列以外の例 |
|
|
|
|
|
|
|
|
|
P = cMR.Value(独立変数Xの数p) |
|
|
|
|
|
|
|
Debug.Print
"独立変数Xの数p"; P |
|
|
|
|
|
|
|
Debug.Print
"データ数n"; cMR.Value(データ数n) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'値が二次元配列の例 |
|
|
|
|
|
|
|
|
Debug.Print
"相関係数" |
|
|
|
|
|
|
|
|
V = cMR.Value(相関係数) |
|
|
|
|
|
|
|
|
For i = 0 To P
'※UBound(V)ではNG、必ず事前にPを取得する |
|
|
|
|
For j = 0 To P |
|
|
|
|
|
|
|
|
|
Debug.Print CSng(V(i, j)), |
|
|
|
|
|
|
|
Next: Debug.Print |
|
|
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'値が一次元配列の例 |
|
|
|
|
|
|
|
|
Debug.Print
"係数検定値t" |
|
|
|
|
|
|
|
|
V = cMR.Value(係数検定値t) |
|
|
|
|
|
|
|
|
For i = 1 To P |
|
|
|
|
|
|
|
|
|
Debug.Print V(i), |
|
|
|
|
|
|
|
|
Next: Debug.Print |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'値が配列以外の例2 |
|
|
|
|
|
|
|
|
Debug.Print
"補正R2"; cMR.Value(補正R2) |
|
|
|
|
|
|
Debug.Print
"検定値F"; cMR.Value(検定値F) |
|
|
|
|
|
|
Debug.Print
"F99.99%値"; cMR.Value(F99_99値) |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.Value メソッド |
|
|
|
|
|
|
Top |
|
クラス内に保持している計算結果を個別に取得します。 |
|
|
|
|
|
引数 |
|
|
|
|
|
|
|
|
|
|
Key 次の定義済み値(VKeys)のいずれかを指定します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VKeys |
|
|
|
|
|
|
|
|
|
|
独立変数Xの数p |
|
|
|
|
|
|
|
|
|
データ数n |
|
|
|
|
|
|
|
|
|
信頼区間 |
|
|
|
|
|
|
|
|
|
|
推定幅 |
|
|
|
|
|
|
|
|
|
|
対数指定 |
|
|
|
|
|
|
|
|
|
|
相関係数 |
|
|
|
|
|
|
|
|
|
|
標準回帰係数 |
|
|
|
|
|
|
|
|
|
平均 |
|
|
|
|
|
|
|
|
|
|
回帰係数_直 |
|
|
|
|
|
|
|
|
|
逆行列_直 |
|
|
|
|
|
|
|
|
|
係数検定値t |
|
|
|
|
|
|
|
|
|
重相関係数 |
|
|
|
|
|
|
|
|
|
補正R2 |
|
|
|
|
|
|
|
|
|
|
検定値F |
|
|
|
|
|
|
|
|
|
|
不偏誤差分散Ve |
|
|
|
|
|
|
|
|
|
t99値 |
|
|
|
|
|
|
|
|
|
|
t95値 |
|
|
|
|
|
|
|
|
|
|
t90値 |
|
|
|
|
|
|
|
|
|
|
F99.99値 |
|
|
|
|
|
|
|
|
|
|
F99.9値 |
|
|
|
|
|
|
|
|
|
|
F99値 |
|
|
|
|
|
|
|
|
|
|
F95値 |
|
|
|
|
|
|
|
|
|
|
tAlph値 |
|
|
|
|
|
|
|
|
|
|
t検定結果 |
|
|
|
|
|
|
|
|
|
|
t検定総合判定 |
|
|
|
|
|
|
|
|
|
標準残差 |
|
|
|
|
|
|
|
|
|
|
生データMin |
|
|
|
|
|
|
|
|
|
生データMax |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Valueメソッドで取得した値には、配列以外、一次元配列、二次元配列があります。 |
|
|
|
配列の場合、従属変数Yを含む時、インデックスは0から、独立変数Xのみの時は1からになります。 |
|
|
|
|
|
|
|
|
|
|
|
|
配列の場合で変数に関する値の時、インデックスの最大値は52固定です。 |
|
|
|
|
(例えば「相関係数」や「標準回帰係数」など。) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
●残差の表示(.Residual) |
|
|
|
|
|
|
Top |
|
Sub
CallSample5() |
|
|
|
|
|
|
|
|
|
Dim cMR As
cMultipleRegression |
|
|
|
|
|
|
|
Dim D As Range |
|
|
|
|
|
|
|
|
|
Dim VV As Variant |
|
|
|
|
|
|
|
|
Dim N As Long |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'重回帰計算 |
|
|
|
|
|
|
|
|
|
Set cMR = MRCalc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'残差取得(配列) |
|
|
|
|
|
|
|
|
|
VV = cMR.Residual |
|
|
|
|
|
|
|
|
N = UBound(VV) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'新規ブックに書き込み |
|
|
|
|
|
|
|
|
Set D =
Workbooks.Add.Worksheets(1).Range("B1") |
|
|
|
|
|
Set D = D.Resize(N) |
|
|
|
|
|
|
|
|
D.Value =
Application.WorksheetFunction.Transpose(VV) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'左列に連番 |
|
|
|
|
|
|
|
|
|
Set D = D.Offset(, -1) |
|
|
|
|
|
|
|
|
D.Range("A1").Value = 1 |
|
|
|
|
|
|
|
|
D.Range("A2").Value = 2 |
|
|
|
|
|
|
|
|
D.Range("A1:A2").AutoFill D |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'上記データをグラフ表示 |
|
|
|
|
|
|
|
|
ActiveSheet.Shapes.AddChart2(240, xlXYScatter).Select |
|
|
|
|
|
ActiveChart.SetSourceData
Source:=D.Resize(, 2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.Residual プロパティ |
|
|
|
|
|
Top |
|
標準化残差を一次元配列で返します。 |
|
|
|
|
|
|
|
(但し一般のそれとは少し違います、 |
詳しくは予測名人の説明書参照。) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.DataSetName プロパティ |
|
|
|
|
|
Top |
|
データに付ける名前を保持するプロパティで、計算には無関係です。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.Labels プロパティ |
|
|
|
|
|
|
Top |
|
変数名を保持する(受け渡す)為のプロパティで、計算には無関係です。 |
|
|
|
|
利用時は、データとの不整合が生じないように注意してください。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.OriginalData プロパティ |
|
|
|
|
|
Top |
|
Calculateメソッドで渡した元データをそのまま返します。 |
|
|
|
|
|
これは、プロシージャ間の引数を出来る限りクラスインスタンスのみとする為のものです。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
◆クラス.Tag プロパティ |
|
|
|
|
|
|
Top |
|
汎用のタグプロパティで、計算には無関係です。 |
|
|
|
|
|
|
予測名人では、自動選択された独立変数Xの、元配列内に於けるインデックス配列の保持・授受に使用しています。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
以上 |
|
|
|
|
|
|
|
|
|
|
|
|
|