检测样本分布是不是正态分布,绘制其正态分布概率图及异常值检测-python代码实现

37 篇文章 1 订阅
30 篇文章 0 订阅

根据一份正态分布数据绘制正态分布概率图及异常值检测-python代码实现

当我们拿到一份数据时,想要检测数据概率分布是不是正太分布,一个好的方法是绘制其概率图
这里我们根据自制的数据首先生成一份正太分布数据

import numpy   as np
p=np.random.randn(10000)

此时我们可以查看其方差,标准差,和均值

print(p.mean())
print(p.var())#方差
print(p.std())#标准差

正太分分布,均值为0,方差和标准差都为1,如果输出家、结果不符合上述条件我们要对其进行标准化,本博客是生成的数据不需要标准化,如果读者碰到不符合条件的情况,可以进行如下操作

p=(p-p.mean())/(p.std())

之后我们可以绘制对其进行变换,绘制其数据分布概率图


import matplotlib.pyplot as plt

plt.style.use("ggplot")


p.sort()
a=(p-p.mean())**2
b=2*p.var()
c=np.exp(-a/b)
p_nd=1/(np.sqrt(2*np.pi*p.var()))*c
# print(p_nd)
# print(np.exp(-a/b))
plt.plot(p,p_nd)
plt.show()

绘图如下所示
在这里插入图片描述
数据分布显然符合正太分布的

此时我们可以进行3 σ \sigma σ异常值检验,如果对于数据大于3 σ \sigma σ或者小于-3 σ \sigma σ,我们可以认为他们为异常值
可使用费、如下代码进行异常值检测


Outlier_value=p[(p>p.std()*3) |  (p<-p.std()*3)]
print(Outlier_value)
print(len(Outlier_value))

博主运行结果如下
在这里插入图片描述

实验的全部代码如下

import os
import pandas
import matplotlib.pyplot as plt
import numpy   as np

plt.style.use("ggplot")
#
#
# y=np.random.random(100)
# x=list(range(len(y)))
# plt.plot(x,y)
# #plt.show()
# print(np.zeros(25))


p=np.random.randn(10000)
print(p)
print(p.mean())
# print(p.mudian())
print(p.var())#方差
print(p.std())#标准差
#p.sort()
#plt.hist(p,bins=1000)

p.sort()
a=(p-p.mean())**2
b=2*p.var()
c=np.exp(-a/b)
p_nd=1/(np.sqrt(2*np.pi*p.var()))*c
# print(p_nd)
# print(np.exp(-a/b))
plt.plot(p,p_nd)
#plt.show()
print("dffa")
#
Outlier_value=p[(p>p.std()*3) |  (p<-p.std()*3)]
print(Outlier_value)
print(len(Outlier_value))
#print("dkohsfiomsa")


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值