Aptech Systems, Inc. Worldwide Headquarters
Aptech Systems, Inc.
2250 East Germann Road, Suite #10
Chandler, AZ 85286
Ready to Get Started?
For Pricing and Distribution
Training & Events
Step-by-step, informative lessons for those who want to dive into GAUSS and achieve their goals, fast.
Have a Specific Question?
Q&A: Register and Login
Premier Support and Platinum Premier Support are annually renewable membership programs that provide you with important benefits including technical support, product maintenance, and substantial cost-saving features for your GAUSS System or the GAUSS Engine.
Join our community to see why our users are considered some of the most active and helpful in the industry!
Where to Buy
Available across the globe, you can have access to GAUSS no matter where you are.
Recent Tagsapplications character vectors CMLMT Constrained Optimization covariance matrix datasets dates dlibrary dllcall Editor error error handling errors Excel FANPACMT file i/o GAUSS Engine graphics GUI hardware histogram hotkeys installation Java API linux loading data localization loops Matlab convert matrices matrix manipulation Maxlik MaxLikMT Optmum output pgraph graph PQG graphics procs random numbers simulation string functions strings threading Time Series writing data
Time Series 2.0 MT
Find out more now
Time Series MT 2.1
I am trying to get the graph of an empirical cumulative distribution function, but I cant seem to find the commands that I use in other softwares such as Matlab. In there it is ecdf(x). Is there a way to do this in Gauss?
I am not sure if any of the GAUSS applications have an ECDF function, but I think this procedure will do what you need.
proc (1) = ecdf(x); local bp_start, bp_end, bp_inc, bp_pts, out, num_breaks; num_breaks = rows(x); //calculate breakpoints bp_start = minc(x); bp_end = maxc(x); bp_inc = (bp_end - bp_start)./num_breaks; bp_pts = seqa(bp_start, bp_inc, num_breaks + 1); //pre-allocate 'out' vector to avoid concatenation out = zeros(rows(bp_pts), 1); out2 = out; //Clear code to calculate how many in each breakpoint for i(1, rows(bp_pts), 1); out[i] = sumc(x .< bp_pts[i]); endfor; retp(out); endp;
You can adjust the number of breakpoints num_breaks to trade-off between speed and the smoothness of the curve. Though, if speed is a concern you might want to replace the for loop at the end with a matrix based operation like this:
//Faster matrix based code to calculate how many in each breakpoint x = reshape(x', rows(bp_pts), rows(x)); out = sumr(x .< bp_pts);