|
|
|
новичок
      
участник
Last Login: 22.05.2007 16:20
Сообщ.: 1,
Visits: 2
|
|
Подскажите, как реализовать нахождение коэффициентов для линейного тренда, может пример есть у кого?
Если в Икселе есть функция ЛИНЕЙН, то в Аксесе ее нет, какой оптимальный путь рассчета?
Если не затруднит, можно как для чайников, объяснить, есть например, таблица с данными:
Год Месяц Sum-Сумма продажи, руб 2005 Январь 20958025,52 2005 Февраль 21156211,21 2005 Март 20437932,25 2005 Апрель 18841149,85 2005 Май 17975538,58 2005 Июнь 21934267,8 2005 Июль 18824670,27 2005 Август 22273425,25 2005 Сентябрь 24393446,68 2005 Октябрь 28008856,97 2005 Ноябрь 32148816,35 2005 Декабрь 34012898,244
Как получить данные сезонной апроксимации, вернуть их в аксесс, посчитать сезонные отклонения и сделать прогноз на n шагов
|
|
|
|
|
Supreme Being
      
участник
Last Login: 07.03.2008 19:04
Сообщ.: 328,
Visits: 1 857
|
|
Public Sub Linear(Q As String, x As String, y As String, a, b)
'Аппроксимация результатов наблюдений линейной функцией y=a*x+b (метод наименьших квадратов).
'Входные параметры:
'Q-имя таблицы или запроса с исходными данными;
'x-имя поля в Q, содержащее значения x;
'y-имя поля в Q, содержащее значения y.
'Выходные параметры:
'a-коэффициент a;
'b-коэффициент b.
Dim d As Double
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("SELECT Sum(" & x & ") As sx, Sum(" & x & "*" & x & ") As sxx, " & _
"Sum(" & y & ") As sy, Sum(" & x & "*" & y & ") As sxy, Count(*) As n FROM " & Q)
d = rs!n * rs!sxx - rs!sx * rs!sx
If d <> 0 Then
a = (rs!n * rs!sxy - rs!sx * rs!sy) / d
b = (rs!sxx * rs!sy - rs!sx * rs!sxy) / d
End If
rs.Close: Set rs = Nothing
End Sub
|
|
|
|