【问题标题】:How to calculate percentage change using factorial analysis? [closed]如何使用因子分析计算百分比变化? [关闭]
【发布时间】:2018-07-06 15:04:28
【问题描述】:

为了评估各种输入因子(x、y、z)的贡献及其对响应变量 (A) 的交互作用,我使用 Minitab 中的因子分析计算了方差百分比。现在我想计算 A 的百分比变化。

例如,当 x 和 y 增加时,A 增加,当 z 减少时,A 减少。那么 A 中变化了多少百分比? 有没有其他软件可以做这个分析?

请在这方面帮助我。

谢谢。

【问题讨论】:

    标签: r matlab factorial anova minitab


    【解决方案1】:

    我认为简单的回归会为您提供您正在寻找的东西。由于您询问如何对RMatlab 执行此计算,我将为您提供一个 Matlab 解决方案,因为我可以更好地使用它。

    在继续一个数字示例之前,让我们回顾一下a little bit of theory

    拟合线性回归模型可用于识别 单个预测变量 xj 与响应之间的关系 变量 y 当模型中的所有其他预测变量都是 “固定”。具体来说,对 βj 的解释是预期的 当其他协变量为 保持固定——即 y 的偏导数的期望值 关于 xj。

    基本上,这告诉我们xj 中的一个单位变化会在y 中产生βj 单位变化。为了获得百分比变化,响应变量 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,百分比变化是通过将 beta 系数 b 乘以 @ 987654333@):

    % 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;
    

    使用任意值,假设返回的 beta 为:

    b =
    
        0.25
       -0.06
        1.33
    

    这意味着:X 中的一个单位变化会在 A 中产生一个+25% 变化,Y 中的一个单位变化会在A 中产生一个-6% 变化,并且在 A 中变化一个单位ZA 中生成 +133% 更改。百分比变化的解释因预测变量的类型而异,您必须注意这一点。给定响应变量Y 和预测变量K

    • 如果K 是一个连续变量,则Bk = ∂ln(Y) / ∂K,因此K 中的一个单位变化会在Y 中产生100 * Bk 百分比变化。
    • 如果K 是连续变量的自然对数,则Bk = ∂ln(Y) / ∂ln(K),因此K 中的100% 变化会在Y 中产生100 * Bk 百分比变化。
    • 如果K 是一个虚拟变量(只有两个可能的值:1 = true0 = false),那么将K0 转移到1 会在@ 中产生100 * Bk 百分比变化987654365@.

    【讨论】:

    • 您好,Tommaso,感谢您的友好回复。我修改了我的问题。请参见。希望这次我能够解释我的问题。
    • 这与上一个问题无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多