Regresna analyza

<<"LinearRegression`"

<<"MultivariateStatistics`"

Merala sa rýchlosť zvuku yi pri rôznych teplotách vzduchu xi, výsledky sú zaznamenané v tabuľke.

teplota   ( 0C )	             -20	    0	20	50	100
rýchlosť   ( m/s )           323	 327	340	364	386

Vypočítajte korelačný koeficient, preložte regresnú priamku.

data={{-20,323},{0,327},{20,340},{50,364},{100,386}}

n=Length[data]

g1=ListPlot[data,PlotStyle->PointSize[Large]]

teplota=Table[data[[j,1]],{j,1,n}]

rychlost=Table[data[[j,2]],{j,1,n}]

r=Correlation[teplota,rychlost]//N

Prikaz pre lin. regresiu je v tvare

Regress[data, zoznam bazovych funkcii, zoznam premennych]

Regress[data,{x},x]

{Tabulka parametrov  ({{, odhad, "SE", "TStat", "PValue"}, {konstanta   1, 331.15909090909076`, 2.3936253150316418`, 138.35042971406455`, 8.326213309928221`*^-7}, {smernica     x, 0.5613636363636374`, 0.04641040421968666`, 12.095642039797502`, 0.0012161848229066408`}}),

Koeficient determinacie->0.9799068422743333`,AdjustedRSquared->0.9732091230324444`,odhad disperzie->18.954545454545453`,
ANOVATable->        ({{"", "DF", "SumOfSq", "MeanSq", "FRatio", "PValue"}, {"Model", 1, 2773.1363636363635`, 2773.1363636363635`, 146.3045563549161`, 0.0012161848229065297`}, {"Error", 3, 56.86363636363636`, 18.954545454545453`, "", ""}, {"Total", 4, 2830.`, "", "", ""}})

RSquared je vlastne koeficient determinacie

AdjustedRSquared -korigovany koeficient determinacie
 je definovany vzorcom  ((OverBar[R])^2)=1-(((n-1)/(n-p)))(1-(R^2)), kde R2 je koeficient determinacie

1  vystupom je vzdy predosla tabulka
2  medzi bazove funcie nedavam konstantu, je zahrnuta automaticky

Regress[data,{x},x,BasisNames->{"konstanta","smernica"}]

Vaham je automaticky priradena hodnota 1

Confidence level sa udava hlavne tam, kde chcem ako vystup aj intervaly spolahlivosti pre parametre

Regress[data,{x},x,ConfidenceLevel->.99,RegressionReport->ParameterCITable]

Zadanim  IncludeConstant -> False sa z bazovych funcii uberie konstanta

Regress[data,x,x,IncludeConstant-> False]

Do RegressionReport mozu este ist

priamka=Regress[data,{x},x,RegressionReport->{BestFit}]

parametre=Regress[data,{x},x,RegressionReport->{BestFitParameters}]

Regress[data,{1,x},x,RegressionReport->{EstimatedVariance}]

Regress[data,{1,x},x,RegressionReport->{FitResiduals}]

Regress[data,{1,x},x,RegressionReport->{PredictedResponse}]

Regress[data,x,x,RegressionReport->{SinglePredictionCITable}]

Ak nas zaujima iba fitovana funkcia staci pouzit prikaz

func=Fit[data,{1,x},x]

f1=Regress[data,{x},x,RegressionReport->{BestFit}]

g2=Plot[BestFit/.f1,{x,-20,100}]

Show[g1,g2]

Aka bude rychlost zvuku pri 70,110 stupnoch Celsia ?

BestFit/.f1/.x->70

BestFit/.f1/.x->110

Nakreslime rezidua

rezy=Regress[data,x,x,RegressionReport->{FitResiduals}]

ListPlot[FitResiduals/.rezy,PlotStyle->PointSize[Large]]

V desiatich rôznych vzdialenostiach xi sa merala veľkosť priehybu zaťaženia dosky yi . Výsledky sú uvedené v tabuľke.

xi  (dm)	     1	    2          3	      4	       5	             6	       7 	        8	                   9	   10
yi  (mm)     2,1299    2,1532	2,1611	     2,151    2,1282	 2,0807  2,0266  1 ,9594     1,8759	   1,772

Preložte regresnú krivku druhého stupňa (kvadratická regresia

data2={2.1299, 2.1532, 2.1611, 2.151, 2.1282, 2.0807, 2.0266, 1.9594, 1.8759, 1.7723}

g1=ListPlot[data2,PlotStyle->PointSize[Large],PlotStyle->{Hue[0.03]}]

Regress[data2,{x,(x^2)},x]

f2=Regress[data2,{x,(x^2)},x,RegressionReport->{BestFit}]

g2=Plot[BestFit/.f2,{x,0,10}]

Show[g1,g2]

Skusime vynechat konstantu

Regress[data2,{x,x^2},x,IncludeConstant->False]

Ine priklady, transformacia na linearnu regresiu

Transformacia niekedy nie je potrebna, staci zadat rovno bazove funkcie

Barometrický tlak p (meraný v Pa) závisí exponenciálne od nadmorskej výšky h (meranej v m) t.j.
 namerali sme 6 hodnôt barometrického tlaku v rôznych nadmorských výškach. Výsledky sú uvedené v tabuľke:
    
H	  0	              270	      840	            1452	    2116	        3203
P	100000 	96974	     90263	83553	   76842	66842

Vhodnou transformáciou linearizujte, metódou najmenších štvorcov odhadnite parametre a, b.

data3={{0,100000},{270,96974},{840,90263},{1452,83553},{2116,76842},{3203,66842}}

g1=ListPlot[data3,PlotStyle->PointSize[Large],PlotStyle->{Hue[0.03]}]

?Log

upravene=Table[{data3[[i,1]],Log[data3[[i,2]]]//N},{i,1,6}]

Regress[upravene,{x},x]

koeficienty=Regress[upravene,{x},x,RegressionReport->{BestFitParameters}]

parametre=BestFitParameters/.koeficienty

b=parametre[[2]]

a=Exp[parametre[[1]]]

g2=Plot[a*Exp[b*t],{t,1,3250}]

Show[g1,g2]

Priklad chybneho zadania pre funkciu v tvare         y=a(e^bx)

f3=Regress[data3,{(E^x)},x]

Regress[data3,{(E^x)},x,RegressionReport->{BestFit}]