天天看點

R語言 回歸分析函數說明

回歸分析相關的函數

1、一進制線性回歸

lm() #計算beta0,beta1參數

summary() # 提取lm()參數資訊

anovn() #方差分析

predict() # 根據給出自變量預測因變量的值

例:

a=lm(y~1+x,data=…) #對x,y回歸分析

summary(a) # 提取回歸分析結果

new=data.frame(x=0.16) # 當x=0.16時對y進行預測,必須為資料框格式

lm.new=predict(a,new,interval=”prediction”,level=0.95)#利用a得到的回歸分析,對new進行預測

abline(a)#繪制回歸直線

b=residuals(a) # 計算回歸方程殘差

plot(b) #繪制殘差散點圖

提取模型lm()資訊的通用函數

anova(a)#計算方差分析表aov()

coefficients()# 提取模型系數

deviance()#計算殘差平方和

formula()#提取模型公式

plot()#繪制模型診斷圖

predict()#預測

print()# 顯示

residuals()#計算殘差

step()#做逐漸回歸

summary()#提取模型資料

2、多元回歸分析

update()修正拟合模型

例:

fm5=lm(y~x1+x2+x3+x4+x5,data=…)

fm6=update(fm5, .~.+x6)

smf6=update(fm6,sqrt(.)~.)

lm(y~x1+I(x2^2))

add1()

drop1()

step()

3、逐漸回歸

step(object,scope,

direction=c(“both”,”backward”,”forward”)

trace=1,keep=Null,steps=1000,k=2,…)

4、回歸診斷(1.誤差項:獨立性 等方差性 正态性

2.選擇線性模型是否合适

3.是否存在異常樣本

4.回歸分析結果是否對某個樣本依賴過重

5.自變量之間是否存在高度相關)

作圖

殘差

residuals()

Shapiro.test() #殘差正态性檢驗

rstandard(model,infl=lm.influence(model,do.coef=FALSE)

sd=sqrt(deviance(model)/df.residual(model)),…) #标準化殘差

rstudent()#學生化殘差

回歸值Y與殘差的散點圖

y.res=resid(lm.sol)

yfit=predict(lm.sol)

plot(y.res~y.fit)#殘差圖

y.rst=rstandard(lm.sol)

plot(y.rst~yfit)#标準化殘差圖

R語言 回歸分析 方差分析

以自變量為橫坐标的殘差圖

y.res=resid(lm.sol)

plot(y.res~x1)

plot(y.res~x2)

強影響點(異常值)

hatvalues()

hat()

dffits()

cooks.distance()

covratio()

influence.measures(model)#回歸診斷的總括

多重共線

kappa() #計算矩陣的條件數

eigen() # 計算矩陣特征值

5、廣義線性模型

glm(formula, # 公式

family=c(binomial,Gaussian,gamma,inverse,poisson,quasi)# 分布族

data=…)# 資料

非線性回歸

lm(y~1+x+I(x^2),data=…)

poly(x,degree=1,codfs=NULL)正交多項回歸 degree多項式階數

lm(y~1+poly(x,2))

nls()#求非線性最小二乘問題

nlm()#非線性模型參數估計

6、方差檢驗

單因素方差分析

aov(x~A)# x要分析變量A變量因子水準

均值的多重比較

pairwise.t.test(x,g) # x相應變量 g因子向量

P值修正

P.adjust(p,method=…)

方差齊性檢驗

誤差正态性檢驗

shapiro.test(X[A==1])

方差齊性檢驗

bartlett.test()

通過秩統計量進行方差分析(分析各水準之間是否存在差異)

K-W秩和檢驗

kruskal.test()

Friedman秩和檢驗

friedman.test()

雙因素方差分析

aov(Y~A+B+A:B)#對A B兩個因素進行分析 并考慮了互動作用