概率统计Python计算:一元线性回归应用——控制

2024-08-22 22:48

本文主要是介绍概率统计Python计算:一元线性回归应用——控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
对一元线性回归模型 x = { x 1 , x 2 , ⋯ , x n } x=\{x_1,x_2,\cdots,x_n\} x={x1,x2,,xn} Y = { Y 1 , Y 2 , ⋯ , Y n } Y=\{Y_1,Y_2,\cdots,Y_n\} Y={Y1,Y2,,Yn} Y i Y_i Yi~ N ( a x i + b , σ 2 ) , i = 1 , 2 , ⋯ , n N(ax_i+b, \sigma^2),i=1,2,\cdots,n N(axi+b,σ2)i=1,2,,n,若算得参数 a a a b b b σ 2 \sigma^2 σ2的估计量 a ∧ \stackrel{\wedge}{a} a b ∧ \stackrel{\wedge}{b} b σ 2 ∧ \stackrel{\wedge}{\sigma^2} σ2。对给定的置信水平 1 − α 1-\alpha 1α以及与诸 Y i , i = 1 , 2 , ⋯ , n Y_i,i=1,2,\cdots,n Yi,i=1,2,,n独立的随机变量 Y Y Y~ N ( a x + b , σ 2 ) N(ax+b,\sigma^2) N(ax+b,σ2)的某个取值范围 Ω \Omega Ω,寻求使得
P ( Y ∈ Ω ) ≥ 1 − α P(Y\in\Omega)\geq1-\alpha P(YΩ)1α
成立的 x x x构成的集合其上(下)界的估计量问题,称为控制问题
例1设炼铝厂所产铸模的抗张强度与所用铝的硬度有关。设当铝的硬度为 x x x时,抗张强度 Y Y Y~ N ( a x + b , σ 2 ) N(ax+b,\sigma^2) N(ax+b,σ2),其中 a a a b b b σ 2 \sigma^2 σ2均未知。对于一系列的 x x x值,测得相应的抗张强度如下表
硬度 x : 51 , 53 , 60 , 64 , 68 , 70 , 70 , 72 , 83 , 84 抗张强度 Y : 283 , 293 , 290 , 256 , 288 , 349 , 340 , 354 , 324 , 343 \text{硬度}x: 51,53,60,64,68,70,70,72,83,84\\ \text{抗张强度}Y: 283,293,290,256,288,349,340,354,324,343 硬度x:51,53,60,64,68,70,70,72,83,84抗张强度Y:283,293,290,256,288,349,340,354,324,343
要求铸模的抗张强度 Y Y Y的值介于260~340之间,则铝材的硬度应如何控制(置信水平 1 − α = 0.95 1-\alpha=0.95 1α=0.95)?就是一个典型的控制问题。
由于 Y − a x − b σ \frac{Y-{a}x-{b}}{{\sigma}} σYaxb~ N ( 0 , 1 ) N(0, 1) N(0,1),用 a ∧ \stackrel{\wedge}{a} a b ∧ \stackrel{\wedge}{b} b σ 2 ∧ \stackrel{\wedge}{\sigma^2} σ2替代 a a a b b b σ 2 \sigma^2 σ2 Y − a ∧ x − b ∧ σ ∧ \frac{Y-\stackrel{\wedge}{a}x-\stackrel{\wedge}{b}}{\stackrel{\wedge}{\sigma}} σYaxb近似服从 N ( 0 , 1 ) N(0,1) N(0,1)。对于 Ω = ( y ∗ , y ∗ ∗ ) \Omega=(y^*, y^{**}) Ω=(y,y∗∗)的情形,其中 y ∗ y^* y y ∗ ∗ y^{**} y∗∗为实数,且满足 y ∗ ∗ − y ∗ > 2 z α / 2 σ ∧ y^{**}-y^*>2z_{\alpha/2}\stackrel{\wedge}{\sigma} y∗∗y>2zα/2σ,则必有
P ( y ∗ < Y < y ∗ ∗ ) = P ( y ∗ − a ∧ x − b ∧ σ ∧ < Y − a ∧ x − b ∧ σ ∧ < y ∗ ∗ − a ∧ x − b ∧ σ ∧ ) . P(y^*<Y<y^{**})=P\left(\frac{y^*-\stackrel{\wedge}{a}x-\stackrel{\wedge}{b}}{\stackrel{\wedge}{\sigma}}<\frac{Y-\stackrel{\wedge}{a}x-\stackrel{\wedge}{b}}{\stackrel{\wedge}{\sigma}}<\frac{y^{**}-\stackrel{\wedge}{a}x-\stackrel{\wedge}{b}}{\stackrel{\wedge}{\sigma}}\right). P(y<Y<y∗∗)=P σyaxb<σYaxb<σy∗∗axb .
解不等式 y ∗ − a ∧ x − b ∧ σ ∧ ≤ − z α / 2 \frac{y^*-\stackrel{\wedge}{a}x-\stackrel{\wedge}{b}}{\stackrel{\wedge}{\sigma}}\leq-z_{\alpha/2} σyaxbzα/2 x ∗ = 1 a ∧ ( y ∗ − b ∧ + z α / 2 σ ∧ ) x^*=\frac{1}{\stackrel{\wedge}{a}}(y^*-\stackrel{\wedge}{b}+z_{\alpha/2}\stackrel{\wedge}{\sigma}) x=a1(yb+zα/2σ),解 y ∗ ∗ − a ∧ x − b ∧ σ ∧ ≥ z α / 2 \frac{y^{**}-\stackrel{\wedge}{a}x-\stackrel{\wedge}{b}}{\stackrel{\wedge}{\sigma}}\geq z_{\alpha/2} σy∗∗axbzα/2 x ∗ ∗ = 1 a ∧ ( y ∗ ∗ − b ∧ − z α / 2 σ ∧ ) x^{**}=\frac{1}{\stackrel{\wedge}{a}}(y^{**}-\stackrel{\wedge}{b}-z_{\alpha/2}\stackrel{\wedge}{\sigma}) x∗∗=a1(y∗∗bzα/2σ)。则
P ( y ∗ < Y < y ∗ ∗ ) = P ( y ∗ − a ∧ x ∗ − b ∧ σ ∧ ≤ − z α / 2 < Y − a ∧ x − b ∧ σ ∧ < z α / 2 ≤ y ∗ ∗ − a ∧ x ∗ ∗ − b ∧ σ ∧ ) ≥ 1 − α . P(y^*<Y<y^{**})=P\left(\frac{y^*-\stackrel{\wedge}{a}x^*-\stackrel{\wedge}{b}}{\stackrel{\wedge}{\sigma}}\leq-z_{\alpha/2}<\frac{Y-\stackrel{\wedge}{a}x-\stackrel{\wedge}{b}}{\stackrel{\wedge}{\sigma}}<z_{\alpha/2}\leq\frac{y^{**}-\stackrel{\wedge}{a}x^{**}-\stackrel{\wedge}{b}}{\stackrel{\wedge}{\sigma}}\right)\geq1-\alpha. P(y<Y<y∗∗)=P σyaxbzα/2<σYaxb<zα/2σy∗∗ax∗∗b 1α.
于是,欲使 y ∗ < Y < y ∗ ∗ y^*<Y<y^{**} y<Y<y∗∗,在置信水平 1 − α 1-\alpha 1α下,需控制 x ∈ ( x ∗ , x ∗ ∗ ) x\in(x^*, x^{**}) x(x,x∗∗) a ∧ > 0 \stackrel{\wedge}{a}>0 a>0)或 x ∈ ( x ∗ ∗ , x ∗ ) x\in(x^{**},x^*) x(x∗∗,x) a ∧ < 0 \stackrel{\wedge}{a}<0 a<0)。将上述思想写成如下代码。

from scipy.stats import norm                        #导入norm
def control(a, b, s, y1, y2, alpha):              	#函数定义z1,z2=norm.interval(1-alpha)                    #N(0,1)的双侧分位点c1=y1-b                                         #y*-bc2=y2-b                                         #y**-bdy1=z1*s                                        #z1*sdy2=z2*s                                        #z2*sp1=(c1-dy1)/a                                   #关于y*的端点p2=(c2-dy2)/a                                   #关于y**的端点if p2<p1:                                       #确定左右端点(p1,p2)=(p2,p1)return (p1, p2)

程序的第3行计算标准正态分布对应 1 − α 1-\alpha 1α的双侧分位点 − z α / 2 -z_{\alpha/2} zα/2 z α / 2 z_{\alpha/2} zα/2,记为z1和z2。第4、5行分别计算 y ∗ − b ∧ y^*-\stackrel{\wedge}{b} yb y ∗ ∗ − b ∧ y^{**}-\stackrel{\wedge}{b} y∗∗b,记为c1和c2。第6、7行分别计算 − z α / 2 σ ∧ -z_{\alpha/2}\stackrel{\wedge}{\sigma} zα/2σ z α / 2 σ ∧ z_{\alpha/2}\stackrel{\wedge}{\sigma} zα/2σ,记为dy1和dy2。第8、9行分别计算 1 a ∧ ( y ∗ − b ∧ + z α / 2 σ ∧ ) \frac{1}{\stackrel{\wedge}{a}}(y^*-\stackrel{\wedge}{b}+z_{\alpha/2}\stackrel{\wedge}{\sigma}) a1(yb+zα/2σ) 1 a ∧ ( y ∗ ∗ − b ∧ − z α / 2 σ ∧ ) \frac{1}{\stackrel{\wedge}{a}}(y^{**}-\stackrel{\wedge}{b}-z_{\alpha/2}\stackrel{\wedge}{\sigma}) a1(y∗∗bzα/2σ),记为p1和p2。第10~11行的if语句确定控制区间的左、右端点。需要提醒的是,调用函数control前需自行检验 y ∗ ∗ − y ∗ > 2 z α / 2 σ ∧ y^{**}-y^*>2z_{\alpha/2}\stackrel{\wedge}{\sigma} y∗∗y>2zα/2σ。下列代码完成例1的计算。

import numpy as np                          				#导入numpy
from scipy.stats import linregress          				#导入linregress
alpha=0.05                                  				#设置数据
y1=260
y2=340
x=np.array([51, 53, 60, 64, 68, 70, 70, 72, 83, 84])
y=np.array([283, 293, 290, 286, 288, 349, 340, 354, 324, 343])
n=x.size                                    				#样本容量
x_bar=x.mean()                              				#x数据均值
lxx=((x-x_bar)**2).sum()                    				#lxx
res=linregress(x, y)                        				#调用linregress
a=res.slope                                 				#读取a
b=res.intercept                             				#读取b
s=res.stderr*np.sqrt((n-2)*lxx/n)           				#计算s
print('x in (%.0f, %.0f)'%control(a, b, s, y1, y2, alpha))	#计算控制区间

程序的第3~7行设置原始数据。第9行计算样本容量 n n n,第9行计算 x x x的数据均值 x ‾ \overline{x} x记为x_bar。第10行计算 l x x = ∑ i = 1 n ( x i − x ‾ ) l_{xx}=\sum\limits_{i=1}^n(x_i-\overline{x}) lxx=i=1n(xix)记为lxx。第11行调用函数linregress计算一元回归分析,返回值记为res。第12、13行分别读取 a ∧ \stackrel{\wedge}{a} a b ∧ \stackrel{\wedge}{b} b,记为a和b。第14行利用res的字段stderr( = n σ 2 ∧ ( n − 2 ) l x x =\sqrt{\frac{n\stackrel{\wedge}{\sigma^2}}{(n-2)l_{xx}}} =(n2)lxxnσ2 )乘以 ( n − 2 ) l x x n \sqrt{\frac{(n-2)l_{xx}}{n}} n(n2)lxx ,计算 σ ∧ \stackrel{\wedge}{\sigma} σ记为s。第15行调用函数contol计算 260 < Y < 340 260<Y<340 260<Y<340的控制区间并输出。运行程序,输出

x in (59, 60)

即若要求铸模的抗张强度 Y Y Y的值介于260~340之间,则铝材的硬度应控制在(59, 60)范围内。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好
返回《导引》

这篇关于概率统计Python计算:一元线性回归应用——控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097618

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方