During development, I encountered a bug with one of the packages. I told the author and he not only fixed the bug within 24 hours but also offered to create a custom build for my CPU architecture.
I have only good things to say about R and its community. And I think R is sufficiently stable for production.
I have been reconsidering my workflow for a more data-centric approach. When I first looked around the search results for data-centric workflow, I was shocked that it was limited mostly to theoretical discussions and commentaries.
Why don't we have communities online focussed around using tools and platforms that allow informed discussion and decision making to solve entrepreneurial problems??
I believe this is one of the problems that Incanter was made for: really easy embedding in a larger software system. Of course, it's nowhere near as featureful or widely-used as R.
R is a stable enough language to be used successfully in production systems. But I would definitely not recommend building anything "big" in R-- I've tried and the entire process was not pleasant. R is a research environment for statisticians or statistically-minded practitioners in other fields-- and there has not been terribly much effort (from what I can tell) to change its status. I'd be happy to hear from others who've had similar (or different, perhaps positive) experiences.
It's actually my experiences trying to build production statistical processes in R that have motivated me to work on building out the statistics-related libraries for scientific Python. Hopefully within a couple of years we'll have something that's competitive with R in terms of ease-of-use and comprehensive statistical functionality out-of-the-box.
Do you think that Python libraries or a comprehensive development push will overcome barriers to entry for statistical process platforms? What if the greater adoption of these techniques is more limited by communities of users than the developers?
Depends on what you're referring to by "statistical process platforms". Python has been quite popular in the machine learning communities for several years, with some pure Python libraries (e.g. nltk, scikits.learn), and many wrappers to non-Python libraries (Orange, Shogun, and I'm sure some others).
One issue at the moment is that there's an R package for just about anything you would want to do. But the issue with R is its software development tools (which are not very good) and its ability to integrate with other systems.
As far as mainstream frequentist statistics in Python, there's still a ways to go. scikits.statsmodels has made a lot of headway the last couple years in implementing standard linear (regression) modeling classes and econometrics tools, with some time series analysis and other things thrown in (I'm actually actively working on adding time series analysis functionality to that library).
My general view is that given how friendly a language Python is for scientific programmers and the vibrancy of the community (in terms of new tools being built, etc.), Python could become a permanent fixture for statistical computing. Add on top of that things like integrated distributed computing inside IPython and projects like PyCUDA (which could make high performance statistical computing much more accessible), it's looking very good. But there's a slight chicken-and-egg problem at the moment.
I should also point out that R is sort of a frankenstein of half-baked object oriented ideas and remnants of the Splus era. So if you want to design extensible classes for statistical models, it can be quite challenging.
Not being a scientific programmer, I'm not exposed to the vibrancy of the community that you refer to. Would you recommend any websites where I could follow some discussions on the topic to get a better understand of the available community resources? I will look into Python and its libraries for the research I perform.
also, consider joining the mailing lists I listed above (numpy-discussion, scipy-user). Other smaller lists are: pystatsmodels, lists for Cython: www.cython.org and the associated Sage project.
I have often wondered when something Python-ish will come along to compete with R. I like the power of R, and there is no better choice if you require an esoteric statistical estimator, but there are also a lot of downsides. It's difficult to debug, the interpreter seems flaky, and parts of the SPLUS syntax feels dated. Also, I know it claims to be object oriented, but I have never really understood the OO system in R. So much more time and effort is being poured into improving the Python runtime, that it seems silly not to try to build something on top of it.
I am starting a stats PhD in the fall and have about nine months to kill between now and then. I'm seriously considering devoting all that time to building something like this.
I also have some time to kill before finishing my degree. As an entrepreneur, I'm looking for supportive platforms that can incorporate empirical research in rapid development. For instance, I really treasure the rapid development capable in lisp (particularly PLT Scheme for home-brewed libraries). My market research methodology is focussed around measurables and "surveys". Do you know of any resources where one could learn about statistical data processing in a rapid development environment? Perhaps more specifically: smooth dataflow between processes? Best of luck on your PhD.
I'm actually working on a stats PhD (in the early stages) and I've made it my goal to build a lot of Python software as I go along. So if you have the inclination I'd recommend giving it a shot. When you consider the wealth of tools out there for both high level (NumPy-based) and lower-level computation (e.g. Cython, for speeding up algorithms), and software development (especially interactive debugging and testing), it's a fairly compelling proposition (for me, at least).
But long story short is that people are working on making Python more amenable to applied statistics work. And the more people working toward that goal, the faster we'll get there.
So I would recommend: join numpy-discussion and scipy-user mailing lists, explore projects out there-- last few SciPy conferences are a decent place to start.
Yes, it's a tantalizing prospect because so much of the groundwork has already been laid. I have the sense that something is just needed to tie it all together into a nice, easy-to-use package with a consistent interface, easily-understood object model, etc.
My masters is in math, and I have watched Sage create a small revolution in the past couple years by doing exactly this.
I agree-- and doing so could make some pretty serious waves across both academia and industry. You should join the discussion on the mailing lists: in particular pystatsmodels and the numpy/scipy lists. Any input would be much appreciated.
good article... I have just launched a site (http://www.promepi.com) which uses R to recommend news articles to users. My co-founder used a lot when getting his masters degree, but I was new to it. It has been great to quickly develop our algorithm.
Anyone have experience with Revolution Analytics? My cofounder looked at these guys as we try to scale the site... he definitely agrees with one of the comments that "big" datasets are good in R and hopefully our site gets to a big dataset, so we are looking at scaling options.
ESRI (The geospatial software company) and SAS (the commercial alternative to R) both got caught up reacting to their existing user bases instead of proactively watching the analytics world. Both companies have (or at least until recently had as my knowledge is circa-2008) very desktop-centric product lines. Their customers used their products as if they were fancy versions of Excel -- a perfectly valid use case, but not one suited to production analytics. Both companies first forays into production systems involved clunky wrappers around desktop components. I'm sure they will eventually put out first-rate headless production components, but there's probably a nice window available in which start-ups may innovate.
17 comments
[ 18.8 ms ] story [ 843 ms ] threadDuring development, I encountered a bug with one of the packages. I told the author and he not only fixed the bug within 24 hours but also offered to create a custom build for my CPU architecture.
I have only good things to say about R and its community. And I think R is sufficiently stable for production.
Why don't we have communities online focussed around using tools and platforms that allow informed discussion and decision making to solve entrepreneurial problems??
http://incanter.org/
It's actually my experiences trying to build production statistical processes in R that have motivated me to work on building out the statistics-related libraries for scientific Python. Hopefully within a couple of years we'll have something that's competitive with R in terms of ease-of-use and comprehensive statistical functionality out-of-the-box.
One issue at the moment is that there's an R package for just about anything you would want to do. But the issue with R is its software development tools (which are not very good) and its ability to integrate with other systems.
As far as mainstream frequentist statistics in Python, there's still a ways to go. scikits.statsmodels has made a lot of headway the last couple years in implementing standard linear (regression) modeling classes and econometrics tools, with some time series analysis and other things thrown in (I'm actually actively working on adding time series analysis functionality to that library).
My general view is that given how friendly a language Python is for scientific programmers and the vibrancy of the community (in terms of new tools being built, etc.), Python could become a permanent fixture for statistical computing. Add on top of that things like integrated distributed computing inside IPython and projects like PyCUDA (which could make high performance statistical computing much more accessible), it's looking very good. But there's a slight chicken-and-egg problem at the moment.
I should also point out that R is sort of a frankenstein of half-baked object oriented ideas and remnants of the Splus era. So if you want to design extensible classes for statistical models, it can be quite challenging.
http://conference.scipy.org/proceedings/SciPy2009/ http://conference.scipy.org/scipy2010/schedule.html
also, consider joining the mailing lists I listed above (numpy-discussion, scipy-user). Other smaller lists are: pystatsmodels, lists for Cython: www.cython.org and the associated Sage project.
I am starting a stats PhD in the fall and have about nine months to kill between now and then. I'm seriously considering devoting all that time to building something like this.
But long story short is that people are working on making Python more amenable to applied statistics work. And the more people working toward that goal, the faster we'll get there.
So I would recommend: join numpy-discussion and scipy-user mailing lists, explore projects out there-- last few SciPy conferences are a decent place to start.
My masters is in math, and I have watched Sage create a small revolution in the past couple years by doing exactly this.
Food for thought...
Anyone have experience with Revolution Analytics? My cofounder looked at these guys as we try to scale the site... he definitely agrees with one of the comments that "big" datasets are good in R and hopefully our site gets to a big dataset, so we are looking at scaling options.