python 数据分析 数据模型

前言

  • 在大多数现实情况下,模型可以简化并通过模型对显式进行探索,本章可以学到的东西
  • 数据分析中使用基础模型
  • 使用积累分布函数和概率密度来描述变量
  • 使用preceding function(?)和很多工具来进行点估计和生成符合特定分布的随机数
  • 离散和连续随机变量

模型和实验

  • 模型倾向于统计模型,在随机实验情况下
  • 需要导入的包和包别名
from pandas import Series,DateFrame
import numpy.random as rnd
import scipy.stats as st #统计相关函数

积累分布函数

  • 虽然直方图能够直观感受数据的一个分布情况,但有时候我们需要精准的数据表达,那么利用积累分布函数
  • 生成一个符合正态分布的随机数据
mean=0   #均值
stdev=1  #标准差
nvalues=10  #随机点的个数
norm_variate=rnd.normal(mean,stdev,nvalues)
  • 这段代码生成伪随机数,电脑不可能生成完全随机数,生成数字都会服从一个给定的分布。当然,这样的随机已经能满足大多数数据分析的需要。
  • 积累分布函数以后都简称为cdf,在一个实际数据集中,cdf函数会是一个阶段函数

分布

  • 数据分布分为离散分布和随机分布,对于离散或者连续变量数据分布会使用Scipy.stats中统计模块来统计数据,官方文档地址:https://docs.scipy.org/doc/scipy/reference/stats.html

  • 模块组合函数命名方式
    st.< rv_name>.< function>(< argument>)

    • st:选择统计模块包
    • rv_name:分布名称
    • function:计算的具体函数
    • argument:函数的参数
  • 模块中每个分布都会有的部分函数:

    • rvs():生成伪随机数
    • cdf():积累分布函数
    • pdf(),pmf():连续变量:pdf随机变量概率密度;离散变量:pmf概率质量函数
    • ppf():积累分布函数的逆函数,百分数点->变量数值
    • stats():分布的统计量
    • mean(),std(),or var():变量均值,标准差,方差
    • fit():将数据来拟合变量分布,返回数据的shape,location(位置),scale(反映数据形状)参数
  • 对于正态分布,location对应mean,scale对应标准差std

  • 例子:绘制一个正态分布的CDF函数和PDF函数图形

    • 数据(模拟的是年龄超过20岁女性的身高分布):
      N(样本点个数)=4857
      mean(均值)=63.8
      serror(标准误差)=0.06
      sdev(样本标准差)=serror*sqrt(N)[公式]
      rvnorm=st.norm(loc-mean,scale=sdev)
      x轴数据范围:xmin=mean-3sdev,xmax=mean+3sdev (根据2
      3delta原则)
    • 代码
    xmin = mean-3*sdev 
    
    xmax = mean+3*sdev 
    
    xx = np.linspace(xmin,xmax,200) 
    
    plt.figure(figsize=(8,3)) 
    
    plt.subplot(1,2,1) 
    
    plt.plot(xx, rvnorm.cdf(xx)) 
    
    plt.title('Cumulative distribution function') 
    
    plt.xlabel('Height (in)') 
    
    plt.ylabel('Proportion of women') 
    
    plt.axis([xmin, xmax, 0.0, 1.0]) 
    
    plt.subplot(1,2,2) 
    
    plt.plot(xx, rvnorm.pdf(xx)) 
    
    plt.title('Probability density function') 
    
    plt.xlabel('Height (in)') 
    
    plt.axis([xmin, xmax, 0.0, 0.1]);
    
    • 结果


      正态分布CDF与PDF
      正态分布CDF与PDF
    • 计算这里rvnorm的1/4百分位数可以使用ppf(),那么数值为rvnorm.ppf(0.25)
    • 计算该数据的点估计参数可以由如下代码得到:
    mean,variance,skew,kurtosis=rvnorm.stats(moments='mvks')
    
      - mean:变量的均值
      - variance:变量方差
      - skew:偏度,反映数据的对称程度
      - kurtosis:峰度值,反映数据的峰是尖锐的还是平滑的,正态分布的峰度值=0,因为该分布是参考分
    
  • weibull分布

    • 参数:eta(scale参数),beta(shape参数),loc 都是正数
    • 描述设备故障与时间的关系
    • 参数描述
      • shape参数beta:
        1. beta<1:
          故障率随着时间递减,反映机器是有缺陷的,使用过程会很早就失灵
        2. beta=1:
          故障率是常数,那么随机数与时间之间的分就是指数分布
        3. beta>1:
          故障率随着时间递增而递增,反映正常使用机器的过程
      • scale参数 yta决定分布传播的范围,scale参数越大那么对于机器故障的估计就存在越大不确定性。注意该分布中scale参数不是模型的标准差
    • 例子:
      • 数据:
        eta = 1.0 
        beta = 1.5 
        rvweib = st.weibull_min(beta, scale=eta)
    
    • 根据数据绘制直方图
      weib_variates = rvweib.rvs(size=500)
      weib_df = DataFrame(weib_variates,columns=['weibull_variate']) 
      
      weib_df.hist(bins=30)
      
    • 结果


      enter image description here
      enter image description here
  • 概率分布函数pdf

    • 反映连续随机变量概率密度,其中一段与x轴之间面积表示概率
  • 概率质量函数pmf

    • 表示离散变量

模型的产生

  • 模型是用来简化数据计算模式,概率模型考虑相关因素,重要指标,近似模拟数据从而简化计算模式
  • 例子
    • 二项分布模型(N,P)
      • 有N个离散变量,变量之间相互独立,每个变量服从二次分布,每个变量=1的概率都是P
      • 适用情景:质量控制系,1代表质量达标的项,0代表质量不达标的项,那么就可以得到系统中达标项的模型
    • 可以利用pmf函数来查看二项分布的分布情况
    • 代码
    N = 20 
    
    p = 0.5 
    
    rv_binom = st.binom(N, p)
    xx = np.arange(N+1) 
    
    cdf = rv_binom.cdf(xx) 
    
    pmf = rv_binom.pmf(xx) 
    
    xvalues = np.arange(N+1) 
    
    plt.figure(figsize=(9,3.5)) 
    
    plt.subplot(1,2,1) 
    
    plt.step(xvalues, cdf, lw=2, color='brown') 
    
    plt.grid(lw=1, ls='dashed') 
    
    plt.title('Binomial cdf, $N=20$, $p=0.5$', fontsize=16) 
    
    plt.subplot(1,2,2) 
    
    left = xx - 0.5 
    
    plt.bar(left, pmf, 1.0, color='CornflowerBlue') 
    
    plt.title('Binomial pmf, $N=20$, $p=0.5$', fontsize=16)#使用latex公式写法 
    
    plt.axis([0, 20, 0, .18]);
    
    • 结果


      enter image description here
      enter image description here
    • 当样本数量很大时,二项分布近似正态分布,那么就有de Moivre估计,估计的正态分布参数与二项分布有一样的均值和方差,mean=NP std=sqrt(NP*(1-P))

多变量分布

  • 多变量分布就是不仅观察一个样本数据,会有多种类型的样本数据;除了数据分布情况,可能会关注变量之间的相关性
  • 典型多变量分布是双变量正态分布,该分布是scipy.stats中一部分,那么就可以利用该部分生成随机变量
  • 生成服从双变量正态分布的代码:
binorm_varites=st.multivariate_normal.rvs(mean=[0,0],size=300)#方差是默认值1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容