Andreik Posted October 27, 2008 Posted October 27, 2008 (edited) I think most have used FORECAST function from MS Excel. How can I write this function in AutoIt? My problem is how can I compute the value of a? Any idea is welcome. Here is description of function from Excel: Edited October 27, 2008 by Andreik
Pain Posted October 27, 2008 Posted October 27, 2008 To be honest I'm working on something similar myself, started two days ago, but with another algorithm. Take a look here and see if it helps. I found it pretty useful.http://en.wikipedia.org/wiki/Regression_analysis
Andreik Posted October 27, 2008 Author Posted October 27, 2008 (edited) To be honest I'm working on something similar myself, started two days ago, but with another algorithm. Take a look here and see if it helps. I found it pretty useful. http://en.wikipedia.org/wiki/Regression_analysis Is useful your link, but I don't know why the return value is not correct. Here is my example: expandcollapse popupDim $TEST1[6] $TEST1[0] = 5; Index of array $TEST1[1] = 6 $TEST1[2] = 7 $TEST1[3] = 9 $TEST1[4] = 15 $TEST1[5] = 21 Dim $TEST2[6] $TEST2[0] = 5; Index of array $TEST2[1] = 20 $TEST2[2] = 28 $TEST2[3] = 31 $TEST2[4] = 38 $TEST2[5] = 40 Func ArrayAverage($Array) Local $Sum = 0 For $Index = 1 To $Array[0] $Sum += $Array[$Index] Next Return $Sum/$Array[0] EndFunc Func FORECAST($NUM,$Array1,$Array2) If Not IsNumber($NUM) Then Return "#VALUE!" If UBound($Array1) <> UBound($Array2) Then Return "#N/A" If Not IsArray($Array1) And Not IsArray($Array2) Then Return "#DIV/0!" Local $PSum = 0 , $Sum = 0 Local $XAvg = ArrayAverage($Array1) Local $YAvg = ArrayAverage($Array2) For $Index = 1 To $Array1[0] $PSum += ($Array1[$Index]-$XAvg)*($Array2[$Index]-$YAvg) $Sum += ($Array1[$Index]-$XAvg)^2 Next Local $b = $PSum/$Sum Local $a = $XAvg - $b*$YAvg Return $a+$b*$NUM EndFunc MsgBox(0,"FORECAST",FORECAST(30,$TEST1,$TEST2)) Edited October 27, 2008 by Andreik
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now