把回归分析带到个人电脑

Stata起初是一个面向个人电脑的回归分析程序,由加利福尼亚州圣莫尼卡的Computing Resource Center开发。这家公司的原有业务是出售大型计算机的使用时间。威廉·古尔德希望在新兴个人电脑上提供研究者能够认真使用的统计工具。

古尔德在2004年的访谈中回忆,项目约在1984年1月开始。当时可用于个人电脑的Lattice C编译器为实现程序提供了条件。他编写C代码,后来加入的肖恩·贝凯蒂参与界面与分析方法的设计;古尔德认为,两人对用户看到的设计各有重要贡献。

参考:[1] [3]

从批处理转向连续提问

贝凯蒂当时在加利福尼亚大学洛杉矶分校任教,也有大型机统计软件经验。他最初负责试用早期版本、寻找错误,并就计量经济方法提出意见。连续测试让许多问题暴露出来,程序逐渐变得稳定。

他的2005年回忆文章把交互方式视为最重要的变化。研究者输入一条命令便能看到结果,再据此提出下一个问题,无须每次都修改整份程序、重新提交作业并等待输出。这种可以连续探索数据的操作方式,改变了他对探索性分析的看法。

二人还共同编写第一版手册。有限的早期功能并未妨碍他们围绕命令的使用体验反复讨论:统计运算之外,如何让用户方便地检查和处理数据,同样是产品设计的一部分。

参考:[2]

1984年底展示与1985年正式发行

古尔德把首次宣布和开始销售的场合记为1984年12月在达拉斯举行的美国经济学会会议,同时说明公司采用的正式发行年份是1985年。尼古拉斯·考克斯2015年的版本年表进一步将1.0列为1985年1月。

第一版运行在DOS个人电脑上,以回归计算和数据管理为主,共有44条命令。它已提供use、generate、summarize和regress等操作,但还没有字符串变量。早期Stata的范围比后来完整的统计分析环境窄得多。

参考:[1] [3]

让不同命令共用一套语法

个人电脑的内存限制促使古尔德减少重复代码。集中式语法解析器先理解语句的共同结构,各项命令再完成自己的计算;一致的语法既节省实现空间,也降低用户切换操作时的负担。

古尔德提到Wylbur等系统对早期设计的影响。开发过程中,他和贝凯蒂不断删去多余的词,把原先冗长的表达改得紧凑。数据的选择、变量的处理与统计命令因此能够放在同一种交互框架下。

参考:[1]

用汽车数据连接整理与估计

2013年的Stata 13正式手册提供了一个具体例子:数据包括74辆汽车的每加仑行驶英里数mpg、车重weight,以及区分海外和美国汽车的foreign变量。读入数据后,regress mpg weight foreign便估计一个包含两个解释变量和常数项的线性模型。

输出不仅列出系数,还给出标准误、检验结果和置信区间。研究者可以看到模型拟合程度,也能查看单项估计的不确定性。

手册随后改变问题的表达方式,用generate gp100m = 100/mpg生成“每百英里耗油加仑数”,再运行regress gp100m weight foreign。整理变量与重新估计相邻进行,展示了命令式分析的连续过程。

参考:[4]

图形与跨平台实现逐步加入

1985年的1.3版通过附加组件提供图形。1988年6月的2.0版把图形整合进主程序,并加入字符串变量、生存分析等功能;同年还出现Sun/Unix版本,1992年推出Macintosh版本。

这些扩展逐步改变了软件的能力边界。最初围绕回归建立的小型程序,沿着数据处理、统计方法和不同计算机平台继续发展,而即时输入命令、查看结果的交互方式始终是早期设计留下的鲜明特征。

参考:[2] [3]