登录    关于
马育民老师的博客

马育民的博客

QQ:65242847

生成父母平均身高和孩子身高的测试数据

需要了解

  1. 高尔顿的父母与孩子身高规律参见下文:
    高尔顿与回归分析的起源

  2. numpy正态分布随机数组
    https://www.malaoshi.top/show_1EF3oY0pMDWs.html

目的

高尔顿收集1000多例父母和孩子的身高,并总结出父母平均身高与孩子身高的规律:Y= 0.8567+0.516*X(y是孩子身高,x是父母身高)

我们知道此规律后,模拟出1000例数据:

  1. 首先生成父母平均身高:1.65米-1.85米的1000条记录

  2. 我们根据父母和孩子的身高规律:Y= 0.8567+0.516*X,生成孩子的身高
    注意: 真实生活中,孩子不可能是这个身高,会有上下浮动

  3. 以第二步的孩子身高为基础,生成正态分布的随机身高

代码实现

import numpy as np

# 记录的总数
count=1000
# 父母平均身高
parent_height=np.linspace(1.65,1.85,count)
# 根据高尔顿的规律,生成孩子的身高
y= 0.8567+0.516*parent_height
# 以上面孩子的身高为基础,生成正态分布的随机身高
son_height=np.random.normal(loc=y, scale=0.03, size=count)
# print(son_height)

画成图

import matplotlib.pyplot as plt
# 画成图像,便于理解
plt.plot(parent_height)
plt.scatter(parent_height,son_height)
plt.show()

执行后,生成图像如下图:

x轴是数量,y轴是父母身高


x轴是父母身高,y轴是孩子身高


原文出处:https://malaoshi.top/show_1EF3opdAFDCf.html