python常用统计量的计算

简介: python常用统计量的计算
# -*- coding: utf-8 -*-
"""
Created on Tue Jun 27 09:19:25 2017
@author: yunjinqi 
E-mail:yunjinqi@qq.com 
Differentiate yourself in the world from anyone else.
"""
import pandas as pd  
import scipy.stats as sts  
import numpy as np
#葛洲坝
df=pd.read_excel('C:/Users/HXWD/Desktop/600068.xlsx')  
df.head()  
############################################计算数据的基本统计量:均值,方差,偏度,峰度等  
index=list(df.columns)
stock068=[]
for i in range(1,4):
    scores=np.array(df.ix[::,i])    
    pe=df.ix[::,i].describe()
    pe.name='葛洲坝'+index[i]
    print(pe)
    pe['偏度']=sts.skew(scores)
    pe['峰度']=sts.kurtosis(scores)
    stock068.append(pe)
stock068=pd.DataFrame(stock068).T
print (stock068)
#海澜之家
df=pd.read_excel('C:/Users/HXWD/Desktop/600398.xlsx')  
df.head()  
############################################计算数据的基本统计量:均值,方差,偏度,峰度等  
index=list(df.columns)
stock398=[]
for i in range(1,4):
    scores=np.array(df.ix[::,i])    
    pe=df.ix[::,i].describe()
    pe.name='海澜之家'+index[i]
    print(pe)
    pe['偏度']=sts.skew(scores)
    pe['峰度']=sts.kurtosis(scores)
    stock398.append(pe)
stock398=pd.DataFrame(stock398).T
print (stock398)
#data=pd.concat([stock068,stock398],axis=1, join_axes=[data.index])
data=stock068.join(stock398)
print (data)
data.to_csv('统计.csv')

#常用统计量的计算


#2018.01.16重新回来看峰度的计算,发现sts.kurtosis(),df.kurt()两个计算均存在某些问题,与eviews的描述性统计结果不一致,可能是计算口径不同。借用一篇别人编写纯代码计算的公式,得到了和eviews一样的结果,代码如下

import math
def calc(data):
    n = len(data)
    niu = 0.0
    niu2 = 0.0
    niu3 = 0.0
    for a in data:
        niu += a
        niu2 += a**2
        niu3 += a**3
    niu/= n   #这是求E(X)
    niu2 /= n #这是E(X^2)
    niu3 /= n #这是E(X^3)
    sigma = math.sqrt(niu2 - niu*niu) #这是D(X)的开方,标准差
    return [niu,sigma,niu3] #返回[E(X),标准差,E(X^3)]
def calc_stat(data):
    [niu,sigma,niu3] = calc(data)
    n = len(data)
    niu4 = 0.0
    for a in data:
        a -= niu
        niu4 += a ** 4
    niu4 /= n   
    skew = (niu3 - 3*niu*sigma**2 - niu**3)/(sigma**3)
    kurt =  niu4/(sigma**4)
    return [niu,sigma,skew,kurt] #返回了均值,标准差,偏度,峰度


建议计算峰度的程序使用下面的代码

目录
相关文章
|
19天前
|
Python
python幂运算——计算x的y次方
python幂运算——计算x的y次方
27 0
|
1天前
|
Python
python计算线段角度
python计算线段角度
2 0
|
8天前
|
安全 数据安全/隐私保护 Python
Python的整型在计算中具有以下优势
【5月更文挑战第6天】Python整型提供任意精度整数计算,无溢出风险;支持多种算术运算,操作简便;作为不可变类型保证数据安全;能进行高级数学运算,并有NumPy等库加持,适合数值分析和科学计算。
18 0
|
8天前
|
Python
Python的整型在计算中的精度可以通过使用二进制或十进制表示来体现
【5月更文挑战第6天】Python整型支持十、二、八、十六进制表示,其中十进制默认,二进制(0b前缀)、八进制(0o前缀)、十六进制(0x前缀)。计算时以二进制精度处理,确保结果准确。例如:123的二进制是0b1111011,八进制是0o173,十六进制是0x7b。
13 0
|
19天前
|
Python
Python计算股票投资组合的风险价值(VaR)
Python计算股票投资组合的风险价值(VaR)
|
21天前
|
数据可视化 Python
【视频】风险价值VaR原理与Python蒙特卡罗Monte Carlo模拟计算投资组合实例
【视频】风险价值VaR原理与Python蒙特卡罗Monte Carlo模拟计算投资组合实例
|
26天前
|
机器学习/深度学习 供应链 算法
Python配对交易策略统计套利量化交易分析股票市场
Python配对交易策略统计套利量化交易分析股票市场
|
27天前
|
Python Serverless API
Python风险价值计算投资组合VaR、期望损失ES
Python风险价值计算投资组合VaR、期望损失ES
Python风险价值计算投资组合VaR、期望损失ES
|
27天前
|
数据可视化 Python
PYTHON贝叶斯推断计算:用BETA先验分布推断概率和可视化案例
PYTHON贝叶斯推断计算:用BETA先验分布推断概率和可视化案例
|
27天前
|
数据可视化 Python
Python蒙特卡罗(Monte Carlo)模拟计算投资组合的风险价值(VaR)
Python蒙特卡罗(Monte Carlo)模拟计算投资组合的风险价值(VaR)