Created
April 5, 2011 09:46
-
-
Save mgechev/903347 to your computer and use it in GitHub Desktop.
Statistics - 05.04.2011
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Линейна регресия | |
#y^ = b0 + b1*x - уравнение на линейната регресия | |
#ei = yi - (yi^)i | |
#b1 = Sum((xi - x_)(yi - y_))/(Sum(xi - x_))^2 | |
#b0 = y_ - b1*x | |
#Намират се чрез метода на най-малките квадрати | |
#Sum(1,n,(yi - (y^)i)); | |
#(y^) - y колибка | |
#y_ - y черта | |
#y = b0 + h1(x) - x - предиктор | |
#y - отговаряща променлива (отклик) | |
#1) Рисува т. | |
#2) Намира b0 и b1 | |
#3) Добавя регрес. линия | |
data(home); | |
attach(home); | |
x = old; | |
y = new; | |
plot(x,y); | |
abline(lm(y~x)); #чертае регр. права | |
detach(home); | |
#Две функции за линейна регресия в R | |
#lm и simple.lm | |
#simple.lm дава и коефициентите на регресията ^_^ | |
data(home); | |
attach(home); | |
x = old; | |
y = new; | |
simple.lm(x, y); | |
detach(home); | |
lm.res = simple.lm(x, y); #запазва резултата в lm.res | |
coef(lm.res); #дава регр. коефициенти | |
coef(lm.res)[1] #връща само 1-я | |
coef(lm.res)[2] #връща само 2-я | |
simple.lm(x,y,show.residuals=TRUE); | |
# | __ | |
# | / \ | |
# | / \ | |
# | | | | |
# | / \ | |
# |_/ \_ | |
# |_____________ #Стандартен статистически модел, за хистиграмата | |
# на остатъците | |
#последната 4-та графика показва как са разпределени остатъците | |
lm.res = simple.lm(x,y); | |
the.residmals = resid(lm.res); | |
plot(the.residmals); | |
#графика на минималната регресия + | |
#графика на остатъците спрямо (y^), но | |
#без линията y=0; | |
#Корелация на Pearson: | |
# R = Sum((xi - x_)(yi - y_))/Sqrt((Sum(xi-x_)^2)*(Sum(yi - y_)^2)); | |
#оразмерената версия на ковар. между X и Y | |
#cor [-1,1] | |
#Ако R^2 е близо до 1 => силна мн. връзка | |
#ако R^2 е близо до 0 => слаба мн. връзка | |
data(home); | |
attach(home); | |
x = old; | |
y = new; | |
cor(x, y); #намира R | |
cor(x, y)^2; #намира R^2 | |
summary(lm(y~x)); | |
rank(c(2,3,5,7,11)); | |
rank(c(5,3,2,7,11)); | |
rank(c(5,5,2,7,5)); | |
#Spearman rank corr | |
#коеф. на cor спрямо ранговете | |
cor(rank(x), rank(y)); #Spearman rank cor, ако числото, което получа | |
#тук е близо до 1 => ф-та е строго растяща, ако е близо до -1, то тя | |
#е строго намаляваща | |
data("florida"); | |
names(florida); | |
attach(florida); | |
simple.lm(BUSH, BUCHANAN); #двете най-отдалечени точки | |
#се наричат outline | |
identify(BUSH, BUCHANAN, n=2); #n = 2, дава 2-те точки, мога да кликна на | |
#двете най-тдалечени точки | |
#за да се изключат най-отдалечените точки от данните ще използваме "-" | |
BUSH[50]; | |
BUCHANAN[50]; | |
BUSH[-50]; #всички без 50-тия елемент | |
simple.lm(BUSH[-50], BUCHANAN[-50]); #двете най-отдалечени точки | |
#y^ = 65.57350 + 0.00348x | |
#y^ = 45.28986 + 0.00492x | |
#BUSH - 152.846(BUSH[50]) => | |
#BUCHANAN: 65.57350 + 0.00348*BUSH[50] | |
65.57350 + 0.00348*BUSH[50]; #597 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment