为了评估各种输入因子(x,y,z)及其与响应变量(A)的相互作用的贡献,我使用Minitab中的因子分析计算了方差百分比。现在我想计算A中的百分比变化。
比如说,当x和y增加时A增加,而当z减小时A减小。那么A中有多少百分比在变化? 有没有其他软件可供我进行此分析?
请在这方面帮助我。
感谢。
答案 0 :(得分:0)
我认为简单的回归可以为您提供所需的信息。既然您正在询问如何对R
和Matlab
执行此计算,我将为您提供Matlab解决方案,因为我可以更好地使用它。
在继续数字示例之前,让我们回顾一下a little bit of theory:
拟合线性回归模型可用于识别 单个预测变量xj与响应之间的关系 变量y,当模型中的所有其他预测变量都是 “固定”。具体而言,βj的解释是预期的 当其他协变量为x时,xj的单位变化为y 保持固定 - 即y的偏导数的期望值 关于xj。
基本上,这告诉我们xj
中的一个单位更改会在βj
中生成y
单位更改。为了获得百分比变化,必须将响应变量y
转换为对数标度(ln(y)
)。
现在,让我们看看如何使用Matlab中的regress function执行线性回归。这很简单:
% Response Variable
A = rand(100,1);
% Predictors
X = randi(10,100,1);
Y = rand(100,1);
Z = randi(3,100,1);
% Beta Coefficients
b = regress(A,[X Y Z]);
现在,为了检索百分比变化而不是单位变化,必须按如下方式重写上述代码(基本上,自然日志应用于A
,并计算百分比变化乘以β系数{{1 } b
):
100
使用任意值,我们假设返回的beta值是:
% Response Variable
A = rand(100,1);
A = log(A);
% Predictors
X = randi(10,100,1);
Y = rand(100,1);
Z = randi(3,100,1);
% Beta Coefficients
b = regress(A,[X Y Z]);
% Percent Changes
pc = b .* 100;
这意味着:b =
0.25
-0.06
1.33
中的一个单位更改会在X
中生成+25%
更改,A
中的一个单位更改会产生Y
更改在-6%
中,A
中的一个单位更改会在Z
中生成+133%
更改。百分比变化的解释因预测变量的类型而异,您必须小心这一点。给定响应变量A
和预测变量Y
:
K
是一个连续变量,那么K
,Bk = ∂ln(Y) / ∂K
中的一个单位更改会在K
中产生100 * Bk
%的变化。Y
是连续变量的自然对数,则为K
,因此Bk = ∂ln(Y) / ∂ln(K)
中的100%
更改会在K
中产生100 * Bk
%的变化{1}}。Y
是虚拟变量(只有两个可能的值:K
和1 = true
),那么0 = false
从K
转移到{{ 1}} 0
发生了1
%的变化。