[回归分析][8]--变量的变换

[回归分析][8]--变量的变换

  这一节会讲关于变量的变换,如最常用的(做对数变换),和我们在什么情况下要做变换。

  当然,要能做变换,我们必须要熟悉函数的形状,下面给出常见函数的图像。

 
   

(其实,当我们能由函数图像猜出函数式子的时候,可以使用非线性回归)

  我们这里使用变换来做,看一个例子

  这是一组年份与石油产量的数据
data = {{1880, 30}, {1890, 77}, {1900, 149}, {1905, 215}, {1910, 
    328}, {1915, 432}, {1920, 689}, {1925, 1069}, {1930, 1412}, {1935,
     1655}, {1940, 2150}, {1945, 2595}, {1950, 3803}, {1955, 
    5626}, {1960, 7674}, {1962, 8882}, {1964, 10310}, {1966, 
    12016}, {1968, 14104}, {1970, 16690}, {1972, 18584}, {1974, 
    20389}, {1976, 20188}, {1978, 21922}, {1980, 21722}, {1982, 
    19411}, {1984, 19837}, {1986, 20246}, {1988, 21338}};

由散点图可以看出,y轴是呈现10的倍数的增长的,所以我们考虑对y取Log
ListPlot[Transpose[{data[[All, 1]], Log[data[[All, 2]]]}]]

这时再画图可以看出形状接近一条直线了。接下来就可以把Y = Log[y]看成一个新的变量来处理了,方法还是和之前的一样。

datan = Transpose[{data[[All, 1]], N[Log[data[[All, 2]]]]}];
lm = LinearModelFit[datan, x, x];
cc = lm["FitResiduals"];
cook = lm["CookDistances"];
ListPlot[cc, Filling -> Axis, PlotRange -> All]
ListPlot[cook, Filling -> Axis, PlotRange -> All]
lm["ANOVATable"]
lm[{"RSquared", "AdjustedRSquared"}]


如上图,可以依次得到1.残差图  2.库克距离  3.方差表  4.R^2

以上,所有
2016/11/14



posted on 2016-11-14 13:17  WMN7Q  阅读(433)  评论(0编辑  收藏  举报

导航