基於R語言對基礎數據進行統計分析,包括基礎繪圖、線性擬合、logistic回歸、bootstrap抽樣和Anova方差分析的實現和應用。
話不多說,直接上代碼,代碼裏有註釋。
1.基本圖紙(箱線圖、qq圖)
#基本情節
箱線圖(x)
qqplot(x,y)
2.線性擬合
#線性回歸
n = 10
x 1 = r norm(n)# variable 1
x2 = r norm(n)#變量2
y = rnorm(n)*3
mod = lm(y~x1+x2)
模型矩陣(mod)#建立mod的矩陣
plot(mod)#繪制溶液的殘差和擬合曲線、Q-Q曲線和cook距離
summary(mod)#獲取模型的統計信息
hat values(mod)#非常重要,用於異常樣品檢測
3.邏輯回歸
#邏輯回歸
x & lt- c(0,1,2,3,4,5)
y & lt- c(0,9,21,47,60,63) #成功的次數
n & lt-70 #步道的數量
z & lt-n-y #失敗的次數
b & lt- cbind(y,z) #列綁定
fitx & lt- glm(b~x,family = binomial) #壹種特殊類型的廣義線性模型
打印(fitx)
plot(x,y,xlim=c(0,5),ylim=c(0,65))#繪制點(x,y)
beta0 & lt- fitx$coef[1]
beta 1 & lt;- fitx$coef[2]
fn & lt-函數(x)n * exp(beta 0+beta 1 * x)/(1+exp(beta 0+beta 1 * x))
par(new=T)
曲線(fn,0,5,ylim=c(0,60)) #繪制邏輯回歸曲線
3.自助抽樣
#自舉
#應用:隨機抽樣,求出最大特征值與所有特征值之和的比值,並畫圖表示分布。
dat = matrix(rnorm(100*5),100,5)
樣品數= 200 #樣品200次
# theta =矩陣(rep(0,樣本數*5),樣本數,5)
theta =rep(0,樣本數* 5);
用於(65438中的I+0:樣品數量)
{
j = sample(1:100,100,replace = TRUE)#每次獲取100個樣本
datrnd = dat[j,];#每次選擇壹行
λ= princomp(datrnd)$sdev^2;#獲取特征值
#θ[I,]=λ;
θ[I]=λ[1]/sum(λ);#繪制最大特征值的比值
}
# hist(theta[1,])#繪制第壹個(最大)特征值的直方圖
hist(theta);#繪制最大特征值的百分比分布
SD(θ)#θ的標準偏差
#上面註釋掉的語句都可以註釋掉,下壹條語句也可以註釋掉,完成繪制最大特征值分布的功能。
4.方差分析
#應用:判斷壹個自變量是否有影響(假設我們給三只豬餵三種維生素,看有沒有用)
#
y = r norm(9);# weightgain by pig (yij,I為待遇,j為pig _ id),壹般由用戶自己輸入。
#y =矩陣(c(1,10,1,2,10,2,1,9,1),9,1)
待遇& lt- factor(c(1,2,3,1,2,3,1,2,3))#每個{1,2,3}是壹個組
mod = lm(y ~處理)#線性回歸
打印(方差分析(mod))
#解釋:Df(自由度)
# sumsq:偏差(組內和殘差)總偏差總和
# meansq:方差(組內和殘差)平均方差和。
#比較治療和殘留的貢獻
#F值:平均平方(治療)/平均平方(殘差)
# Pr(& gt;F): p值。根據p值決定是否接受假設H0:多個樣本的總體均值相等(檢驗水平為0.05)。
QQ norm(mod $ residual)#繪制由mod近似的殘差
#如果殘差的qqnorm像壹條直線,說明殘差符合正態分布,也就是說治療帶來的貢獻很小,也就是說治療不能帶來收益(多餵維生素和少餵維生素沒什麽區別)。
如下圖所示,它們是
(左)用y =矩陣(c (1,10,1,2,10,2,1,9,1)和。
(右)y = r norm(9);
結果。可以看出,如果給定豬吃了維生素2後體重特別突出的數據結果,那麽qq圖殘差不再是壹條直線,換句話說,殘差不再符合正態分布,即維生素對豬的體重有影響。