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兩個因素進行分析 並考慮了互動作用