Statistica

Statistica is geared for point and click building of statistical models. I strong dislike modeling building software that does not allow scripting of models.  Without the ability of scripting your models reproducing your results can become impossible if you forget the one, obscure menu option you selected on the twenty-third run of the model.  Statistica has, however, an extensive object model that can be accessed via Visual Basic for Applications and a great macro generation feature.  By scripting your models you can easily reproduce your results and run many alternative models systematically looping through control tables. Generating SVB is simple in Statistica. There is an auto-generate feature that will save your menu commands as SVB scripts.  From those logs you can learn the basics of programming in Statistica.

Tip1

Generate scipts

Use the an auto-generate scipts.

Tip2

Open new Spreadsheet

Dim S1 As Spreadsheet
Set S1 = Spreadsheets.Open ( C:\project\data\myProject.sta )
Tip3

Add a variable to a spreadsheet

Dim S1 As Spreadsheet
Set S1 = ActiveDataSet
S1.AddVariables MVTD , 53, 1, scDouble, 8, -9999, General , = IIF(numveh>numdrv, 1, 0)
S1.Recalculate 54

Tip4

Run a model

Dim newanalysis1 As Analysis
Set newanalysis1 = Analysis (scNeuralNetworks, ActiveDataSet)

With newanalysis1.Dialog
.VariablesAndTypes = 18 92 96-97 | 30 32 34 36 38 40-42 47-49 51-52
.Variables = 97 | 18 30 32 34 36 38 40-42 47-49 51-52 92 96
.TypeOfAnalysis = scSNNIntelligentProblemSolver
.IssueMissingDataWarning = False
.ApplyMemoryLimit = True
.MemoryLimit = 30
End With
newanalysis1.Run

Tip5

Refer to variable by name not number.

One major issue I have with Statistica is the variables are referred by the order they appear in the spreadsheet.  This can create issues when reproducing results when you are not sure if variable 23 was income or weight.

Icol = 1
While Icol < (S1.Variables.Count +1)
strname = S1.VariableName(Icol)
VarDict.Set(strname, Icol)
Icol = Icol +1
Wend

Dim StrVarList As String
StrVarList = VarDict( MyDependant )
StrVarList = StrVarList + |
StrVarList = StrVarList + VarDict.Item( MyCatoragory )+
StrVarList = StrVarList + |
StrVarList = StrVarList + VarDict.Item( MyInt1 )+
StrVarList = StrVarList + VarDict.Item( MyInt2 )+
StrVarList = StrVarList + VarDict.Item( MyInt3 )+

Dim StrNameList As String

StrNameList = MyDependant = MyCatoragory MyInt1 MyInt2 MyInt3