def IndividualTraitStats(species_list, trait_matrix, trait_names): '''Get variance and kurtosis for each trait. returns dict with keys trait_names and data a tuple of range, var, kurtosis (G2), nndist_mean, nndist_var ''' result = {} for trait in trait_names : temp_matrix = {} vals = [] for spec in species_list : val = trait_matrix[spec][trait_names.index(trait)] vals.append(val) temp_matrix[spec] = [val] distances = NearestNeighborDistances(species_list, temp_matrix) range = max(vals) - min(vals) result[trait] = (range, stats.var(vals), G2(vals), stats.mean(distances), stats.var(distances)) return result
def stddev(*arg): def mean(): return sum(arg)/len(arg) def var(m): total = 0 for i in arg: total += (i-m)**2 return total/(len(arg)-1) v = var(mean()) # 호출 return math.sqrt(v)
def stddev(*arg): def var(arg): def avg(arg): return sum(arg)/len(arg) avg = avg(arg) d = 0 for i in arg: d += (i - avg)**2 return d/(len(arg)-1) return math.sqrt(var(arg))
def _std(self, data): """ Computes the standard deviation """ var = stats.var(data) if var > 0.0: sd = math.sqrt(var) else: sd = 0.0 return sd
def _std(self, data): """ Computes the standard deviation """ var = stats.var(data) if var>0.0: sd = math.sqrt(var) else: sd = 0.0 return sd
def calc(x, conf): size = len(x) sum = stats.sum(x) av = stats.average(sum, size) gm = stats.gmean(x) v = stats.var(sum, stats.sqsum(x), size) med = stats.median(x) if v != 'error': sd = stats.stdv1(v) c = stats.conf(float(conf), sd, size) else: sd = 'error' c = 'none' return av, gm, v, sd, c, med
def PrintResultRow(rowname, species_set, trait_matrix, trait_names, options, include_indiv=0) : "Print one row of output" print "%s\t%d\t%f" % (rowname, len(species_set), HullVolume(species_set, trait_matrix)), #individual trait stats if include_indiv : trait_stats = IndividualTraitStats(species_set, trait_matrix, trait_names) for trait in trait_names : print "\t%f\t%f\t%f\t%f\t%f" % trait_stats[trait], #Nearest-neighbor distances if options.do_dist : distances = NearestNeighborDistances(species_set, trait_matrix) print "\t%f\t%f" % (stats.mean(distances), stats.var(distances)), if options.do_aussie : distances = AussieDistances(species_set, trait_matrix,EuclideanDistanceSquare) print "\t%f" % sum(distances), # finish row print '\n',
def bartlett(*args): """Perform Bartlett test with the null hypothesis that all input samples have equal variances. Inputs are sample vectors: bartlett(x,y,z,...) Outputs: (T, pval) T -- the Test statistic pval -- significance level if null is rejected with this value of T (prob. that null is true but rejected with this p-value.) Sensitive to departures from normality. The Levene test is an alternative that is less sensitive to departures from normality. References: http://www.itl.nist.gov/div898/handbook/eda/section3/eda357.htm Snedecor, George W. and Cochran, William G. (1989), Statistical Methods, Eighth Edition, Iowa State University Press. """ k = len(args) if k < 2: raise ValueError, "Must enter at least two input sample vectors." Ni = zeros(k) ssq = zeros(k,'d') for j in range(k): Ni[j] = len(args[j]) ssq[j] = stats.var(args[j]) Ntot = sum(Ni,axis=0) spsq = sum((Ni-1)*ssq,axis=0)/(1.0*(Ntot-k)) numer = (Ntot*1.0-k)*log(spsq) - sum((Ni-1.0)*log(ssq),axis=0) denom = 1.0 + (1.0/(3*(k-1)))*((sum(1.0/(Ni-1.0),axis=0))-1.0/(Ntot-k)) T = numer / denom pval = distributions.chi2.sf(T,k-1) # 1 - cdf return T, pval
def oneway(*args,**kwds): """Test for equal means in two or more samples from the normal distribution. If the keyword parameter <equal_var> is true then the variances are assumed to be equal, otherwise they are not assumed to be equal (default). Return test statistic and the p-value giving the probability of error if the null hypothesis (equal means) is rejected at this value. """ k = len(args) if k < 2: raise ValueError, "Must enter at least two input sample vectors." if 'equal_var' in kwds.keys(): if kwds['equal_var']: evar = 1 else: evar = 0 else: evar = 0 Ni = array([len(args[i]) for i in range(k)]) Mi = array([stats.mean(args[i]) for i in range(k)]) Vi = array([stats.var(args[i]) for i in range(k)]) Wi = Ni / Vi swi = sum(Wi,axis=0) N = sum(Ni,axis=0) my = sum(Mi*Ni,axis=0)*1.0/N tmp = sum((1-Wi/swi)**2 / (Ni-1.0),axis=0)/(k*k-1.0) if evar: F = ((sum(Ni*(Mi-my)**2,axis=0) / (k-1.0)) / (sum((Ni-1.0)*Vi,axis=0) / (N-k))) pval = distributions.f.sf(F,k-1,N-k) # 1-cdf else: m = sum(Wi*Mi,axis=0)*1.0/swi F = sum(Wi*(Mi-m)**2,axis=0) / ((k-1.0)*(1+2*(k-2)*tmp)) pval = distributions.f.sf(F,k-1.0,1.0/(3*tmp)) return F, pval
def fligner(*args,**kwds): """Perform Levene test with the null hypothesis that all input samples have equal variances. Inputs are sample vectors: bartlett(x,y,z,...) One keyword input, center, can be used with values center = 'mean', center='median' (default), center='trimmed' Outputs: (Xsq, pval) Xsq -- the Test statistic pval -- significance level if null is rejected with this value of X (prob. that null is true but rejected with this p-value.) References: http://www.stat.psu.edu/~bgl/center/tr/TR993.ps Fligner, M.A. and Killeen, T.J. (1976). Distribution-free two-sample tests for scale. 'Journal of the American Statistical Association.' 71(353), 210-213. """ k = len(args) if k < 2: raise ValueError, "Must enter at least two input sample vectors." if 'center' in kwds.keys(): center = kwds['center'] else: center = 'median' if not center in ['mean','median','trimmed']: raise ValueError, "Keyword argument <center> must be 'mean', 'median'"\ + "or 'trimmed'." if center == 'median': func = stats.median elif center == 'mean': func = stats.mean else: func = stats.trim_mean Ni = asarray([len(args[j]) for j in range(k)]) Yci = asarray([func(args[j]) for j in range(k)]) Ntot = sum(Ni,axis=0) # compute Zij's Zij = [abs(asarray(args[i])-Yci[i]) for i in range(k)] allZij = [] g = [0] for i in range(k): allZij.extend(list(Zij[i])) g.append(len(allZij)) a = distributions.norm.ppf(stats.rankdata(allZij)/(2*(Ntot+1.0)) + 0.5) # compute Aibar Aibar = _apply_func(a,g,sum) / Ni anbar = stats.mean(a) varsq = stats.var(a) Xsq = sum(Ni*(asarray(Aibar)-anbar)**2.0,axis=0)/varsq pval = distributions.chi2.sf(Xsq,k-1) # 1 - cdf return Xsq, pval
print stats.relfreq(af) print '\nVARIATION' print 'obrientransform:' l = range(1,21) a = N.array(l) ll = [l]*5 aa = N.array(ll) print stats.obrientransform(l,l,l,l,l) print stats.obrientransform(a,a,a,a,a) print 'samplevar:',stats.samplevar(l),stats.samplevar(a) print 'samplestdev:',stats.samplestdev(l),stats.samplestdev(a) print 'var:',stats.var(l),stats.var(a) print 'stdev:',stats.stdev(l),stats.stdev(a) print 'sterr:',stats.sterr(l),stats.sterr(a) print 'sem:',stats.sem(l),stats.sem(a) print 'z:',stats.z(l,4),stats.z(a,4) print 'zs:' print stats.zs(l) print stats.zs(a) print '\nTRIMMING' print 'trimboth:' print stats.trimboth(l,.2) print stats.trimboth(lf,.2) print stats.trimboth(a,.2) print stats.trimboth(af,.2) print 'trim1:'
print 'median:', stats.median(l), stats.median(lf), stats.median( a), stats.median(af) print 'medianscore:', stats.medianscore(l), stats.medianscore( lf), stats.medianscore(a), stats.medianscore(af) print 'mode:', stats.mode(l), stats.mode(a) print '\nMOMENTS' print 'moment:', stats.moment(l), stats.moment(lf), stats.moment( a), stats.moment(af) print 'variation:', stats.variation(l), stats.variation(a), stats.variation( lf), stats.variation(af) print 'skew:', stats.skew(l), stats.skew(lf), stats.skew(a), stats.skew(af) print 'kurtosis:', stats.kurtosis(l), stats.kurtosis(lf), stats.kurtosis( a), stats.kurtosis(af) print 'mean:', stats.mean(a), stats.mean(af) print 'var:', stats.var(a), stats.var(af) print 'stdev:', stats.stdev(a), stats.stdev(af) print 'sem:', stats.sem(a), stats.sem(af) print 'describe:' print stats.describe(l) print stats.describe(lf) print stats.describe(a) print stats.describe(af) print '\nFREQUENCY' print 'freqtable:' print 'itemfreq:' print stats.itemfreq(l) print stats.itemfreq(a) print 'scoreatpercentile:', stats.scoreatpercentile( l, 40), stats.scoreatpercentile(lf, 40), stats.scoreatpercentile(
def PrintNetwork(self, *args): '''Prints the network to terminal. Args: Returns: Raises:''' self.__ForwardPass() #recalculate project dates header = [heading for heading in args] data = [header] for i in self.IDs: try: row = [] for heading in args: if heading == 'ID': row.append(str(self[i].GetID()))#, str(self[i].GetStart(asobject=True))] if heading == 'Start': row.append(str(self[i].GetStart(asobject=True))) if heading == 'End': row.append(str(self[i].GetEnd(asobject=True))) if heading == 'Duration': row.append(str(self[i].GetDuration())) if heading == 'Slack': row.append(str(self[i].GetSlack())) if heading == 'DurationRangeML': row.append(str(self[i].GetDurationRangeML())) if heading == 'DurationRangeMax': row.append(str(self[i].GetDurationRangeMax())) if heading == 'DurationRangeMin': row.append(str(self[i].GetDurationRangeMin())) if heading == 'Name': row.append(str(self[i].GetName())) if heading == 'Predecesors': row.append(str(self[i].GetPredecesors())) if heading == 'Succsesors': row.append(str(self[i].GetSuccsesors())) if heading == 'Slack': row.append(str(self[i].GetSlack())) data.append(row) except KeyError: continue print MakeTable(data) print "\n\n" print "OTHER INFORMATION:" print "------------------" print str('Deterministic Duration:').ljust(15), (self.GetNetworkEnd()-self.GetNetworkStart()).days print str('Deterministic Finish:').ljust(15), self.GetNetworkEnd() print str('Critical Path:').ljust(15), self.GetCriticalPath() print "\n" print "SIMULATION RESULTS:" print "-------------------" end_id = self.GetNetworkEnd(return_ID=True) start = self.GetNetworkStart(asobject=True) mean = self.GetSimulationMean(end_id) print str('E(x):').ljust(15), self.GetSimulationMean(end_id), start + datetime.timedelta(mean) print str('P10:').ljust(15), self.GetSimulationPercentile(end_id, 0.1), self.GetSimulationPercentile(end_id, 0.1, date=True) print str('P50:').ljust(15), self.GetSimulationPercentile(end_id, 0.5), self.GetSimulationPercentile(end_id, 0.5, date=True) print str('P90:').ljust(15), self.GetSimulationPercentile(end_id, 0.9), self.GetSimulationPercentile(end_id, 0.9, date=True) print str('Var:').ljust(15), stats.var(self.GetSimulationVariates(ID = end_id))
print(stats.relfreq(l)) print(stats.relfreq(lf)) print(stats.relfreq(l)) print(stats.relfreq(lf)) print('\nVARIATION') print('obrientransform:') l = [float(f) for f in list(range(1,21))] ll = [l]*5 print(stats.obrientransform(l,l,l,l,l)) print('samplevar:',stats.samplevar(l),stats.samplevar(l)) print('samplestdev:',stats.samplestdev(l),stats.samplestdev(l)) print('var:',stats.var(l),stats.var(l)) print('stdev:',stats.stdev(l),stats.stdev(l)) print('sterr:',stats.sterr(l),stats.sterr(l)) print('sem:',stats.sem(l),stats.sem(l)) print('z:',stats.z(l,4),stats.z(l,4)) print('zs:') print(stats.zs(l)) print(stats.zs(l)) print('\nTRIMMING') print('trimboth:') print(stats.trimboth(l,.2)) print(stats.trimboth(lf,.2)) print(stats.trimboth(l,.2)) print(stats.trimboth(lf,.2)) print('trim1:')
fileNames = sys.stdin.readlines() for fileName in fileNames: fileName = fileName.strip() fileBuf = open(fileName) lines = fileBuf.readlines() data = [] for l in lines: try: data.append(float(l)) except ValueError: pass if len(data) > 0: mean = stats.mean(data) var = math.sqrt(stats.var(data)) print "file name :", fileName print "mean :", mean print "variance :", var if fileName.find("logBallDist") != -1: ballDistVars[0].append((mean, var)) elif fileName.find("logBallHead") != -1: ballHeadVars[0].append((mean, var)) elif fileName.find("logBeaconDist") != -1: beaconDistVars[0].append((mean, var)) elif fileName.find("logBeaconHead") != -1: beaconHeadVars[0].append((mean, var)) elif fileName.find("logGoalDist") != -1: goalDistVars[0].append((mean, var))
sys.path # stddev.py (module 이름은 py 파일 이름명) import stddev stddev.stddev(2,3,1,7) # 모듈이름.함수이름 from stddev import * # 함수 전부다는 * 특정함수는 작성 round(stddev(2,3,1,7), 6) dir() # 내가 만든 것들 조회 더 편하게 하려면 환경변수에서 잡아주면됨 PYTHONPATH C:\python # 숙제 평균함수 만들어라 분산함수 만들어라 stats 모듈을 만들어라 (즉, stats.py 안에 함수 다 넣어버리자) import sys sys.path from stats import mean,var,stddev mean(1,2,3,4) var(1,2,3,4) stddev(1,2,3,4) dir()
def _fill_moment_results(self): """ Fills the result arrays used for storing the calculated moments common format: time, mean, mode, var, skewness, kurtosis, 95% confidence lower limit, 95% upper limit """ toprocess = [('stock_tom', self.c_stock, 2), ('stock_woody', self.c_stock, 3), ('stock_non_woody', self.c_stock, 4), ('stock_acid', self.c_stock, 5), ('stock_water', self.c_stock, 6), ('stock_ethanol', self.c_stock, 7), ('stock_non_soluble', self.c_stock, 8), ('stock_humus', self.c_stock, 9), ('change_tom', self.c_change, 2), ('change_woody', self.c_change, 3), ('change_non_woody', self.c_change, 4), ('change_acid', self.c_change, 5), ('change_water', self.c_change, 6), ('change_ethanol', self.c_change, 7), ('change_non_soluble', self.c_change, 8), ('change_humus', self.c_change, 9), ('co2', self.co2_yield, 2)] for (resto, dataarr, dataind) in toprocess: # filter time steps ts = numpy.unique(dataarr[:,1]) # extract data for the timestep for timestep in ts: ind = numpy.where(dataarr[:,1]==timestep) mean = stats.mean(dataarr[ind[0], dataind]) mode_res = stats.mode(dataarr[ind[0], dataind]) mode = mode_res[0] var = stats.var(dataarr[ind[0], dataind]) skew = stats.skew(dataarr[ind[0], dataind]) kurtosis = stats.kurtosis(dataarr[ind[0], dataind]) if var>0.0: sd2 = 2 * math.sqrt(var) else: sd2 = var res = [[timestep, mean, mode[0], var, skew, kurtosis, mean - sd2, mean + sd2]] if resto=='stock_tom': self.md.stock_tom = numpy.append(self.md.stock_tom, res, axis=0) elif resto=='stock_woody': self.md.stock_woody = numpy.append(self.md.stock_woody, res, axis=0) elif resto=='stock_non_woody': self.md.stock_non_woody = numpy.append(\ self.md.stock_non_woody, res, axis=0) elif resto=='stock_acid': self.md.stock_acid = numpy.append(self.md.stock_acid, res, axis=0) elif resto=='stock_water': self.md.stock_water = numpy.append(self.md.stock_water, res, axis=0) elif resto=='stock_ethanol': self.md.stock_ethanol = numpy.append(self.md.stock_ethanol, res, axis=0) elif resto=='stock_non_soluble': self.md.stock_non_soluble= numpy.append( self.md.stock_non_soluble, res, axis=0) elif resto=='stock_humus': self.md.stock_humus = numpy.append(self.md.stock_humus, res, axis=0) elif resto=='change_tom': self.md.change_tom = numpy.append(self.md.change_tom, res, axis=0) elif resto=='change_woody': self.md.change_woody = numpy.append(self.md.change_woody, res, axis=0) elif resto=='change_non_woody': self.md.change_non_woody = numpy.append(\ self.md.change_non_woody, res, axis=0) elif resto=='change_acid': self.md.change_acid = numpy.append(self.md.change_acid, res, axis=0) elif resto=='change_water': self.md.change_water = numpy.append(self.md.change_water, res, axis=0) elif resto=='change_ethanol': self.md.change_ethanol = numpy.append( self.md.change_ethanol, res, axis=0) elif resto=='change_non_soluble': self.md.change_non_soluble=numpy.append( self.md.change_non_soluble, res, axis=0) elif resto=='change_humus': self.md.change_humus = numpy.append(self.md.change_humus, res, axis=0) elif resto=='co2': self.md.co2 = numpy.append(self.md.co2, res, axis=0)
t_list.append(num_bytes) datetime_to_bytelist[outputtime] = t_list else : datetime_to_bytelist[outputtime] = [num_bytes] num_packets = 0 num_bytes = 0 tmpdeltamultiple = tmpdeltamultiple + 1 timestamps = datetime_to_packetlist.keys() timestamps.sort() tmp_total = 0 tmp_size = 0 for time_it in timestamps: if len(datetime_to_packetlist[time_it]) > 1: mtmp = stats.mean(datetime_to_packetlist[time_it]) vtmp = stats.var(datetime_to_packetlist[time_it]) tmp_size = len(datetime_to_packetlist[time_it]) tmp_total = tmp_total + tmp_size*mtmp packetstatsout.write( "%s %f %f %i %i\n" % \ (time_it,mtmp,vtmp,tmp_total,tmp_size) ) else : mtmp = stats.mean(datetime_to_packetlist[time_it]) tmp_size = len(datetime_to_packetlist[time_it]) tmp_total = tmp_total + tmp_size*mtmp packetstatsout.write( "%s %f -1 %i %i\n" % \ (time_it,mtmp,tmp_total,tmp_size) ) #datetime_to_packetlist[time_it] timestamps = datetime_to_bytelist.keys() timestamps.sort()
aa = N.array(ll) print('\nCENTRAL TENDENCY') print('geometricmean:',stats.geometricmean(l), stats.geometricmean(lf), stats.geometricmean(a), stats.geometricmean(af)) print('harmonicmean:',stats.harmonicmean(l), stats.harmonicmean(lf), stats.harmonicmean(a), stats.harmonicmean(af)) print('mean:',stats.mean(l), stats.mean(lf), stats.mean(a), stats.mean(af)) print('median:',stats.median(l),stats.median(lf),stats.median(a),stats.median(af)) print('medianscore:',stats.medianscore(l),stats.medianscore(lf),stats.medianscore(a),stats.medianscore(af)) print('mode:',stats.mode(l),stats.mode(a)) print('\nMOMENTS') print('moment:',stats.moment(l),stats.moment(lf),stats.moment(a),stats.moment(af)) print('variation:',stats.variation(l),stats.variation(a),stats.variation(lf),stats.variation(af)) print('skew:',stats.skew(l),stats.skew(lf),stats.skew(a),stats.skew(af)) print('kurtosis:',stats.kurtosis(l),stats.kurtosis(lf),stats.kurtosis(a),stats.kurtosis(af)) print('mean:',stats.mean(a),stats.mean(af)) print('var:',stats.var(a),stats.var(af)) print('stdev:',stats.stdev(a),stats.stdev(af)) print('sem:',stats.sem(a),stats.sem(af)) print('describe:') print(stats.describe(l)) print(stats.describe(lf)) print(stats.describe(a)) print(stats.describe(af)) print('\nFREQUENCY') print('freqtable:') print('itemfreq:') print(stats.itemfreq(l)) print(stats.itemfreq(a)) print('scoreatpercentile:',stats.scoreatpercentile(l,40),stats.scoreatpercentile(lf,40),stats.scoreatpercentile(a,40),stats.scoreatpercentile(af,40)) print('percentileofscore:',stats.percentileofscore(l,12),stats.percentileofscore(lf,12),stats.percentileofscore(a,12),stats.percentileofscore(af,12)) print('histogram:',stats.histogram(l),stats.histogram(a))
def _fill_moment_results(self): """ Fills the result arrays used for storing the calculated moments common format: time, mean, mode, var, skewness, kurtosis, 95% confidence lower limit, 95% upper limit """ toprocess = [('stock_tom', self.c_stock, 2), ('stock_woody', self.c_stock, 3), ('stock_non_woody', self.c_stock, 4), ('stock_acid', self.c_stock, 5), ('stock_water', self.c_stock, 6), ('stock_ethanol', self.c_stock, 7), ('stock_non_soluble', self.c_stock, 8), ('stock_humus', self.c_stock, 9), ('change_tom', self.c_change, 2), ('change_woody', self.c_change, 3), ('change_non_woody', self.c_change, 4), ('change_acid', self.c_change, 5), ('change_water', self.c_change, 6), ('change_ethanol', self.c_change, 7), ('change_non_soluble', self.c_change, 8), ('change_humus', self.c_change, 9), ('co2', self.co2_yield, 2)] for (resto, dataarr, dataind) in toprocess: # filter time steps ts = numpy.unique(dataarr[:, 1]) # extract data for the timestep for timestep in ts: ind = numpy.where(dataarr[:, 1] == timestep) mean = stats.mean(dataarr[ind[0], dataind]) mode_res = stats.mode(dataarr[ind[0], dataind]) mode = mode_res[0] var = stats.var(dataarr[ind[0], dataind]) skew = stats.skew(dataarr[ind[0], dataind]) kurtosis = stats.kurtosis(dataarr[ind[0], dataind]) if var > 0.0: sd2 = 2 * math.sqrt(var) else: sd2 = var res = [[ timestep, mean, mode[0], var, skew, kurtosis, mean - sd2, mean + sd2 ]] if resto == 'stock_tom': self.md.stock_tom = numpy.append(self.md.stock_tom, res, axis=0) elif resto == 'stock_woody': self.md.stock_woody = numpy.append(self.md.stock_woody, res, axis=0) elif resto == 'stock_non_woody': self.md.stock_non_woody = numpy.append(\ self.md.stock_non_woody, res, axis=0) elif resto == 'stock_acid': self.md.stock_acid = numpy.append(self.md.stock_acid, res, axis=0) elif resto == 'stock_water': self.md.stock_water = numpy.append(self.md.stock_water, res, axis=0) elif resto == 'stock_ethanol': self.md.stock_ethanol = numpy.append(self.md.stock_ethanol, res, axis=0) elif resto == 'stock_non_soluble': self.md.stock_non_soluble = numpy.append( self.md.stock_non_soluble, res, axis=0) elif resto == 'stock_humus': self.md.stock_humus = numpy.append(self.md.stock_humus, res, axis=0) elif resto == 'change_tom': self.md.change_tom = numpy.append(self.md.change_tom, res, axis=0) elif resto == 'change_woody': self.md.change_woody = numpy.append(self.md.change_woody, res, axis=0) elif resto == 'change_non_woody': self.md.change_non_woody = numpy.append(\ self.md.change_non_woody, res, axis=0) elif resto == 'change_acid': self.md.change_acid = numpy.append(self.md.change_acid, res, axis=0) elif resto == 'change_water': self.md.change_water = numpy.append(self.md.change_water, res, axis=0) elif resto == 'change_ethanol': self.md.change_ethanol = numpy.append( self.md.change_ethanol, res, axis=0) elif resto == 'change_non_soluble': self.md.change_non_soluble = numpy.append( self.md.change_non_soluble, res, axis=0) elif resto == 'change_humus': self.md.change_humus = numpy.append(self.md.change_humus, res, axis=0) elif resto == 'co2': self.md.co2 = numpy.append(self.md.co2, res, axis=0)