06回归与相关

ops/2024/10/30 19:00:05/

文章目录

      • 1.Simple linear regression
        • (1)影响因子
        • (2)线性回归的假定
      • 2.Simple linear correlation
        • (1)相关性的解释
        • (2)不同的相关性

方差分析

组间差异和

分类变量解释连续变量的情况用回归和相关。

线性回归是因果分析,相关性没有因果分析。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.Simple linear regression

让残差最小。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

是斜率b, x的平方的加和是总变异。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

回归分析也是线性模型,方差具有可加性。

每个都可以计算。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

y的总变异。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

plot(trees$Girth, trees$Height)
abline(lm(trees$Height~trees$Girth))
X = trees$Girth
Y = trees$Height# The famous five sums
sum(X)
sum(X^2)
sum(Y)
sum(Y^2)
sum(X*Y)sum(X);sum(X^2);sum(Y);sum(Y^2);sum(X*Y)
# matrix multiplication
XY <- cbind(1,X,Y)
t(XY) %*% XY

式子是相等的。

# Sums of squares and sums of products
SSX = sum((X-mean(X))^2); SSX
SSY = sum((Y-mean(Y))^2); SSY
SSXY = sum((Y-mean(Y))*(X-mean(X))); SSXY# 后面的是前面的
# The alternative way using the 5 sums
SSX = sum(X^2)-sum(X)^2/length(X); SSX
SSY = sum(Y^2)-sum(Y)^2/length(Y); SSY
SSXY = sum(X*Y)-sum(X)*sum(Y)/length(X); SSXY
# Model (Y=a+bX) coefficients
b = SSXY/SSX; b
a = mean(Y)-b*mean(X); a
lm(Y~X)

证明:生成这条直线是过均值点的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

连续变量需要减去一个变量。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

# Analysis of variance in regression
anova(lm(Y~X)) # data: trees
qf(0.95,1,29) # 4.18
1-pf(10.707,1,29)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

# Unreliability estimates for the parameters
summary(lm(Y~X))
confint(lm(Y~X))

斜率的标准error表明

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

模型中x解释的变异。使得残差最小,然后就是R方最大。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

# Degree of scatter
SSY = deviance(lm(Y~1)); SSY # SSY
SSE = deviance(lm(Y~X)); SSE # SSE
rsq = (SSY-SSE)/SSY; rsq # R square
summary(lm(Y~X))[[8]]

下面的代码是R方和调整过的R方。事实上,当涉及到多变量的时候,会用调整后的R方。

summary(lm(Volume~Girth, trees))$r.squared# 当涉及到多个变量时候,会进行矫正
summary(lm(Volume~Girth, trees))$adj.r.squared

n是记录的行数,数据量大的话不支持多个变量。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

各个名词的区别。R方是用来解释能解释的变异。F 统计量衡量已解释的数占未解释数的比例

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里计算的t值和后文有较大的关系。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

summary(lm(Y~X))[[4]][4] # The standard error of the slope
summary(lm(Y~X))[[4]]

中间是最准的。样本量越大,预测越准。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个是实验设计。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

预测空间在外面,置信空间在里面。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

# Prediction using the fitted model
model <- lm(Y~X)
predict(model, list(X = c(14,15,16)))
ci.lines<-function(model){
xm <- mean(model[[12]][,2])
n <- length(model[[12]][[2]])
ssx<- sum(model[[12]][2]^2)- sum(model[[12]][2])^2/n
s.t<- qt(0.975,(n-2))
xv <- seq(min(model[[12]][2]),max(model[[12]][2]),
(max(model[[12]][2])-min(model[[12]][2]))/100)
yv <- coef(model)[1]+coef(model)[2]*xv
se <- sqrt(summary(model)[[6]]^2*(1/n+(xv-xm)^2/ssx))
ci <- s.t * se
uyv<- yv + ci
lyv<- yv - ci
lines(xv, uyv, lty=2)
lines(xv, lyv, lty=2)
}
plot(X, Y, pch = 16)
abline(model)
ci.lines(model)
# Another method
X = trees$Girth; Y = trees$Height
model <- lm(Y~X)
plot(X, Y, pch = 16, ylim=c(60,95))
xv <- seq(8,22,1)
y.c <- predict(model,list(X=xv),int="c") # “c”: 95% CI
y.p <- predict(model,list(X=xv),int="p") # “p”: prediction
matlines(xv, y.c, lty=c(1,2,2), lwd=2, col="black")
matlines(xv, y.p, lty=c(1,2,2), lwd=1, col=c("black","grey","grey")) 

x的总变异,y的总变异。

x1 <- rep( 0:1, each=500 ); x2 <- rep( 0:1, each=250, length=1000 )
y <- 10 + 5*x1 + 10*x2 - 3*x1*x2 + rnorm(1000,0,2) #values
fit1 <- lm( y ~ x1*x2 )
newdat <- expand.grid( x1=0:1, x2=0:1 )
pred.lm.ci <- predict(fit1, newdat, interval='confidence')
pred.lm.pi <- predict(fit1, newdat, interval='prediction')
pred.lm.ci; pred.lm.pi
# function for plotting error bars from http://monkeysuncle.stanford.edu/?p=485
error.bar <- function(x, y, upper, lower=upper, length=0.1,...){
if(length(x) != length(y) | length(y) !=length(lower) | length(lower) != length(upper))
stop("vectors must be same length")
arrows(x,y+upper, x, y-lower, angle=90, code=3, length=length, ...)}
barx <- barplot(pred.lm.ci[,1], names.arg=1:4, col="blue", axis.lty=1, ylim=c(0,28),
xlab="Levels", ylab="Values")
# Error bar for confidence interval
error.bar(barx, pred.lm.ci[,1], pred.lm.ci[,2]-pred.lm.ci[,1],pred.lm.ci[,1]-pred.lm.ci[,3])
# Error bar for prediction interval
error.bar(barx, pred.lm.pi[,1], pred.lm.pi[,2]-pred.lm.pi[,1],pred.lm.pi[,1]-pred.lm.pi[,3],col='red')
# Model checking
par(mfrow=c(2,2)); plot(model)
(1)影响因子

影响因素是不一样的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

x和观测值变化一点点,对模型影响的程度。

回归线最边上的点的变化对影响是非常大的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

丢点这个点,对预测值的影响的大小。是对整体的影响。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

# 计算贡献后,计算其斜率
# Model update (remove one outlier)
model2 <- update(model,subset=(X != 15))
summary(model2)
# Slope
coef(model2)[2] # 1.054369
model2$coefficients[2] # 1.054369
(2)线性回归的假定

线性回归不需要x和y分别正态,是要对应x上y上正态分布

方差齐性

线性关系

x没有错误

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

s代表啥意思呢?这个部分我还是没弄太明白。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

reg.tree <- lm(Volume~Height, data=trees)
reg.tree
summary(reg.tree)
par(mfrow=c(2,2))
plot(lm(Volume~Height, data=trees))

检查几种情况

library(car)
fit = lm(Girth ~ Height, data = trees)
# Computes residual autocorrelations and generalized Durbin-Watson statistics
# and their bootstrapped p-values
durbinWatsonTest(fit) # check independence
# P < 0.05, autocorrelation exists.
# component + residual plots (also called partial-residual plots) for linear
# and generalized linear models
crPlots(fit) # check linearity
# the red line (regression) and green line (residual) match well, the linearity is good.
# Score Test for Non-Constant Error Variance
ncvTest(fit) #检查方差齐性的方法
# p = 0.15, error variance is homogeneous

回归中看p值中,看斜率的p值。截距p值过大,则可以将其视为0.

2.Simple linear correlation

# correlation coefficient and p value
cor(X, Y, use = 'pairwise.complete.obs')
cor.test(X, Y, alternative = c("two.sided"), method = c("pearson"))$p.value# correlation coefficient
r = SSXY/(SSX*SSY)^.5

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对相关系数的解释

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(1)相关性的解释

对相关性的解释

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

相关系数的误差可以这样看出来。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

认为这种可能是偶然的情况。即事实上也需要对其进行t检验。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

相关性的假设检验

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(2)不同的相关性

在这里插入图片描述

head(mtcars)
plot(mtcars$wt, mtcars$hp)
# Pearson correlation coefficient
cor(mtcars$wt, mtcars$hp) # 0.66
wt.rank = rank(mtcars$wt)
hp.rank = rank(mtcars$hp)
# Spearman correlation coefficient
cor(wt.rank, hp.rank) # 0.77
X = seq(0.5* pi, 1.5*pi, length=100)
Y = 1 - sin(X)
plot(Y, X)
cor(X, Y) # 0.99
cor(rank(X),rank(Y)) # 1
Hmisc这个可以做各种各样的相关系数
library(Hmisc)head(mtcars)
rcorr(as.matrix(mtcars), type="pearson")
rcorr(as.matrix())

样本量和相关系数决定量p值
连续变量对连续变量的关系


http://www.ppmy.cn/ops/129670.html

相关文章

ssm基于ssm框架的滁艺咖啡在线销售系统+vue

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目 录 第1章 绪论 1 1.1选题动因 1 1.2目的和意义 1 1.3论文结构安排 2 第2章 开发环境与技术 3 2.1 MYSQ…

【Linux】线程锁同步互斥生产消费模型

目录 认识锁及其接口 从原理角度理解锁 从实现角度理解锁 Linux线程同步 条件变量 写一个测试代码 生产者消费者模型 基于 BlockingQueue 的生产者消费者模型 POSIX信号量 基于环形队列的生产消费模型 实际上&#xff0c;线程的大部分资源都是共享的&#xff0c;把多…

前端测试工具详解

Vue前端测试工具主要包括Jest和Vue Test Utils&#xff0c;以下是它们的详解&#xff1a; Jest Jest是一个面向JavaScript代码的测试框架&#xff0c;具有快速、简单和可扩展的特点。 Jest支持多种测试类型&#xff0c;包括单元测试、集成测试和端到端测试等&#xff0c;在Vue项…

最新AI软件部署,ChatGPT商业AI系统源码,支持GPT4.0+AI换脸+AI智能体GPTs应用+AI绘画+AI视频+文档分析

一、前言 SparkAi创作系统是一款基于ChatGPT和Midjourney开发的智能问答和绘画系统&#xff0c;提供一站式 AI B/C 端解决方案&#xff0c;AI大模型提问、AI绘画、专业版AI视频生成、文档分析、多模态识图理解、TTS & 语音识别对话、AI换脸、支持AI智能体应用&#xff08;…

Selenium自动化测试中如何处理数据驱动?

在自动化测试中&#xff0c;数据驱动&#xff08;Data-Driven Testing&#xff09;是指通过外部数据源&#xff08;如Excel、CSV、数据库等&#xff09;来控制测试用例的执行&#xff0c;而不是直接在代码中硬编码数据。这种方式可以提高测试的灵活性和可维护性&#xff0c;使得…

C++/QT可用的websocket库

库说明优势劣势是否免费商用Qt WebSocketsQt框架中的WebSocket模块。不需要额外集成第三方库&#xff1b;支持异步处理&#xff0c;适合在Qt应用程序中处理并发WebSocket请求。性能较差付费libwebsockets轻量级的C库&#xff0c;用于开发WebSocket服务器和客户端。高性能&#…

SmartGuard:使用 Raspberry Pi 和 AWS 的高级运动检测与流媒体系统

论文标题&#xff1a;SmartGuard: Advanced Motion Detection and Streaming with Raspberry Pi and AWS 中文标题&#xff1a;SmartGuard&#xff1a;使用 Raspberry Pi 和 AWS 的高级运动检测与流媒体系统 作者信息&#xff1a; - Ammar Isa&#xff0c;电气与电子工程系&am…

java使用正则表达式校验字符串pwd,是否符合包含大写小写数字特殊字符长度超过8位

在Java中&#xff0c;你可以使用正则表达式来校验一个字符串&#xff08;例如密码&#xff09;是否符合特定的要求&#xff0c;比如包含大写字母、小写字母、数字和特殊字符&#xff0c;并且长度超过8位。以下是一个示例代码&#xff0c;展示了如何使用正则表达式来校验这样的密…