鸢尾花数据集-推断性统计分析-置信区间-python篇

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import sklearn.datasets
from sklearn.datasets import load_iris
import warnings

sns.set(style=“darkgrid”)
plt.rcParams[“font.family”]=“SimHei”
plt.rcParams[“axes.unicode_minus”]=False
warnings.filterwarnings(“ignore”)

iris = load_iris()
iris.target.shape
data = np.concatenate([iris.data, iris.target.reshape(-1, 1)], axis=1)
iris.target.dtype
iris.target.shape
data.shape
data = pd.DataFrame(data,
columns=[“sepal_length”, “sepal_width”, “petal_length”, “petal_width”, “type”])
print(data[“petal_length”].mean())

#定义总体数据
#loc:均值
#scale:标准差
#size:数组的大小,即数组中含有元素的个数
all_=np.random.normal(loc=30, scale=80, size=10000)
print(all_)
all_.shape
#创建均值数组,用来存放每次抽样(每个样本)的均值
mean_arr = np.zeros(1000)
#循环1000次,获取1000个样本
for i in range(len(mean_arr)):
#进行随机抽样,计算每个样本的均值,并放入数组中
#size:样本容量
#replace:是否为放回抽样
mean_arr[i] = np.random.choice(all_, size=64, replace=False).mean()
#样本均值构成正态分布,该正态分布的均值等于总体均值,该正态分布的标准差(标准误)
#等于总体标准差/根号n
all_.shape
print(“样本均值构成正态分布----均值:”, mean_arr.mean())
print(“样本均值构成正态分布----标准差(标准误):”, mean_arr.std())
print(“偏度:”, pd.Series(mean_arr).skew())
sns.distplot(mean_arr)

#定义标准差
scale = 50
#定义数据
x = np.random.normal(0, scale, size=100000)
#定义标准差的倍数,倍数从1到3
for times in range(1, 4):
y = x[(x > -times * scale) & (x < times * scale)]
print(f"{times}倍标准差:")
print(f"{len(y) * 100 / len(x)}%")

#使用随机数生成总体均值,其值未知
mean = np.random.randint(-10000, 10000)
#定义总体标准差
std = 50
#定义样本容量
n = 50
#随机生成总体数据
all_ = np.random.normal(loc=mean, scale=std, size=10000)
#从总体中抽取若干个体,构成一个样本
sample = np.random.choice(all_, size=n, replace=False)
sample_mean = sample.mean()
print(“总体均值”, mean)
print(“一次抽样的样本均值”, sample_mean)
plt.plot(mean, 0, marker="*", color=“orange”, ms=15, label=“总体均值”)
plt.plot(sample_mean, 0, marker=“o”, color=“r”, label=“样本均值”)
#计算标准误差。
se = std / np.sqrt(n)
min_ = sample_mean - 1.96 * se
max_ = sample_mean + 1.96 * se
print(“置信区间(95%置信度):”, (min_, max_))
plt.hlines(0, xmin=min_, xmax=max_, colors=“b”, label=“置信区间”)
plt.axvline(min_, 0.4, 0.6, color=“r”, ls="–", label=“左边界”)
plt.axvline(max_, 0.4, 0.6, color=“g”, ls="–", label=“右边界”)
plt.legend()

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读