线性回归

线性回归的r方 调整r方 F值 P值计算公式(R语言实现)

2018-10-19  本文已影响30人  DataMining234

闲来无事,将线性回归效果检验的一些指标,自己复写一番,甚是自嗨;如有瑕疵,还请读者见谅。
公众号地址:


1539933606.png

一、 功能参数说明

*1 y_test 预测值

*2 y_true 真实值

*3 n 样本大小

*4 k 参数个数

二、核心功能函数以及公式

1 公式推导

R^2=1-\frac{SSR}{SST}

adjustR^2=1-\frac{(n-1)(1-R^2)}{n-k}

F=\frac{\frac{SSR}{k}}{ \frac{SSE}{n-k-1} }

SST=SSR+SSE

SSR={\sum_1^n(y-\hat{y})^2}

SST={\sum_1^n(y-\overline {y})^2}

2 核心函数实现

R2<-function(y_test, y_true){

return (1 - (sum((y_test - y_true)^2)/sum((y_true - mean(y_true))^2)) )

}

adjust_R2<-function(y_test, y_true,n,k){

return (1-(n-1)*(1-R2(y_test, y_true))/(n-k) )

}

F<-function(y_test, y_true,n,k){

sse=sum((y_test - y_true)^2)

ssT=sum((y_true - mean(y_true))^2)

return(((n-k)/(k-1))*((ssT-sse)/sse))

}

p<-function(y_test, y_true,n,k){

return(1-pf(F(y_test, y_true,n,k), df1=k-1, df2=n-k))

}

三、验证(与官方的输出结果进行对比)

x <- c(seq(0.10,0.18,by = 0.01),0.20,0.21,0.23)
y <- c(42.0,43.5,45.0,45.5,45.0,47.5,49.0,53.0,50.0,55.0,55.0,60.0)
lm.sol <- lm(y~1+x)
summary(lm.sol)

image

完美结束!!!

上一篇 下一篇

猜你喜欢

热点阅读