火灾损失预测

假定保险公司希望确定居民住宅区火灾造成的损失数额与该住户到最近的消防站之间的距离的关系,以便准确地定出保险金额,保险公司收集了如下数据:
距离消防站距离(km) 3 2.6 4.3 2.1 1.1 6.1 4.8 3.8
火灾损失(千元) 22.3 19.6 31.3 24 17.3 43.2 36.4 26.1
距离消防站距离(km) 3.4 1.8 4.6 2.3 3.1 5.5 0.7
火灾损失(千元) 26.2 17.8 31.3 23.1 27.5 36 14.1

A<-read.table("E:/R语言练习/火灾/1.txt");# 读入数据
A;  #查看数据
plot(A$V1,A$V2);	#查看散点图,可以看到这些点大概落在一条直线附近,稍微有一点凸,所以看看指数的散点图
plot(1.15^(A$V1),A$V2); #经过多次试验,找到1.15这个值最合适,也大概呈直线,所以采用线性和指数的回归,再相互比较

第二张图片是对数的,一元的话指数和对数都差不多,但是对数的残差平方和与线性模型的不太好比较。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
线性回归:

A1<-A;  #在A1中处理,不破坏源数据
B1<-lm(V2~V1,data=A1);plot(A1$V1,A1$V2);abline(B1)  #回归并画出回归线
summary(B1); #详细信息
anova(B1) #方差分析表
Call:

lm(formula = V2 ~ V1, data = A)

Residuals:
Min 1Q Median 3Q Max
-3.4682 -1.4705 -0.1311 1.7915 3.3915

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 10.2779 1.4203 7.237 6.59e-06 ***

V1 4.9193 0.3927 12.525 1.25e-08 ***

Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.316 on 13 degrees of freedom
Multiple R-squared: 0.9235, Adjusted R-squared: 0.9176
F-statistic: 156.9 on 1 and 13 DF, p-value: 1.248e-08
在这里插入图片描述
从回归结果中我们可以看到对回归方程的F检验以及对参数的t检验都很显著。复相关系数平方为0.9235,说明本模型能被很好解释,残差的标准差为2.316.
方差分析表:
anova(B1)
Analysis of Variance Table

Response: V2
Df Sum Sq Mean Sq F value Pr(>F)
V1 1 841.77 841.77 156.89 1.248e-08 ***
Residuals 13 69.75 5.37


Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1
回归自由度:1,平方和841.77 剩余自由度:13,平方和69.75
因此回归方程为 y=4.9193x+10.2779
现在对数据的残差进行分析:

A1.fit<-predict(B1) ;	#预测值
A1.res<-residuals(B1);plot(A1.res~A.fit); 	#残差
A1.rst<-rstandard(B1);plot(A1.rst~A.fit);	#标准化残差

在这里插入图片描述
在这里插入图片描述

可以看处各部分残差基本相当,没有偏离很远的异常值,标准化残差都在[-2,2]之间,所以可以认为标准化残差符合标准正态分布。

deviance(B) 	#查看残差平方和

[1] 69.75098

Reg_Diag(B1); #回归诊断
 residual s1    standard s2     student s3 hat_matrix s4      DFFITS s5

1 -2.7359207 -1.22407120 -1.25030865 0.06892058 -0.34017181
2 -3.4681884 * -1.56097482 -1.66374027 0.07996013 -0.49047736
3 -0.1310507 -0.05952374 -0.05719636 0.09657697 -0.01870077
4 3.3914769 1.54912299 1.64823497 0.10669657 0.56963261
5 1.6108077 0.77909572 0.76664277 0.20329270 0.38726169
6 2.9141540 1.49866138 1.58310179 0.29528902 * 1.02477134 *
7 2.5092840 1.16347978 1.18101442 0.13308801 0.46274013
8 -2.8713853 -1.28850409 -1.32548418 0.07444036 -0.37590367
9 -0.8036530 -0.35920557 -0.34683908 0.06708065 -0.09300464
10 -1.3327239 -0.61671822 -0.60138640 0.12963815 -0.23209730
11 -1.6068499 -0.73812880 -0.72451605 0.11675866 -0.26342251
12 1.5076108 0.68389288 0.66921163 0.09427706 0.21590804
13 1.9721462 0.88172686 0.87366240 0.06759813 0.23523905
14 -1.3342475 -0.64739155 -0.63226926 0.20835250 -0.32436613
15 0.3785399 0.18972092 0.18253083 0.25803051 0.10764125
cooks_distance s6 COVRATIO s7
1 0.0554556162 0.9866680
2 0.1058835933 0.8422380
3 0.0001893795 1.2983635
4 0.1433155244 0.8735104
5 0.0774416567 1.3387279
6 0.4705581512 * 1.1396400
7 0.1039086266 1.0865246
8 0.0667645059 0.9648074
9 0.0046388390 1.2331504
10 0.0283254318 1.2706703
11 0.0360117336 1.2197116
12 0.0243420330 1.2042123
13 0.0281818624 1.1126500
14 0.0551532262 1.3884428
15 0.0062587192 1.5730043 *

可以看到第6个数据异常的统计量比较多,所以删掉它再进行一次回归

B11<-lm(V2~V1,data=A1);plot(A1$V1,A1$V2);abline(B11)  #回归并画出回归线
summary(B11); #详细信息

Call:
lm(formula = V2 ~ V1, data = A1)

Residuals:
Min 1Q Median 3Q Max
-3.4205 -1.3871 -0.2625 1.3800 3.2945

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 11.1019 1.4417 7.70 5.55e-06 ***
V1 4.5841 0.4279 10.71 1.69e-07 ***


Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.193 on 12 degrees of freedom
Multiple R-squared: 0.9053, Adjusted R-squared: 0.8975
F-statistic: 114.8 on 1 and 12 DF, p-value: 1.692e-07
在这里插入图片描述

deviance(B11);

[1] 57.70023
可以看到残差的标准差降低了,残差的平方和也降低了,各项指标也通过了检验,只是复相关系数平方降低了一点,不过也在0.9。选这个模型作为最好的线性模型,即
y=4.5841x+11.1019

现在进行对因变量取对数的回归

A2<-A;
B2<-lm(log(V2)~V1,data=A2);plot(A2$V1,log(A2$V2));abline(B2) 
summary(B2);

Call:
lm(formula = log(V2) ~ V1, data = A)

Residuals:
Min 1Q Median 3Q Max
-0.125923 -0.068638 0.003734 0.055119 0.170980
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.61068 0.05521 47.28 6.17e-16 ***
V1 0.18876 0.01527 12.36 1.46e-08 ***


Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.09005 on 13 degrees of freedom
Multiple R-squared: 0.9216, Adjusted R-squared: 0.9156
F-statistic: 152.8 on 1 and 13 DF, p-value: 1.46e-08
在这里插入图片描述
可以看出F检验与t检验也很显著,残差的标准差0.09,复相关系数在0.9216,修正后为0.9156

anova(B2) #方差分析表

Analysis of Variance Table

Response: log(V2)
Df Sum Sq Mean Sq F value Pr(>F)
V1 1 1.23934 1.23934 152.85 1.46e-08 ***
Residuals 13 0.10541 0.00811


Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1

A2.fit<-predict(B2) ;	#预测值
A2.res<-residuals(B2);plot(A2.res~A2.fit); 	#残差
A2.rst<-rstandard(B2);plot(A2.rst~A2.fit);	#标准化残差

在这里插入图片描述
在这里插入图片描述
从标准化残差图看出有一个值快要超过2了

deviance(B2)

[1] 0.105408

Reg_Diag(B2)
   residual s1    standard s2     student s3 hat_matrix s4      DFFITS

1 -0.072369505 -0.83290831 -0.82247879 0.06892058 -0.22377203
2 -0.125923301 -1.45793356 -1.53152859 0.07996013 -0.45150082
3 0.021276135 0.24858912 0.23940639 0.09657697 0.07827570
4 0.170980109 * 2.00900511 * 2.32446601 * 0.10669657 0.80333912
5 0.032391071 0.40300540 0.38963665 0.20329270 0.19682094
6 0.003733608 0.04939217 0.04745892 0.29528902 * 0.03072104
7 0.077847666 0.92852381 0.92323637 0.13308801 0.36173861
8 -0.066027503 -0.76218013 -0.74920990 0.07444036 -0.21247387
9 0.013299910 0.15291906 0.14705220 0.06708065 0.03943194
10 -0.071247777 -0.84811813 -0.83836953 0.12963815 -0.32355787
11 -0.035351353 -0.41773542 -0.40406833 0.11675866 -0.14691281
12 0.095007238 1.10864873 1.11938578 0.09427706 0.36114793
13 0.118353992 1.36118231 1.41229155 0.06759813 0.38026831
14 -0.065332974 -0.81545774 -0.80430728 0.20835250 -0.41262490
15 -0.096637316 -1.24591034 -1.27561070 0.25803051 -0.75224734
s5 cooks_distance s6 COVRATIO s7
1 0.0256759526 1.1295442
2 0.0923660434 0.8925732
3 0.0033030614 1.2867504
4 * 0.2410368948 0.6246437
5 0.0207211921 1.4364995
6 0.0005111196 1.6647544 *
7 0.0661789723 1.1801727
8 0.0233608841 1.1572097
9 0.0008407104 1.2534768
10 0.0535692628 1.2033268
11 0.0115340632 1.2933216
12 0.0639688589 1.0623346
13 0.0671636266 0.9254748
14 0.0875063953 1.3347072
15 * 0.2699159849 * 1.2265592
认为第四个数据是异常值

A2=A2[-4,];
B21<-lm(log(V2)~V1,data=A2);plot(A2$V1,log(A2$V2));abline(B21)
summary(B21);

Call:
lm(formula = log(V2) ~ V1, data = A2)

Residuals:
Min 1Q Median 3Q Max
-0.09915 -0.05189 -0.03440 0.04112 0.13856

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.54979 0.06484 39.33 2.70e-12 ***
V1 0.20188 0.01814 11.13 5.91e-07 ***


Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.08245 on 10 degrees of freedom
Multiple R-squared: 0.9253, Adjusted R-squared: 0.9178
F-statistic: 123.9 on 1 and 10 DF, p-value: 5.908e-07
在这里插入图片描述

deviance(B21);

[1] 0.06797777
都通过检验,复回归系数升高,残差的标准差降低,残差平方和也更小,选这个作为最终的对数回归模型
log(y)=0.20188x+2.54979;
变换后:y=exp(0.20188
x+2.54979);
y=exp(0.20188*A2$V1+2.54979);

B22<-lm(A2$V2~y);plot(A2$V2~y)

deviance(B22);

[1] 46.04772

非线性回归

A3<-A;
B3<-nls(V2~a*b^V1,data=A3,start=list(a=1,b=1.15));		
summary(B3);	

Formula: V2 ~ a * b^V1

Parameters:
Estimate Std. Error t value Pr(>|t|)
a 13.91408 0.83337 16.70 3.66e-10 ***
b 1.20146 0.01645 73.05 < 2e-16 ***


Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.14 on 13 degrees of freedom

Number of iterations to convergence: 6
Achieved convergence tolerance: 2.207e-07
通过检验

plot(A3$V1,A3$V2);		散点图
X=seq(1,6,length=20);		#找一组数据
Y<-predict(B3,data.frame(V1=X));		#预测该组数据
lines(X,Y);				#画出回归线

在这里插入图片描述

deviance(B3);

[1] 59.51829
效果也很不错,残差平方和为59.51,各项参数都通过检验。
结果为 y=13.91408*1.20146^x

三个模型都可以,我个人不喜欢去除数据,所以我选择第三个模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值